CMS-Template-Erweiterungen
Aus MAXcms
Das CMS kann auf verschiedene Elemente im HTML-Code reagieren und die Ausgabe der Seite beeinflussen.
z.B. die CMS-Variablen als Ausgabe oder im Zusammenhang IF-Bedingungen.
Inhaltsverzeichnis |
[bearbeiten] Blöcke ausblenden
Bei manchen von einem Modul erzeugten Ausgaben soll ein ganzer Block ausgeblendet werden, wenn darin eine bestimmte Ausgabe nicht erfolgt. z.B. bei der Zeile
Geburtsdatum: 1.2.1970
soll die ganze Zeile inkl "Geburtsdatum:" ausgeblendet werden, wenn das Datum dahinter fehlt, dann kann folgendes eingefügt werden.
<!-- showif --> Geburtsdatum: <!-- notempty -->1.2.1970<!-- /notempty --> <!-- /showif -->
Dabei wird der ganze Block zwischen <!-- showif --> und <!-- /showif --> ausglendet, wenn zwischen <!-- notempty --> und <!-- /notempty --> nichts steht.
Der Block <!-- notempty --> ... <!-- /notempty --> darf nur innerhalb von <!-- showif --> ... <!-- /showif --> eingefügt werden, da sonst der Zusammenhang nicht hergestellt werden kann.
[bearbeiten] Blöcke einblenden
Es kommt aber auch vor, daß ein Block immer dann angezeigt werden soll, wenn ein anderer Inhalt nicht vorhanden ist, quasi als Default-Wert.
<!-- showif --> Allgemeiner Text <!-- isempty -->Spezieller Text<!-- /isempty --> <!-- /showif -->
In diesem Fall würde der "spezielle Text" angezeigt werden.
<!-- showif --> Allgemeiner Text <!-- isempty --><!-- /isempty --> <!-- /showif -->
In diesem Fall würde der "allgemeine Text" angezeigt werden.
Wichtig ist auch hier, daß der "isempty"-Block nur innerhalb des "showif"-Blocks vorkommen darf um den Zusammenhang herstellen zu können.
[bearbeiten] Code-Tags
In den HTML-Code können noch erweiterte Tags eingefügt werden, die vor der Ausgabe an den Browser den HTML-Code nochmal verändern können.
Beispiel:
<2date>2008-02-15</2date> ergibt die Ausgabe 15.02.2008 <2date>2008-02-15 15:12:34</2date> ergibt auch die Ausgabe 15.02.2008
- htmlspecialchars
- 2datetime
- macht aus z.B. 2008-02-15 12:15:12 die Ausgabe: 15.02.2008 12:15:12
- 2date
- macht aus z.B. 2008-02-15 12:15:12 die Ausgabe: 15.02.2008
- nl2br
- nobr
- filename
- extraheirt mit der basename()-Funktion aus einem Pfad mit Dateinamen nur den Dateinamen.
- teaser
- euro
- Macht aus 123.45 einen Euro-Wert im Format: 123,45 €
- urlencode
- cmsol
- cmsul
- strip
- Entfernt alle unnötigen Leerzeichen und Umbrüche
- externlink
- ucase
- Wandelt den eingeschlossenen Text in Großbuchstaben um
- lcase
- Wandelt den eingeschlossenen Text in Kleinbuchstaben um
[bearbeiten] eigene Code-Tags
Die Liste der vorhandenen Code-Tags kann im Projekt noch beliebig erweitert werden.
folgendes Beispiel implementiert ein neues <euro>-Tag, welches nicht fest 2 Nachkommastellen anzeigt, sondern maximal 4, aber die 4 und 3 Nachkommastelle entfernt, wenn diese nur 0 enthalten:
$GLOBALS["thCMS_config"]["extratags"][] = array("tagname" => "euroshop", "tagfunction" => "euroshopconvert");
function euroshopconvert($E) {
// {{{
$res = number_format($E,4,",",".");
if(substr($res,-1)=="0") $res = substr($res, 0, -1);
if(substr($res,-1)=="0") $res = substr($res, 0, -1);
$res .= " €";
return($res);
// }}}
}
Innerhalb eines Tempates kann dann an jeder Stelle folgendes verwendet werden.
<euroshop>12.345756<euroshop> ==> 12.3457 € <euroshop>12.3400<euroshop> ==> 12.34 € <euroshop>12.2<euroshop> ==> 12.20 €
