NotizBox - Vorlage
In dieser Datei habe ich nach meiner Meinung nützliche Informationen zusammengetragen, die man evtl. beim Schreiben neuer Seiten oder Erweiterungen des CMS gut gebrauchen kann. Ich stelle sie als Kopiervorlage zur Verfügung.
Sie ist in der jeweiligen Version in den Haupt-Updates des Templates krl-3col-flex enthalten im Ordner /templates/krl-3col-flex/_optionaler-HTM-Content/.
Um Verwechslungen mit anderen Notizen zu vermeiden habe ich die Datei bewusst Notiz-Box genannt.
Verwendung: Im Backend eine neue News-Box - Seite erstellen (verdeckte Seite) und im Editorfenster den Quellcode / HTML-Codeeditor öffnen, den Inhalt der Datei Notiz-Box-VersionX_x.htm in die Zwischenablage kopieren und im Quellcode-Editorfenster einfügen und speichern.
Auf der Seite, auf der die Notiz-Box angezeigt werden soll, im Editorfenster oben unter dem Reiter Mehr bei "Snipets-Box" den News-Box - Namen der Notiz-Box auswählen und speichern.
Rechts in der Spalte ist die Original-Darstellung mit allen Styles zu sehen. Hier unten drunter ist die identische HTML-Datei zu sehen (mit etwas mehr Breite natürlich). Und ganz unten ist das Listing dieser Notiz-Box dargestellt.
Notiz - Box zum Copy & Paste
Letztes Update am 24.08.2022
Akkordeon
HTML:
<details>
<summary>Das ist die Kopfzeile.</summary>
<p>Das ist der Boddy des Absatzes.</p>
</details>
Frontend (zum Kopieren vorher ausklappen, <details ....> durch <details> ersetzen!):
⇒
Das ist die Kopfzeile.
Das ist der Boddy des Absatzes.
⇐
Codeschnipsel zum Einfügen
DIV-Block mit zwei Absätzen
⇒
Das ist ein erster Absatz.
Das ist ein zweiter Absatz.
⇐
Codeeditor Tastenkürzel
Funktion | PC |
---|---|
Speichern | Ctrl-S |
Suchen | Ctrl-F |
Weitersuchen | Ctrl-G |
Rückwärts suchen | Shift-Ctrl-G |
Ersetzen | Shift-Ctrl-F |
Alle ersetzen | Shift-Ctrl-R |
Vollbild umschalten | Esc |
Faltung umschalten | Ctrl-Q |
Zeilenumbrechen umschalten | Alt-W |
Vorschau umschalten | Crtl-P |
Bilder durchsuchen | Ctrl-I |
Downloads durchsuchen | Ctrl-L |
Mediadateien durchsuchen | Ctrl-M |
Benutzerdateien durchsuchen | Ctrl-U |
Template Tags
Funktion | Status | Beschreibung |
---|---|---|
editmenu() | obsolet1) | Erzeugt im Admin-Modus das Admin-Menü. |
content() | erforderlich | Inhalt der Seite(n). |
head() | erforderlich | Erzeugt Tags zu Stylesheet, Meta-Daten und Seiten-Titel. |
languagemenu() | empfohlen | Liefert Links für mehrsprachige Seiten. |
lastupdate() | empfohlen | Liefert Zeit/Datum der letzen Änderung. |
li($hc,'menulevel') | optional | Erzeugt Menü inkl. Untermenü's. |
locator() | optional | Erzeugt den Locator (Breadcrumbs). |
loginlink() | empfohlen | Zeigt den 'Login'-Link an (sofern nicht angemeldet). |
mailformlink() | optional | Erzeugt einen Link für das Mailformular. |
newsbox() | zusätzlich | Liefert den Inhalt einer versteckten ('hidden') Seite. |
nextpage() | optional | Erzeugt einen Link zur nächsten Seite. |
onload() | erforderlich | Erforderlich im Body-Tag für die Funktionen des Editors. |
pagename() | optional | Zeigt den Inhalt der Konfigurationsvariable $cf['site']['title']. Diese Variable wird aus der Sprachvariable $tx['site']['title'] erzeugt. Wenn der Titel für eine bestimmte Seite per meta_tags Plugin verändert wird, wird für diese Seite der geänderte Titel angezeigt. |
previouspage() | optional | Erzeugt einen Link zur vorherigen Seite. |
printlink() | optional | Erzeugt einen Link für die Druckansicht. |
searchbox() | optional | Erzeugt das Suchfeld. |
sitename() | optional | Zeigt den Inhalt der Sprachvariable $tx['site']['title']. |
sitemaplink() | optional | Liefert einen Link zur Sitemap. |
submenu() | optional | Erzeugt Links zu Unterseiten (sofern vorhanden). |
toc() | erforderlich | Erzeugt das Menü. |
top() | optional | Erzeugt einen Link zum Anfang der Seite (#TOP). |
Core Funktionen
Eine grobe Übersicht über die wichtigsten Funktionen:
Funktion(Wert) | Beschreibung |
---|---|
a($nummer,$zusatz) | liefert einen (öffnenden) Link zu einer CMS-Seite ($nummer) |
amp() | gibt & oder (XHTML-konform) & zurück; deprecated seit 1.5.4 |
autogallery($url) | zeigt eine Galerie an; deprecated seit 1.5.4 |
chkdl($datei) | überprüft Download (Existenz, Berechtigungen etc.); deprecated seit 1.6 |
chkfile($key,$schreibbar) | überprüft eine Datei (Berechtigungen etc.); deprecated seit 1.6 |
cmscript($script,$text) | ob gesuchtes CMSimple-Skript im Text vorhanden ist |
download($datei) | stellt eine Datei zum Download bereit |
e($fehler,$typ,$datei) | erzeugt Fehlermeldung |
evaluate_scripting($text,$compat) | liefert Text mit evaluiertem Scripting zurück |
gc($name) | liest ein Cookie |
geturl($url) | liest eine externe Ressource |
geturlwp($url) | liest eine externe Ressource mit Parametern |
h($nummer) | liefert die Überschrift einer Seite |
hide($nummer) | ob die Seite versteckt ('hide') ist |
initvar($name) | initalisiert eine Variable aus POST oder GET |
l($nummer) | liefert die Menüebene einer Seite |
logincheck() | überprüft Anmeldung am CMS |
meta($name) | liefert <meta> Element |
ml($key) | liefert einen Link zu einer Sonderseite |
plugin_admin_common($action, $admin, $plugin) |
behandelt Standardaktionen der Pluginadministration |
print_plugin_admin($main) | liefert das Pluginmenu |
rf($datei) | liest eine Datei; deprecated seit 1.6 |
rfc() | liest content.htm und initialisiert die entsprechenden globalen Variablen |
rmanl($text) | entfernt alle Zeilenumbrüche (\n, \r) aus einem Text |
rmnl($text) | ersetzt mehrfache Zeilenumbrüche durch einen einzelnen |
rp($datei) | liefert absoluten Dateipfad; deprecated seit 1.5.4 |
selectlist(…) | erzeugt eine Selectbox; entfernt seit 1.6 |
shead($code) | erzeugt eine HTTP Fehlermeldung |
sortdir($ordner) | liefert ein Array mit allen Einträgen eines Verzeichnisses (alphabetisch sortiert) |
stsl($text) | demaskiert GPC Parameter |
sv($name) | liefert eine Server-Variable |
tag($tag) | liefert einen (X)HTML konformen Tag |
uenc($ueberschrift) | kodiert eine Seiten-URL |
writelog($nachricht) | hängt einen Eintrag an die Protokolldatei an |
Core Variable und Konstanten
Variable | Typ | Description |
---|---|---|
$adm | boolean | whether the CMS is in admin mode or not |
$bjs | string | JavaScript area at the end of the <body> element |
$c | array | content-array (content, divided according to headings h1-hn) |
$cf | array | contains all config data from config.php |
$cl | integer | number of all pages |
$description | string | variable that overwrites the existing meta description from the config |
$download | string | whether a download is requested, and if so contains the name of the file to be made available for download |
$e | string | error messages |
$edit | boolean | indicates whether the CMS is in edit mode |
$f | string | the requested special function, e.g. 'search', 'mailform', 'sitemap' |
$fh | resource | a temporary file handle |
$function | string | GET or POST parameter designating a special function |
$h | array | headings-array |
$hjs | string | JavaScript and CSS area within the <head> element of a page |
$i and $j | integer | temporary loop variables |
$keywords | string | variable that overwrites the existing meta keywords from the config |
$l | array | array of menu levels |
$login | boolean | indicates if login has been requested/taken place |
$mailform | boolean | whether the mailform is requested (becomes $f='mailform') |
$normal | boolean | indicates whether the CMS is in view (normal) mode |
$o | string | output for the contents area |
$onload | string | value of the onload attribute of the <body> element of the page |
$pd_current | array | contains the page data of the current page |
boolean | whether a print view is requested | |
$pth | array | contains all paths/filenames used by CMSimple (details see below) |
$s | integer | pagenumber of the requested page |
$sitemap | boolean | whether the sitemap is requested (becomes $f='sitemap') |
$sl | string | active language (short form, e.g. 'de' or 'dk') |
$sn | string | contains name of directory in which CMSimple is installed |
$su | string | choosen URL (of present page) |
$temp | mixed | temporary variable |
$u | array | URL-array (links to all pages of the content) |
$title | string | title of the page |
$tx | array | contains all texts from the language system files of the used language |
$pth
$pth ist ein zweidimensionales Array, das die relativen Pfade zu Systemdateien und Ordnern enthält. Die erste Dimension enthält die Schlüssel 'file' und 'folder'. Die folgenden Pfade sind im gesamten System verfügbar:
$pth['folder']['base'] $pth['folder']['cmsimple'] $pth['folder']['language'] $pth['file']['language'] $pth['folder']['langconfig'] $pth['file']['langconfig'] $pth['file']['adm'] $pth['file']['cms'] $pth['file']['config'] $pth['file']['log'] $pth['file']['login'] $pth['file']['mailform'] $pth['file']['search'] $pth['file']['corestyle'] $pth['folder']['content'] $pth['file']['content'] $pth['file']['pagedata'] $pth['folder']['downloads'] $pth['folder']['images'] $pth['folder']['flags'] $pth['folder']['userfiles'] $pth['folder']['media'] $pth['folder']['plugins'] $pth['folder']['templates'] $pth['folder']['template'] $pth['folder']['menubuttons'] $pth['folder']['templateimages'] $pth['file']['template'] $pth['file']['stylesheet']
Zusätzlich werden die folgenden Schlüssel richtig gesetzt, wenn das Plugin geladen wird, sodass sie im globalen Bereich der index.php und admin.php des Plugins verfügbar sind:
$pth['folder']['plugin'] $pth['file']['plugin_index'] $pth['file']['plugin_admin'] $pth['folder']['plugin_classes'] $pth['file']['plugin_classes'] $pth['folder']['plugin_config'] $pth['file']['plugin_config'] $pth['folder']['plugin_content'] $pth['folder']['plugin_css'] $pth['file']['plugin_stylesheet'] $pth['folder']['plugin_help'] $pth['file']['plugin_help'] $pth['folder']['plugin_includes'] $pth['folder']['plugin_languages'] $pth['file']['plugin_language']
Constants
Eine grobe Übersicht über die wichtigsten Konstanten. Für CMSimple_XH 1.6+ konsultieren Sie die Entwicklerdokumentation, wo die Konstanten im Abschnitt constants der Datei cms.php aufgeführt sind.
Constant | Description |
---|---|
CMSIMPLE_ROOT | absolute filepath of the installation folder |
CMSIMPLE_XH_BUILD | build number in format YYYYMMDDNN |
CMSIMPLE_XH_VERSION | version number (e.g. “CMSimple_XH 1.5.9”) |
CMSIMPLE_XH_DATE | build date in format YYYY-MM-DD |
PLUGINLOADER | plugin loader has been loaded |
PLUGINLOADER_VERSION | version number of the plugin loader (e.g. 2.111); unmainted since early CMSimple_XH versions; use CMSIMPLE_XH_VERSION instead |
XH_ADM | whether the CMS is in admin mode or not (use instead of $adm since CMSimple_XH 1.5.4) |
CSS Selektoren.
Der folgende Inhalt beruht auf https://www.w3.org/TR/CSS21/selector.html%23id-selectors und https://code.tutsplus.com/de/tutorials/the-30-css-selectors-you-must-memorize--net-16048 und https://drafts.csswg.org/selectors-3/
Musterabgleich
In CSS legen Mustervergleichsregeln fest, welche Stilregeln für Elemente im Dokumentenbaum gelten. Diese als Selektoren bezeichneten Muster können von einfachen Elementnamen bis hin zu umfangreichen kontextbezogenen Mustern reichen. Wenn alle Bedingungen im Muster für ein bestimmtes Element wahr sind, stimmt der Selektor mit dem Element überein.
Die Groß-/Kleinschreibung von Dokumentsprachenelementnamen in Selektoren hängt von der Dokumentsprache ab. In HTML wird bei Elementnamen beispielsweise die Groß-/Kleinschreibung nicht beachtet, in XML hingegen muss die Groß-/Kleinschreibung beachtet werden.
Die folgende Tabelle fasst die CSS3 - Selektorsyntax zusammen:
Muster | Bedeutung | ext. Beschreibung ⇒ URL |
---|---|---|
* |
* { margin: 0; padding: 0;} Das Sternsymbol zielt auf jedes einzelne Element auf der Seite ab. |
Universal selector |
E |
a { color: red; } Der Typ-Selektor zielt auf alle Elemente des angegebenen Typs, unabhängig von ID oder Klasse. |
Type selectors |
E F |
li a { text-decoration: none;} Dieser Selector ist der Nachfahre Selektor. Er zielt auf jedes gleichnamige Element innerhalb des ersten Elementes. Das Umschließt Kinder, Enkel, Urenkel ... |
Descendant selectors |
E > F |
div#container > ul { border: 1px solid black;} Der Kind-Selektor zielt nur auf direkte Kinder und nicht auf Kindeskinder usw. |
Child selectors |
E:root | Die Pseudoklasse :root steht für ein Element, das die Wurzel des Dokuments ist. In HTML 4 ist dies immer das HTML-Element. | Structural pseudo-classes |
E:first-child |
ul li:first-child { border-top: none;} Ein E Element, erstes Kind seines Elternteils. Diese strukturelle Pseudoklasse ermöglicht es, nur das erste untergeordnete Element des übergeordneten Elements des Elements anzusprechen. |
The :first-child pseudo-class |
E:last-child |
ul > li:last-child { color: green;} Ein E-Element, letztes Kind seines Elternteils. Als Gegenteil von first-child, zielt last-child auf das letzte Element des übergeordneten Elements des Elements ab. |
Structural pseudo-classes |
E:first-of-type |
li:first-of-type { font-weight: bold} Ein E-Element, erstes Geschwisterteil seines Typs. Diese strukturelle Pseudoklasse ermöglicht es, nur das erste unter gleichen Elementen anzusprechen. |
Structural pseudo-classes |
E:last-of-type |
li:last-of-type { color: red;} Ein E-Element, letztes Geschwisterteil seines Typs. Als Gegenteil zu first-of-type, zielt last-of-type aud das letzte unter gleichen Elementen ab. |
Structural pseudo-classes |
E:only-child |
div p:only-child { color: red;} Ein E-Element, einziges Kind seines Elternteils. Es ermöglicht, Elemente anzusprechen, die das einzige untergeordnete Element des übergeordneten Elements sind. |
Structural pseudo-classes |
E:only-of-type |
li:only-of-type { font-weight: bold;} Ein E-Element, einziges Geschwisterteil seines Typs. Es zielt auf Elemente ab, die keine Geschwister in seinem übergeordneten Container haben. |
Structural pseudo-classes |
E:empty |
p:empty { border-bottom: 1px dotted lightgray;} Ein E-Element, das keine Kinder hat (einschließlich Textknoten) und leer ist. Also z. B. <p></p> |
Structural pseudo-classes |
E:nth-child(n) |
li:nth-child(3) { color: red;} Ein E-Element, das n-te Kind seines Elternteils, beginnend mit dem ersten Element. Die Zählung beginnt bei 1!. Im zweiten Beispiel wird jedes dritte Element angesprochen. |
Structural pseudo-classes |
E:nth-last-child(n) |
li:nth-last-child(2) { color: red;} Ein E Element, das n-te Kind seines Elternteils, beginnend mit dem letzten Element. |
Structural pseudo-classes |
E:nth-of-type(n) |
ul:nth-of-type(3) { border: 1px solid black;} Ein E Element, das n-te Geschwisterteil seines Typs, vom ersten an gerechnet. Im Beispiel wäre das das dritte ul-Element. |
Structural pseudo-classes |
E:nth-last-of-type(n) |
ul:nth-last-of-type(3) { border: 1px solid black;} Ein E-Element, das n-te Geschwister seines Typs, vom letzten an gerechnet. Im Beispiel wäre das das drittletzte ul-Element. |
Structural pseudo-classes |
E:link E:visited |
a:link { color: red; } Die Pseudoklasse :link selektiert alle Anker-Tags, die noch nicht angeklickt wurden. Und :visited selektiert alle schon angeklickten (besuchten) Anker-Tags. |
The link pseudo-classes |
E:aktiv E:hover E:focus |
div:aktiv { background: #d3d3d3;} Die Pseudoklassen :aktiv und :hover werden z. B. in Menüs eine Website eingesetzt. Der Anker der aktuell angezeigten Seite ist :aktiv. Der Anker unter dem Mauszeiger ist :hover. |
The dynamic pseudo-classes |
E:lang(c) |
html:lang(fr-be) {color: blue} Die ersten beiden vorstehenden Selektoren stehen für ein HTML-Dokument, das in belgischem Französisch oder Deutsch verfasst ist. Die beiden nächsten Selektoren stehen für q-Zitate in einem beliebigen Element in belgischem Französisch oder Deutsch. |
The :lang() pseudo-class |
E[lang|= "de"] |
html:lang|="fr" {color: blue} Der Unterschied zwischen :lang(C) und dem '|='-Operator besteht darin, dass der '|='-Operator nur einen Vergleich mit einem bestimmten Attribut des Elements durchführt, während die :lang(C)-Pseudoklasse das Wissen der UA über die Semantik des Dokuments verwendet, um den Vergleich durchzuführen. In diesem HTML-Beispiel stimmt nur der BODY mit [lang|=fr] überein (weil er ein LANG-Attribut hat), aber sowohl der BODY als auch das P stimmen mit :lang(fr) überein (weil beide auf Französisch sind). Das P passt nicht zu [lang|=fr], weil es kein LANG-Attribut hat. <body lang=fr> |
Attribute selectors |
E + F |
ul + p { color: red;} Der Selektor für die unmittelbaren Nachbaren ziel nur auf das Element, dem das erstel Element unmittelbar vorausgeht. |
Adjacent selectors |
E ~ F |
ul ~ p { color: red;} Dieser Geschwisterkombinator ähnelt X + Y, ist jedoch weniger streng. Während ein benachbarter Selektor (ul + p) nur das erste Element auswählt, dem der frühere Selektor unmittelbar vorausgeht, ist dieses Element allgemeiner. Es wählt unter Bezugnahme auf obiges Beispiel alle p-Elemente aus, solange sie einem ul folgen. |
Subsequent-sibling combinator |
E[foo] |
a[title] { color: green;} Entspricht jedem E-Element mit dem Attributsatz "foo" (unabhängig vom Wert). |
Attribute selectors |
E[foo= "warning"] |
input[value="wertangabe"] { color: blue;} Entspricht jedem E-Element, dessen "foo"-Attributwert genau gleich "warning" ist. |
Attribute selectors |
E[foo*="xyz"] |
a[href*="cmsimple"] { color: #1f6053; /* cmsimple green */} Der Stern gibt an, dass der folgende Wert irgendwo im Wert des Attributs erscheinen muss. Auf diese Weise deckt dieser Selektor im Beispiel alle Links ab, deren Adresse irgendwo das Wort cmsimple enthält. |
Attribute selectors |
E[foo^="bar"] |
a[href^="http"] { background: url(path/to/external/icon.png) no-repeat; padding-left: 10px;} Das Karat-Symbol (^) bezeichnet den Anfang des Wertes des Attributes foo, der zum Vergleich herangezogen wird. Er wird mit dem Parameter in den "" verglichen. |
Attribute selectors |
E[foo$="bar"] |
a[href$=".jpg"] { color: red;} Hier ist es umgekehrt wie zuvor. Das Dollarzeichen bezeichnet das Ende des Wertes des Attributes. |
|
E[foo*="bar"] |
a[data-filetype="image"] {color: red;} Entspricht jedem E-Element, dessen "foo"-Attributwert an bliebiger Stelle im String mindestens ein mal "bar" enthält. |
|
E[foo~= "Warnung"] |
a[data-info~="external"] { color: red;} Entspricht jedem E-Element, dessen "foo"-Attributwert eine Liste von durch Leerzeichen getrennten Werten ist, von denen einer genau "warning" entspricht. |
Attribute selectors |
div.class _selector or .class _selector |
p.absatz, .erorr{ color: red;} Dies ist ein class-Selektor. Der Unterschied zwischen id und class besteht darin, dass Sie mit letzteren mehrere Elemente ansprechen können. Verwenden Sie Klassen, wenn das Styling auf eine Gruppe von Elementen angewendet werden soll. Alternativ können Sie ids verwenden, um eine Nadel im Heuhaufen zu finden, und nur dieses bestimmte Element formatieren. |
Class selectors |
E#myid or #myid |
input#myid, #container { margin: auto;} Das Hash-Symbol vor einem Selektor: alle ID mit dem Namen des Selektors. |
ID selectors |
E:not(foo) |
a[href^="http"]:not([target="_blank"]):after { content: "\00a0\f045"; font: 0.889em FontAwesome; opacity: .35;} Die Negations-Pseudoklasse :not(X) ist eine funktionale Notation, die einen einfachen Selektor (außer der Negations-Pseudoklasse selbst) als Argument verwendet. Sie stellt ein Element dar, das nicht durch ihr Argument repräsentiert wird. Hier in diesen Template wird der Link ohne target="_blank"-Attribut so dargestellt: https://lembach-cmsimple.de Der gleiche Link mit dem target="_blank"-Attribut wird so dargestellt: https://lembach-cmsimple.de |
Negation pseudo-class |
E:checked |
input[type=radio]:checked {border: 1px solid blue;} Die Pseudoklasse selektiert ein Element E der Benutzeroberfläche, das angekreuzt/ausgeählt wurde (z. B. eine Optionsschaltfläche oder ein Kontrollkästchen) |
The UI element states pseudo-classes |
E:enabled E:disabled |
input:enabled { color: #22AA22;} <form action="url_of_form"> Ein Element E der Benutzeroberfläche, das aktiviert oder deaktiviert ist. |
The UI element states pseudo-classes |
E:after E:before |
a[target="_blank"]::after { content: "\00a0\f08e"; font: 0.889em FontAwesome; opacity: .75;} Diese Pseudoklassen fügen nach oder vor dem Element (durchaus mit zusätzlichen Selektoren wie z. B. [attribut="wert"]) Inhalt ein. |
|
p::first-line p::first-letter |
p::first-line { font-weight: bold; font-size: 1.2em;} Diese Pseudoelemente müssen auf Elemente auf Blockebene angewendet werden, um wirksam zu werden! Die angegebene Formatierung wirkt dann auf die erste Zeile bzw. den ersten Buchstaben des Absatzes. |
Scriptreihenfolge
Der Scriptimporter des Templates enthält folgende Script:
Zuordnung von Script-Namen zur Stelle in der Bit-Maske
Script-Name 1 | ||||||||||||||||
Script-Name 2 | ||||||||||||||||
Script-Name 3 | ||||||||||||||||
Script-Name 4 | ||||||||||||||||
Script-Name 5 | ||||||||||||||||
Script-Name 6 | ||||||||||||||||
Script-Name 7 | ||||||||||||||||
Script-Name 8 | ||||||||||||||||
Script-Name 9 | ||||||||||||||||
Script-Name 10 | ||||||||||||||||
Script-Name 11 | ||||||||||||||||
Script-Name 12 | ||||||||||||||||
Script-Name 13 | ||||||||||||||||
Script-Name 14 | ||||||||||||||||
Script-Name 15 | ||||||||||||||||
Script-Name 16 | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Bit-Maske für den scriptimporter.php |
Linksammlung
Spezialformate von Template krl-3col-flex: https://template.lembach-cmsimple.de/?Template-krl-3col-flex/Dateien-des-Templates/stylesheet.css
Blindtexte online Erzeugen lassen: https://www.blindtextgenerator.de/
seflhtml Zeichenreferenz: https://wiki.selfhtml.org/wiki/Zeichenreferenz
Dateiname: templates/krl-3col-flex/_optionaler-HTM-Content/Notiz-Box-Version3_1.htm
<h1>Notiz - Box zum Copy & Paste</h1>
<p>Letztes Update am 24.08.2022</p>
<details>
<summary style="font-size: large;" spellcheck="false" data-gramm="false">Akkordeon</summary>
<p><strong>HTML</strong>:<br><details><br><summary>Das ist die Kopfzeile.</summary><br><p>Das ist der Boddy des Absatzes.</p><br></details></p>
<p class="caption">Immer den gesamten Frontend-Bereich kopieren (alles zwischen ⇒ und ⇐, bzw. wenn das schwierig ist, dann die beiden Pfeile mit kopieren und im Editorfenster wieder löschen.</p>
<p><strong>Frontend</strong> (<span class="blue">zum Kopieren vorher ausklappen, <details ....> durch <details> ersetzen!</span>):</p>
<hr>
<p>⇒</p>
<details>
<summary>Das ist die Kopfzeile.</summary>
<p>Das ist der Boddy des Absatzes.</p>
</details>
<p>⇐</p>
</details><hr><details>
<summary style="font-size: large;">Codeschnipsel zum Einfügen</summary>
<h6>DIV-Block mit zwei Absätzen</h6>
<p>⇒</p>
<div class="col">
<p>Das ist ein erster Absatz.</p>
<p>Das ist ein zweiter Absatz.</p>
</div>
<p>⇐</p>
</details><hr><details>
<summary style="font-size: large;">Codeeditor Tastenkürzel</summary>
<table style="border-style: solid; border-color: #000000; float: left;" border="1" cellspacing="5px" cellpadding="5px">
<tbody>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;" scope="row">Funktion</th>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;" scope="row">PC</th>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Speichern</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-S</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Suchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-F</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Weitersuchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-G</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Rückwärts suchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Shift-Ctrl-G</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Ersetzen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Shift-Ctrl-F</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Alle ersetzen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Shift-Ctrl-R</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Vollbild umschalten</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Esc</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Faltung umschalten</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-Q</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Zeilenumbrechen umschalten</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Alt-W</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Vorschau umschalten</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Crtl-P</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Bilder durchsuchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-I</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Downloads durchsuchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-L</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Mediadateien durchsuchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-M</td>
</tr>
<tr>
<th style="background-color: yellow; padding: 5px; text-align: left; vertical-align: top;"><strong>Benutzerdateien durchsuchen</strong></th>
<td style="background-color: #ffffff; padding: 5px; text-align: left; vertical-align: top;">Ctrl-U</td>
</tr>
</tbody>
</table>
<p class="clear"> </p>
</details><hr><details>
<summary style="font-size: large;">Template Tags</summary>
<div>
<table style="text-align: left; vertical-align: top; padding: 5px; background-color: #ffffff; border-style: solid; border-color: #000000; float: left;" border="1" cellspacing="5px" cellpadding="5px"><caption><strong>In CMSimple_XH eingebaute Funktionen und deren Funktion</strong></caption>
<thead>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">Funktion</th>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">Status</th>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">editmenu()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">obsolet<a id="fnt__1" href="https://wiki.cmsimple-xh.org/doku.php/de:template_tags#fn__1">1)</a></td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt im Admin-Modus das Admin-Menü.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">content()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">erforderlich</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Inhalt der Seite(n).</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">head()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">erforderlich</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt Tags zu Stylesheet, Meta-Daten und Seiten-Titel.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">languagemenu()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">empfohlen</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Liefert Links für mehrsprachige Seiten.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">lastupdate()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">empfohlen</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Liefert Zeit/Datum der letzen Änderung.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">li($hc,'menulevel')</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt Menü inkl. Untermenü's.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">locator()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt den Locator (Breadcrumbs).</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">loginlink()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">empfohlen</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Zeigt den 'Login'-Link an (sofern nicht angemeldet).</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">mailformlink()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt einen Link für das Mailformular.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">newsbox()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">zusätzlich</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Liefert den Inhalt einer versteckten ('hidden') Seite.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">nextpage()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt einen Link zur nächsten Seite.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">onload()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">erforderlich</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erforderlich im Body-Tag für die Funktionen des Editors.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">pagename()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Zeigt den Inhalt der Konfigurationsvariable<br>$cf['site']['title']. Diese Variable wird aus der Sprachvariable $tx['site']['title'] erzeugt. Wenn der Titel für eine bestimmte Seite per meta_tags Plugin verändert wird, wird für diese Seite der geänderte Titel angezeigt.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">previouspage()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt einen Link zur vorherigen Seite.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">printlink()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt einen Link für die Druckansicht.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">searchbox()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt das Suchfeld.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">sitename()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Zeigt den Inhalt der Sprachvariable $tx['site']['title'].</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">sitemaplink()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Liefert einen Link zur Sitemap.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">submenu()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt Links zu Unterseiten (sofern vorhanden).</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">toc()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">erforderlich</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt das Menü.</td>
</tr>
<tr>
<th style="background: yellow; padding: 5px; text-align: left; vertical-align: top;">top()</th>
<td style="padding: 5px; text-align: left; vertical-align: top;">optional</td>
<td style="padding: 5px; text-align: left; vertical-align: top;">Erzeugt einen Link zum Anfang der Seite (#TOP).</td>
</tr>
</tbody>
</table>
</div>
<p class="clear"> </p>
</details><hr><details>
<summary style="font-size: large;">Core Funktionen</summary>
<p>Eine grobe Übersicht über die wichtigsten Funktionen:</p>
<table style="border-style: solid; border-color: #000000; padding: 5px;" border="1"><caption><strong>Ein Teil der im Core enthaltenen Funktionen</strong></caption>
<thead>
<tr style="height: 18px;">
<th style="text-align: left; vertical-align: middle; padding: 5px; background: yellow;"><span style="background-color: #ffff00;">Funktion(Wert)</span></th>
<th style="text-align: left; padding: 5px; background: yellow; vertical-align: middle;"><span style="background-color: #ffff00;">Beschreibung</span></th>
</tr>
</thead>
<tbody>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">a($nummer,$zusatz)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert einen (öffnenden) Link zu einer <abbr title="Content Management System">CMS</abbr>-Seite ($nummer)</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">amp()</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">gibt & oder (XHTML-konform) &amp; zurück; deprecated seit 1.5.4</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">autogallery($url)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">zeigt eine Galerie an; deprecated seit 1.5.4</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">chkdl($datei)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">überprüft Download (Existenz, Berechtigungen etc.); deprecated seit 1.6</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">chkfile($key,$schreibbar)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">überprüft eine Datei (Berechtigungen etc.); deprecated seit 1.6</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">cmscript($script,$text)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">ob gesuchtes CMSimple-Skript im Text vorhanden ist</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">download($datei)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">stellt eine Datei zum Download bereit</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">e($fehler,$typ,$datei)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">erzeugt Fehlermeldung</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">evaluate_scripting($text,$compat)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert Text mit evaluiertem Scripting zurück</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">gc($name)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liest ein Cookie</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">geturl($url)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liest eine externe Ressource</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">geturlwp($url)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liest eine externe Ressource mit Parametern</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">h($nummer)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert die Überschrift einer Seite</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">hide($nummer)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">ob die Seite versteckt ('hide') ist</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">initvar($name)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">initalisiert eine Variable aus POST oder GET</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">l($nummer)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert die Menüebene einer Seite</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">logincheck()</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">überprüft Anmeldung am <abbr title="Content Management System">CMS</abbr></td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">meta($name)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert <meta> Element</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">ml($key)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert einen Link zu einer Sonderseite</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">
<p>plugin_admin_common($action, $admin, $plugin)</p>
</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">behandelt Standardaktionen der Pluginadministration</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">print_plugin_admin($main)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert das Pluginmenu</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">rf($datei)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liest eine Datei; deprecated seit 1.6</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">rfc()</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liest content.htm und initialisiert die entsprechenden globalen Variablen</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">rmanl($text)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">entfernt alle Zeilenumbrüche (\n, \r) aus einem Text</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">rmnl($text)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">ersetzt mehrfache Zeilenumbrüche durch einen einzelnen</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">rp($datei)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert absoluten Dateipfad; deprecated seit 1.5.4</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">selectlist(…)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">erzeugt eine Selectbox; entfernt seit 1.6</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">shead($code)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">erzeugt eine HTTP Fehlermeldung</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">sortdir($ordner)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert ein Array mit allen Einträgen eines Verzeichnisses (alphabetisch sortiert)</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">stsl($text)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">demaskiert GPC Parameter</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">sv($name)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert eine Server-Variable</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">tag($tag)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">liefert einen (X)<abbr title="HyperText Markup Language">HTML</abbr> konformen Tag</td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">uenc($ueberschrift)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">kodiert eine Seiten-<abbr title="Uniform Resource Locator">URL</abbr></td>
</tr>
<tr style="height: 18px;">
<td style="padding: 5px; background: yellow; text-align: left; vertical-align: middle;">writelog($nachricht)</td>
<td style="padding: 5px; background: #ffffff; text-align: left; vertical-align: middle;">hängt einen Eintrag an die Protokolldatei an</td>
</tr>
</tbody>
</table>
<p class="clear"> </p>
</details><hr><details>
<summary style="font-size: large;">Core Variable und Konstanten</summary>
<table style="height: 648px; border-style: solid; border-color: #000000; background-color: #ffffff;" border="1" cellspacing="5px" cellpadding="5px"><caption><strong>In CMSimple_XH verwendete Variablen und Konstanten</strong></caption>
<thead>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;">Variable</th>
<th style="padding: 5px;">Typ</th>
<th style="padding: 5px;">Description</th>
</tr>
</thead>
<tbody>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$adm</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">whether the <abbr title="Content Management System">CMS</abbr> is in admin mode or not</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$bjs</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">JavaScript area at the end of the <body> element</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$c</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">content-array (content, divided according to headings h1-hn)</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$cf</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">contains all config data from config.php</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$cl</strong></th>
<td style="padding: 5px;">integer</td>
<td style="padding: 5px;">number of all pages</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$description</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">variable that overwrites the existing meta description from the config</td>
</tr>
<tr style="height: 36px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$download</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">whether a download is requested, and if so contains the name of the file to be made available for download</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$e</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">error messages</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$edit</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">indicates whether the <abbr title="Content Management System">CMS</abbr> is in edit mode</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$f</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">the requested special function, e.g. 'search', 'mailform', 'sitemap'</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$fh</strong></th>
<td style="padding: 5px;">resource</td>
<td style="padding: 5px;">a temporary file handle</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$function</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">GET or POST parameter designating a special function</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$h</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">headings-array</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$hjs</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">JavaScript and <abbr title="Cascading Style Sheets">CSS</abbr> area within the <head> element of a page</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$i</strong> and <strong>$j</strong></th>
<td style="padding: 5px;">integer</td>
<td style="padding: 5px;">temporary loop variables</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$keywords</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">variable that overwrites the existing meta keywords from the config</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$l</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">array of menu levels</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$login</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">indicates if login has been requested/taken place</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$mailform</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">whether the mailform is requested (becomes $f='mailform')</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$normal</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">indicates whether the <abbr title="Content Management System">CMS</abbr> is in view (normal) mode</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$o</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">output for the contents area</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$onload</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">value of the onload attribute of the <body> element of the page</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$pd_current</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">contains the page data of the current page</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$print</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">whether a print view is requested</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$pth</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">contains all paths/filenames used by CMSimple (details see below)</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$s</strong></th>
<td style="padding: 5px;">integer</td>
<td style="padding: 5px;">pagenumber of the requested page</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$sitemap</strong></th>
<td style="padding: 5px;">boolean</td>
<td style="padding: 5px;">whether the sitemap is requested (becomes $f='sitemap')</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$sl</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">active language (short form, e.g. 'de' or 'dk')</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$sn</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">contains name of directory in which CMSimple is installed</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$su</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">choosen <abbr title="Uniform Resource Locator">URL</abbr> (of present page)</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$temp</strong></th>
<td style="padding: 5px;">mixed</td>
<td style="padding: 5px;">temporary variable</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$u</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;"><abbr title="Uniform Resource Locator">URL</abbr>-array (links to all pages of the content)</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$title</strong></th>
<td style="padding: 5px;">string</td>
<td style="padding: 5px;">title of the page</td>
</tr>
<tr style="height: 18px;">
<th style="background-color: #ffff00; padding: 5px;"><strong>$tx</strong></th>
<td style="padding: 5px;">array</td>
<td style="padding: 5px;">contains all texts from the language system files of the used language</td>
</tr>
</tbody>
</table>
<h3>$pth</h3>
<div style="background: #fff; margin: 0 5px 0 5px; padding: 3px;">
<p>$pth ist ein zweidimensionales Array, das die relativen Pfade zu Systemdateien und Ordnern enthält. Die erste Dimension enthält die Schlüssel 'file' und 'folder'. Die folgenden Pfade sind im gesamten System verfügbar:</p>
<pre>$pth['folder']['base']
$pth['folder']['cmsimple']
$pth['folder']['language']
$pth['file']['language']
$pth['folder']['langconfig']
$pth['file']['langconfig']
$pth['file']['adm']
$pth['file']['cms']
$pth['file']['config']
$pth['file']['log']
$pth['file']['login']
$pth['file']['mailform']
$pth['file']['search']
$pth['file']['corestyle']
$pth['folder']['content']
$pth['file']['content']
$pth['file']['pagedata']
$pth['folder']['downloads']
$pth['folder']['images']
$pth['folder']['flags']
$pth['folder']['userfiles']
$pth['folder']['media']
$pth['folder']['plugins']
$pth['folder']['templates']
$pth['folder']['template']
$pth['folder']['menubuttons']
$pth['folder']['templateimages']
$pth['file']['template']
$pth['file']['stylesheet']</pre>
<p><br>Zusätzlich werden die folgenden Schlüssel richtig gesetzt, wenn das Plugin geladen wird, sodass sie im globalen Bereich der index.php und admin.php des Plugins verfügbar sind:</p>
<pre>$pth['folder']['plugin']
$pth['file']['plugin_index']
$pth['file']['plugin_admin']
$pth['folder']['plugin_classes']
$pth['file']['plugin_classes']
$pth['folder']['plugin_config']
$pth['file']['plugin_config']
$pth['folder']['plugin_content']
$pth['folder']['plugin_css']
$pth['file']['plugin_stylesheet']
$pth['folder']['plugin_help']
$pth['file']['plugin_help']
$pth['folder']['plugin_includes']
$pth['folder']['plugin_languages']
$pth['file']['plugin_language']</pre>
</div>
<h2>Constants</h2>
<p style="background: #fff; margin: 0 5px 0 5px; padding: 3px;">Eine grobe Übersicht über die wichtigsten Konstanten. Für CMSimple_XH 1.6+ konsultieren Sie die Entwicklerdokumentation, wo die Konstanten im Abschnitt constants der Datei cms.php aufgeführt sind.</p>
<p> </p>
<table style="border-style: solid; border-color: #999; background-color: #fff;" border="1">
<thead>
<tr>
<th style="padding: 5px; background-color: #ffff00;"><strong>Constant</strong></th>
<th style="padding: 5px;">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding: 5px; background-color: #ffff00;">CMSIMPLE_ROOT</td>
<td style="padding: 5px;">absolute filepath of the installation folder</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">CMSIMPLE_XH_BUILD</td>
<td style="padding: 5px;">build number in format YYYYMMDDNN</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">CMSIMPLE_XH_VERSION</td>
<td style="padding: 5px;">version number (e.g. “CMSimple_XH 1.5.9”)</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">CMSIMPLE_XH_DATE</td>
<td style="padding: 5px;">build date in format YYYY-MM-DD</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">PLUGINLOADER</td>
<td style="padding: 5px;">plugin loader has been loaded</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">PLUGINLOADER_VERSION</td>
<td style="padding: 5px;">version number of the plugin loader (e.g. 2.111); unmainted since early CMSimple_XH versions; use CMSIMPLE_XH_VERSION instead</td>
</tr>
<tr>
<td style="padding: 5px; background-color: #ffff00;">XH_ADM</td>
<td style="padding: 5px;">whether the <abbr title="Content Management System">CMS</abbr> is in admin mode or not (use instead of $adm since CMSimple_XH 1.5.4)</td>
</tr>
</tbody>
</table>
</details><hr><details>
<summary style="font-size: large;" spellcheck="false" data-gramm="false">CSS Selektoren.</summary>
<p>Der folgende Inhalt beruht auf <a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors" target="_blank" rel="noopener">https://www.w3.org/TR/CSS21/selector.html%23id-selectors</a> und <a href="https://code.tutsplus.com/de/tutorials/the-30-css-selectors-you-must-memorize--net-16048" target="_blank" rel="noopener">https://code.tutsplus.com/de/tutorials/the-30-css-selectors-you-must-memorize--net-16048</a> und <a href="https://drafts.csswg.org/selectors-3/" target="_blank" rel="noopener">https://drafts.csswg.org/selectors-3/</a></p>
<h3>Musterabgleich</h3>
<p>In CSS legen Mustervergleichsregeln fest, welche Stilregeln für Elemente im Dokumentenbaum gelten. Diese als Selektoren bezeichneten Muster können von einfachen Elementnamen bis hin zu umfangreichen kontextbezogenen Mustern reichen. Wenn alle Bedingungen im Muster für ein bestimmtes Element wahr sind, stimmt der Selektor mit dem Element überein.</p>
<p>Die Groß-/Kleinschreibung von Dokumentsprachenelementnamen in Selektoren hängt von der Dokumentsprache ab. In HTML wird bei Elementnamen beispielsweise die Groß-/Kleinschreibung nicht beachtet, in XML hingegen muss die Groß-/Kleinschreibung beachtet werden.</p>
<p>Die folgende Tabelle fasst die CSS3 - Selektorsyntax zusammen:</p>
<table style="text-align: left; vertical-align: top; background-color: #ffff00; border-style: solid; border-color: #000000; float: left;" border="1" cellspacing="5px" cellpadding="5px">
<tbody>
<tr>
<th style="vertical-align: top;">Muster</th>
<th style="vertical-align: top;">Bedeutung</th>
<th style="vertical-align: top;">ext. Beschreibung ⇒ URL</th>
</tr>
<tr>
<td style="vertical-align: top;">*</td>
<td>
<p><span style="background-color: #ffffff;">* { margin: 0; padding: 0;}</span></p>
<p>Das Sternsymbol zielt auf jedes einzelne Element auf der Seite ab.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#universal-selector" target="_blank" rel="noopener">Universal selector</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E</td>
<td>
<p><span style="background-color: #ffffff;">a { color: red; }</span><br><span style="background-color: #ffffff;">ul { margin-left: 0; }</span></p>
<p>Der Typ-Selektor zielt auf alle Elemente des angegebenen Typs, unabhängig von ID oder Klasse.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#type-selectors" target="_blank" rel="noopener">Type selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E F</td>
<td>
<p><span style="background-color: #ffffff;">li a { text-decoration: none;}</span></p>
<p>Dieser Selector ist der Nachfahre Selektor. Er zielt auf jedes gleichnamige Element innerhalb des ersten Elementes. Das Umschließt Kinder, Enkel, Urenkel ...</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#descendant-selectors" target="_blank" rel="noopener">Descendant selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E > F</td>
<td>
<p><span style="background-color: #ffffff;">div#container > ul { border: 1px solid black;}</span></p>
<p>Der Kind-Selektor zielt nur auf direkte Kinder und nicht auf Kindeskinder usw.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#child-selectors" target="_blank" rel="noopener">Child selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:root</td>
<td>Die Pseudoklasse :root steht für ein Element, das die Wurzel des Dokuments ist. In HTML 4 ist dies immer das HTML-Element.</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#root-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:first-child</td>
<td>
<p><span style="background-color: #ffffff;">ul li:first-child { border-top: none;}</span></p>
<p>Ein E Element, erstes Kind seines Elternteils. Diese strukturelle Pseudoklasse ermöglicht es, nur das erste untergeordnete Element des übergeordneten Elements des Elements anzusprechen.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#first-child" target="_blank" rel="noopener">The :first-child pseudo-class</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:last-child</td>
<td>
<p><span style="background-color: #ffffff;">ul > li:last-child { color: green;}</span></p>
<p>Ein E-Element, letztes Kind seines Elternteils. Als Gegenteil von first-child, zielt last-child auf das letzte Element des übergeordneten Elements des Elements ab.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#last-child-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:first-of-type</td>
<td>
<p><span style="background-color: #ffffff;">li:first-of-type { font-weight: bold}</span></p>
<p>Ein E-Element, erstes Geschwisterteil seines Typs. Diese strukturelle Pseudoklasse ermöglicht es, nur das erste unter gleichen Elementen anzusprechen.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#first-of-type-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:last-of-type</td>
<td>
<p><span style="background-color: #ffffff;">li:last-of-type { color: red;}</span></p>
<p>Ein E-Element, letztes Geschwisterteil seines Typs. Als Gegenteil zu first-of-type, zielt last-of-type aud das letzte unter gleichen Elementen ab.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#last-of-type-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:only-child</td>
<td>
<p><span style="background-color: #ffffff;">div p:only-child { color: red;}</span></p>
<p>Ein E-Element, einziges Kind seines Elternteils. Es ermöglicht, Elemente anzusprechen, die das einzige untergeordnete Element des übergeordneten Elements sind.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#only-child-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:only-of-type</td>
<td>
<p><span style="background-color: #ffffff;">li:only-of-type { font-weight: bold;}</span></p>
<p>Ein E-Element, einziges Geschwisterteil seines Typs. Es zielt auf Elemente ab, die keine Geschwister in seinem übergeordneten Container haben.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#only-of-type-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:empty</td>
<td>
<p><span style="background-color: #ffffff;">p:empty { border-bottom: 1px dotted lightgray;}</span></p>
<p>Ein E-Element, das keine Kinder hat (einschließlich Textknoten) und leer ist. Also z. B. <p></p></p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#empty-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:nth-child(n)</td>
<td>
<p><span style="background-color: #ffffff;">li:nth-child(3) { color: red;}<br>li:nth-child(3n) { color: red;}<br></span></p>
<p>Ein E-Element, das n-te Kind seines Elternteils, beginnend mit dem ersten Element. Die Zählung beginnt bei 1!. Im zweiten Beispiel wird jedes dritte Element angesprochen.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#nth-child-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:nth-last-child(n)</td>
<td>
<p><span style="background-color: #ffffff;">li:nth-last-child(2) { color: red;}</span></p>
<p>Ein E Element, das n-te Kind seines Elternteils, beginnend mit dem letzten Element.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#nth-last-child-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:nth-of-type(n)</td>
<td>
<p><span style="background-color: #ffffff;">ul:nth-of-type(3) { border: 1px solid black;}</span></p>
<p>Ein E Element, das n-te Geschwisterteil seines Typs, vom ersten an gerechnet. Im Beispiel wäre das das dritte ul-Element.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#nth-of-type-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:nth-last-of-type(n)</td>
<td>
<p><span style="background-color: #ffffff;">ul:nth-last-of-type(3) { border: 1px solid black;}</span></p>
<p>Ein E-Element, das n-te Geschwister seines Typs, vom letzten an gerechnet. Im Beispiel wäre das das drittletzte ul-Element.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#nth-last-of-type-pseudo" target="_blank" rel="noopener">Structural pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:link<br>E:visited</td>
<td>
<p><span style="background-color: #ffffff;">a:link { color: red; }</span><br><span style="background-color: #ffffff;">a:visted { color: purple; }</span></p>
<p>Die Pseudoklasse :link selektiert alle Anker-Tags, die noch nicht angeklickt wurden. Und :visited selektiert alle schon angeklickten (besuchten) Anker-Tags.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#link-pseudo-classes" target="_blank" rel="noopener">The link pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:aktiv<br>E:hover<br>E:focus</td>
<td>
<p><span style="background-color: #ffffff;">div:aktiv { background: #d3d3d3;}</span><br><span style="background-color: #ffffff;">div:hover { background: #e3e3e3;}</span><br><span style="background-color: #ffffff;">div:focus{ border-color: #f3f3f3;}</span></p>
<p>Die Pseudoklassen :aktiv und :hover werden z. B. in Menüs eine Website eingesetzt. Der Anker der aktuell angezeigten Seite ist :aktiv. Der Anker unter dem Mauszeiger ist :hover.<br>Springt man in einem Formular z. B. mit dem Tabulator von Eingabe zu Eingabe, hat das so angewählte <form> - Tag den :focus.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#dynamic-pseudo-classes" target="_blank" rel="noopener">The dynamic pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:lang(c)</td>
<td>
<p><span style="background-color: #ffffff;">html:lang(fr-be) {color: blue}</span><br><span style="background-color: #ffffff;">html:lang(de) {color: red}</span><br><span style="background-color: #ffffff;">:lang(fr-be) > q {background: lightblue;}</span><br><span style="background-color: #ffffff;">:lang(de) > q {background: lightgray;}<br></span></p>
<p>Die ersten beiden vorstehenden Selektoren stehen für ein HTML-Dokument, das in belgischem Französisch oder Deutsch verfasst ist. Die beiden nächsten Selektoren stehen für q-Zitate in einem beliebigen Element in belgischem Französisch oder Deutsch.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#lang" target="_blank" rel="noopener">The :lang() pseudo-class</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[lang|=<br>"de"]</td>
<td>
<p><span style="background-color: #ffffff;">html:lang|="fr" {color: blue}</span></p>
<p>Der Unterschied zwischen :lang(C) und dem '|='-Operator besteht darin, dass der '|='-Operator nur einen Vergleich mit einem bestimmten Attribut des Elements durchführt, während die :lang(C)-Pseudoklasse das Wissen der UA über die Semantik des Dokuments verwendet, um den Vergleich durchzuführen.</p>
<p>In diesem HTML-Beispiel stimmt nur der BODY mit [lang|=fr] überein (weil er ein LANG-Attribut hat), aber sowohl der BODY als auch das P stimmen mit :lang(fr) überein (weil beide auf Französisch sind). Das P passt nicht zu [lang|=fr], weil es kein LANG-Attribut hat.</p>
<p><span style="background-color: #ffffff;"><body lang=fr></span><br><span style="background-color: #ffffff;"><p>Je suis français.</p></span><br><span style="background-color: #ffffff;"></body></span></p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E + F</td>
<td>
<p><span style="background-color: #ffffff;">ul + p { color: red;}</span></p>
<p>Der Selektor für die unmittelbaren Nachbaren ziel nur auf das Element, dem das erstel Element unmittelbar vorausgeht.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#adjacent-selectors" target="_blank" rel="noopener">Adjacent selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E ~ F</td>
<td>
<p><span style="background-color: #ffffff;">ul ~ p { color: red;}</span></p>
<p>Dieser Geschwisterkombinator ähnelt X + Y, ist jedoch weniger streng. Während ein benachbarter Selektor (ul + p) nur das erste Element auswählt, dem der frühere Selektor unmittelbar vorausgeht, ist dieses Element allgemeiner. Es wählt unter Bezugnahme auf obiges Beispiel alle p-Elemente aus, solange sie einem ul folgen.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#general-sibling-combinators" target="_blank" rel="noopener">Subsequent-sibling combinator</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo]</td>
<td>
<p><span style="background-color: #ffffff;">a[title] { color: green;}</span></p>
<p>Entspricht jedem E-Element mit dem Attributsatz "foo" (unabhängig vom Wert).<br>Im obigen Beispiel ziel der Selektor nur auf die Anker-Tags die ein title Attribut haben.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo=<br>"warning"]</td>
<td>
<p><span style="background-color: #ffffff;">input[value="wertangabe"] { color: blue;}</span><br><span style="background-color: #ffffff;">a[href="https://net.tutsplus.com"] { color: #1f6053; /* nettuts green */}</span></p>
<p>Entspricht jedem E-Element, dessen "foo"-Attributwert genau gleich "warning" ist.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo*="xyz"]</td>
<td>
<p><span style="background-color: #ffffff;">a[href*="cmsimple"] { color: #1f6053; /* cmsimple green */}</span></p>
<p>Der Stern gibt an, dass der folgende Wert irgendwo im Wert des Attributs erscheinen muss. Auf diese Weise deckt dieser Selektor im Beispiel alle Links ab, deren Adresse irgendwo das Wort cmsimple enthält.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo^="bar"]</td>
<td>
<p><span style="background-color: #ffffff;">a[href^="http"] { background: url(path/to/external/icon.png) no-repeat; padding-left: 10px;}</span></p>
<p>Das Karat-Symbol (^) bezeichnet den Anfang des Wertes des Attributes foo, der zum Vergleich herangezogen wird. Er wird mit dem Parameter in den "" verglichen. <br>Hier im Beispiel wird also der Anfang des Wertes des Attributes href mit "http" verglichen. Bei Übereinstimmung wird die Formatauszeichnung aktiv. Es sind also alle externen Links (egal ob http oder https) erfasst.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo$="bar"]</td>
<td>
<p><span style="background-color: #ffffff;">a[href$=".jpg"] { color: red;}</span></p>
<p>Hier ist es umgekehrt wie zuvor. Das Dollarzeichen bezeichnet das Ende des Wertes des Attributes.<br>Hier im Beispiel werden also alle Links zu JPG-Bildern selektiert.</p>
</td>
<td style="vertical-align: top;"> </td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo*="bar"]</td>
<td>
<p><span style="background-color: #ffffff;">a[data-filetype="image"] {color: red;}</span></p>
<p>Entspricht jedem E-Element, dessen "foo"-Attributwert an bliebiger Stelle im String mindestens ein mal "bar" enthält.</p>
</td>
<td style="vertical-align: top;"> </td>
</tr>
<tr>
<td style="vertical-align: top;">E[foo~=<br>"Warnung"]</td>
<td>
<p><span style="background-color: #ffffff;">a[data-info~="external"] { color: red;}</span><br><span style="background-color: #ffffff;">a[data-info~="image"] { border: 1px solid black;}</span></p>
<p>Entspricht jedem E-Element, dessen "foo"-Attributwert eine Liste von durch Leerzeichen getrennten Werten ist, von denen einer genau "warning" entspricht.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#attribute-selectors" target="_blank" rel="noopener">Attribute selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">div.class<br>_selector<br>or<br>.class<br>_selector</td>
<td>
<p><span style="background-color: #ffffff;">p.absatz, .erorr{ color: red;}</span></p>
<p>Dies ist ein class-Selektor. Der Unterschied zwischen id und class besteht darin, dass Sie mit letzteren mehrere Elemente ansprechen können. Verwenden Sie Klassen, wenn das Styling auf eine Gruppe von Elementen angewendet werden soll. Alternativ können Sie ids verwenden, um eine Nadel im Heuhaufen zu finden, und nur dieses bestimmte Element formatieren.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#class-html" target="_blank" rel="noopener">Class selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E#myid<br>or<br>#myid</td>
<td>
<p><span style="background-color: #ffffff;">input#myid, #container { margin: auto;}</span></p>
<p>Das Hash-Symbol vor einem Selektor: alle ID mit dem Namen des Selektors.</p>
</td>
<td style="vertical-align: top;"><a href="https://www.w3.org/TR/CSS21/selector.html%23id-selectors#id-selectors" target="_blank" rel="noopener">ID selectors</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:not(foo)</td>
<td>
<p><span style="background-color: #ffffff;">a[href^="http"]:not([target="_blank"]):after { content: "\00a0\f045"; font: 0.889em FontAwesome; opacity: .35;}</span></p>
<p>Die Negations-Pseudoklasse :not(X) ist eine funktionale Notation, die einen einfachen Selektor (außer der Negations-Pseudoklasse selbst) als Argument verwendet. Sie stellt ein Element dar, das nicht durch ihr Argument repräsentiert wird.<br>Negationen dürfen nicht verschachtelt werden; :not(:not(...)) ist ungültig. Da Pseudo-Elemente keine einfachen Selektoren sind, sind sie auch kein gültiges Argument für :not().</p>
<p>Hier in diesen Template wird der Link ohne target="_blank"-Attribut so dargestellt: <a href="https://lembach-cmsimple.de">https://lembach-cmsimple.de</a></p>
<p>Der gleiche Link mit dem target="_blank"-Attribut wird so dargestellt: <a href="https://lembach-cmsimple.de" target="_blank" rel="noopener">https://lembach-cmsimple.de</a></p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#negation" target="_blank" rel="noopener">Negation pseudo-class</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:checked</td>
<td>
<p><span style="background-color: #ffffff;">input[type=radio]:checked {border: 1px solid blue;}</span></p>
<p>Die Pseudoklasse selektiert ein Element E der Benutzeroberfläche, das angekreuzt/ausgeählt wurde (z. B. eine Optionsschaltfläche oder ein Kontrollkästchen)</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#UIstates" target="_blank" rel="noopener">The UI element states pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:enabled<br>E:disabled</td>
<td>
<p><span style="background-color: #ffffff;">input:enabled { color: #22AA22;}</span><br><span style="background-color: #ffffff;">input:disabled { color: #D9D9D9;}</span></p>
<p><span style="background-color: #ffffff;"><form action="url_of_form"></span><br><span style="background-color: #ffffff;"><label for="FirstField">First field (enabled):</label> <input type="text" id="FirstField" value="Lorem"><br /></span><br><span style="background-color: #ffffff;"><label for="SecondField">Second field (disabled):</label> <input type="text" id="SecondField" value="Ipsum" disabled="disabled"><br /></span><br><span style="background-color: #ffffff;"><input type="button" value="Submit" /></span><br><span style="background-color: #ffffff;"></form></span></p>
<p>Ein Element E der Benutzeroberfläche, das aktiviert oder deaktiviert ist.<br>Die :enabled CSS Pseudoklasse repräsentiert alle aktivierten Elemente. Ein Element ist aktiviert, falls es aktiviert werden kann (z. B. markierte, angeklickte Elemente oder solche, die Texteingaben akzeptieren) oder die fokussiert werden können. Das Element hat auch einen deaktivierten Zustand, in welchem es nicht aktiviert werden oder fokussiert werden kann.</p>
</td>
<td style="vertical-align: top;"><a href="https://drafts.csswg.org/selectors-3/#UIstates" target="_blank" rel="noopener">The UI element states pseudo-classes</a></td>
</tr>
<tr>
<td style="vertical-align: top;">E:after<br>E:before</td>
<td style="vertical-align: top;">
<p><span style="background-color: #ffffff;">a[target="_blank"]::after { content: "\00a0\f08e"; font: 0.889em FontAwesome; opacity: .75;}</span></p>
<p>Diese Pseudoklassen fügen nach oder vor dem Element (durchaus mit zusätzlichen Selektoren wie z. B. [attribut="wert"]) Inhalt ein.</p>
</td>
<td style="vertical-align: top;">
<p><a href="https://drafts.csswg.org/selectors-3/#gen-content" target="_blank" rel="noopener">The ::before pseudo-element</a></p>
<p><a href="https://drafts.csswg.org/selectors-3/#gen-content" target="_blank" rel="noopener">The ::after pseudo-element</a></p>
</td>
</tr>
<tr>
<td style="vertical-align: top;">p::first-line<br>p::first-letter<br><br></td>
<td style="vertical-align: top;">
<p><span style="background-color: #ffffff;">p::first-line { font-weight: bold; font-size: 1.2em;}</span><br><span style="background-color: #ffffff;">p::first-letter { float: left; font-size: 2em; font-weight: bold; font-family: cursive; padding-right: 2px;}</span></p>
<p class="initial">Diese Pseudoelemente müssen auf Elemente auf Blockebene angewendet werden, um wirksam zu werden! Die angegebene Formatierung wirkt dann auf die erste Zeile bzw. den ersten Buchstaben des Absatzes.<br>Die folgenden CSS-Eigenschaften gelten für ein ::first-line-Pseudoelement: Schrifteigenschaften, Farbeigenschaften, Hintergrundeigenschaften, 'word-spacing', 'letter-spacing', 'text-decoration', 'text-transform', 'line-height'.</p>
</td>
<td style="vertical-align: top;">
<p><a href="https://drafts.csswg.org/selectors-3/#first-line" target="_blank" rel="noopener">The ::first-line pseudo-element</a></p>
<p><a href="https://drafts.csswg.org/selectors-3/#first-letter" target="_blank" rel="noopener">The ::first-letter pseudo-element</a></p>
</td>
</tr>
</tbody>
</table>
</details><hr><details><canvas class="lt-highlighter__canvas" style="display: none; top: 1px !important; left: 15px !important;" width="176" height="23"></canvas>
<summary style="font-size: large;" spellcheck="false" data-gramm="false">Scriptreihenfolge</summary>
<p style="text-align: left;">Der Scriptimporter des Templates enthält folgende Script:</p>
<p><span style="color: var(--h6color); font-family: Helvetica, sans-serif; font-size: 1.1em; font-weight: 600;">Zuordnung von Script-Namen zur Stelle in der Bit-Maske </span></p>
<table style="border-collapse: collapse; width: 100%; padding: 1px;" border="0">
<tbody>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="15"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 1</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 270px; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="15"> </td>
<td style="width: 1em; padding: 0px 2px; border-style: none; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="14"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 2</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 252px; padding: 0px 2px; text-align: left;" rowspan="14"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="13"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 3</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 234px; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="13"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="12"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 4</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 216px; padding: 0px 2px; text-align: left;" rowspan="12"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="11"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 5</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 198px; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="11"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="10"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 6</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 180px; padding: 0px 2px; text-align: left;" rowspan="10"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="9"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 7</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 162px; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="9"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="8"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 8</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 144px; padding: 0px 2px; text-align: left;" rowspan="8"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="7"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 9</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 126px; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="7"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="6"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 10</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; height: 108px; padding: 0px 2px; text-align: left;" rowspan="6"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;" colspan="5"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 11</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="5"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="4"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 12</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left;" rowspan="4"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="; padding: 0px 2px; text-align: left; background: lightgray;" colspan="3"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 13</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;" rowspan="3"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left;" colspan="2"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 14</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left;" rowspan="2"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="height: 18px; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 15</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; text-align: left; background: lightgray;"> </td>
<td style="width: 1em; padding: 0px 2px; text-align: left;"> </td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;">Script-Name 16</td>
</tr>
<tr style="text-align: center;">
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="width: 1em; padding: 0px 2px; border: 1px solid;">0</td>
<td style="text-align: left; padding-left: 3px; border: 1px solid;"><strong>Bit-Maske für den scriptimporter.php </strong></td>
</tr>
</tbody>
</table>
</details><hr><details>
<summary style="font-size: large;" spellcheck="false" data-gramm="false">Linksammlung</summary>
<p>Spezialformate von Template krl-3col-flex: <a title="Spezialformate krl-3col-flex" href="https://template.lembach-cmsimple.de/?Template-krl-3col-flex/Dateien-des-Templates/stylesheet.css" target="_blank" rel="noopener">https://template.lembach-cmsimple.de/?Template-krl-3col-flex/Dateien-des-Templates/stylesheet.css</a></p>
<p>Blindtexte online Erzeugen lassen: <a href="https://www.blindtextgenerator.de/" target="_blank" rel="noopener">https://www.blindtextgenerator.de/</a></p>
<p>seflhtml Zeichenreferenz: <a href="https://wiki.selfhtml.org/wiki/Zeichenreferenz" target="_blank" rel="noopener">https://wiki.selfhtml.org/wiki/Zeichenreferenz</a></p>
</details><hr>
<p class="hr-gradient"> </p>