1. Das Templatesystem

In ConPresso werden Inhalte und Design voneinander getrennt. Das Erscheinungsbild von Artikeln wird daher über Formatvorlagen, die Templates, bestimmt. Zum überwiegenden Teil bestehen die Templates aus HTML-Code. Um sie zu erstellen oder zu bearbeiten, ist deshalb ein gewisses Maß an HTML-Kenntnissen erforderlich. Das Erlernen einer komplexen, zusätzlichen Template-Scriptsprache ist bei ConPresso jedoch nicht nötig.

Ergänzt wird der HTML-Code des Artikeltemplates ausschließlich durch so genannte Platzhalter, die im Moment der Ausgabe eines Artikels dynamisch mit den Inhalten gefüllt werden, die ein Benutzer zuvor erfasst hat. ConPresso-Platzhalter bestimmen darüber hinaus, welche Eingabemöglichkeiten bei der Erfassung oder Bearbeitung eines Artikels verfügbar sind.

Im Folgenden erhalten Sie alle wichtigen Informationen zum Aufbau von Platzhaltern und den vorhandenen Platzhalter-Typen. Bei der eigentlichen Erstellung eines Artikeltemplates (siehe Abschnitt 2, "Artikeltemplate erstellen") und der Einbindung von Platzhaltern in den Formatierungscode eines Artikeltemplates unterstützt Sie später der „Template-Editor“.

1.1. Aufbau von ConPresso-Platzhaltern

Ein ConPresso-Platzhalter besteht grundsätzlich mindestens aus einem "Typ" und einem "Namen". Der Aufbau eines Platzhalters folgt dem Schema: <!-- Typ: Name -->

Platzhalter werden in ConPresso in Form eines HTML-Kommentars geschrieben. Dies hat den Vorteil, dass ein fehlerhafter Platzhalter-Tag als Kommentar im generierten Ausgabecode ausgegeben wird und damit im Frontend des Projekts für den Betrachter nicht direkt als Fehler sichtbar ist.

Alle Platzhalter liefern bei ihrer Ausgabe im Frontend per Default korrektes XHTML zurück.

1.2. Platzhalter-Typen

ConPresso stellt verschiedene Typen von Platzhaltern bereit, die der Ein- und Ausgabe unterschiedlicher Inhaltsformen dienen. Hierzu gehören u.a. Platzhalter für Texte, Bilder oder Dateien.

ConPresso unterstützt in der Grundform die folgenden Platzhalter:

Weiterhin sind Platzhalter für die "Bedingte Ausgabe" von Inhalten vorhanden. Diese erlauben es, Teile des Artikeltemplates nur dann auszugeben bzw. abzuarbeiten, wenn der dazugehörige Platzhalter entweder leer oder mit Inhalt gefüllt ist:

Bei einigen der nachfolgend aufgezählten Platzhaltertypen wird in der Beschreibung das Stichwort "Entity-Umwandlung" benutzt. Dieses Stichwort bedeutet, dass vor der Ausgabe des jeweilgen Inhalts Sonderzeichen in ihre HTML-Entities umgewandelt werden (Bsp.: ">" wird zu "&gt;", usw.).

[Anmerkung]Anmerkung

Die oben genannten Platzhalter können z.B. durch Module erweitert werden. Sollte ein Modul neue Platzhalter oder zusätzliche Optionen für bestehende Platzhalter bereitstellen, entnehmen Sie die notwendigen Informationen bitte der Dokumentation des entsprechenden Moduls.

1.3. Platzhalter-Name

Der Name eines Platzhalters dient dazu, diesen eindeutig zu identifizieren. Er wird bei der Artikeleingabe als "Bezeichnung" neben den Eingabefeldern angezeigt. Der Name eines Platzhalters kann frei gewählt werden.

1.4. Platzhalter-Optionen

Zusätzlich können zu Platzhaltern weitere Optionen angegeben werden. Diese werden durch ";" getrennt hinter dem Namen angegeben.

Selbstverständlich können auch mehrere Optionen nacheinander angegeben werden. Die einzelnen Optionen werden durch ";" getrennt:

Optionen können in zwei Formen vorkommen:

  • als reiner "Schalter" (also "an" bzw. "aus"): "Option" oder

  • mit einer Wert-Vorgabe: "Option=Wert"

Über die Optionen wird hauptsächlich die Verarbeitung der Platzhalter bei deren Ausgabe gesteuert. Andere Einstellungen, die die Eingabe eines Platzhalters betreffen, können wie unter „Platzhaltereigenschaften bearbeiten“ beschrieben bearbeitet werden.

Da die Verwendung von Optionen vom Typ eines Platzhalters abhängig ist, entnehmen Sie die genaue Beschreibung der jeweils möglichen Optionen bitte der Beschreibung der Platzhaltertypen.

1.5. Bild-Platzhalter (Platzhalter vom Typ "Image")

Platzhalter vom Typ "Image" ermöglichen die Einbindung von Bildern in einen ConPresso-Artikel.

Wird in einem Artikeltemplate ein Platzhalter von Typ "Image" verwendet, so kann der redaktionell arbeitende Benutzer bei der Artikelerstellung bzw. -bearbeitung pro Bild-Platzhalter jeweils ein Bild auswählen. Dieses Bild muss zuvor hochgeladen und für die Rubrik verfügbar gemacht worden sein, wie in Abschnitt 1, "Dateien hochladen" beschrieben.

Beispiel 11.1. Ausgabe (HTML-Code) ohne Optionen

<img src="../_data/Dateiname" 
     alt="Alttext" 
     title="Beschreibung" 
     width="Breite" 
     height="Hoehe" />
    

Ausgabe-Optionen

file

Es wird nur der Dateiname des Bildes ausgegeben.

alttext

Es wird nur der alternative Text des Bildes ausgegeben. Hierbei werden Sonderzeichen in Entities umgewandelt.

width

Es wird nur die Breite des Bildes in Pixeln ausgegeben.

height

Es wird nur die Höhe des Bildes in Pixeln ausgegeben.

description

Es wird nur die Bildbeschreibung ausgegeben. Hierbei werden Sonderzeichen in Entities umgewandelt.

Beispiel 11.2. Beispiele

Ohne Optionen: <!-- Image: ein Bild; -->
Dateiname:     <!-- Image: ein Bild; file -->
Alttext:       <!-- Image: ein Bild; alttext -->
Bildbreite:    <!-- Image: ein Bild; width -->
Bildhöhe:      <!-- Image: ein Bild; height -->
Beschreibung:  <!-- Image: ein Bild; description -->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.6. Datei-Platzhalter (Platzhalter vom Typ "File")

Platzhalter vom Typ "File" ermöglichen die Einbindung von Dateien in einem ConPresso-Artikel.

Wird in einem Artikeltemplate ein Platzhalter von Typ "File" verwendet, so kann der redaktionell arbeitende Benutzer bei der Artikelerstellung bzw. -bearbeitung pro Datei-Platzhalter jeweils eine Datei auswählen. Diese Datei muss zuvor hochgeladen und für die Rubrik verfügbar gemacht worden sein, wie in Abschnitt 1, "Dateien hochladen" beschrieben.

Beispiel 11.3. Ausgabe (HTML-Code) ohne Optionen

<a href="../_data/Dateiname">Beschreibung [Dateigröße]</a>
    

Die Dateigröße wird "human readable" - also "menschenlesbar" ausgegeben (z.B. 128Kb).

Ausgabe-Optionen

file

Es wird nur der Dateiname ausgegeben.

description

Es wird nur die Beschreibung der Datei ausgegeben.

hrsize

Es wird nur die Dateigröße im "human readable"-Format ausgegeben - z.B. als 128Kb.

size

Es wird nur die Dateigröße in Bytes ausgegeben.

Beispiel 11.4. Beispiele

Ohne Optionen:                 <!-- File: eine Datei --> 
Dateiname:                     <!-- File: eine Datei; file --> 
Dateigröße I (human readable): <!-- File: eine Datei; hrsize --> 
Dateigröße II (Bytes):         <!-- File: eine Datei; size  -->
Beschreibung:                  <!-- File: eine Datei; description -->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.7. Einfache Text-Platzhalter (Platzhalter vom Typ "Text")

Platzhalter vom Typ "Text" ermöglichen die Eingabe einfacher, wenig formatierter Texte in einen ConPresso-Artikel.

Sie erzeugen bei der Artikeleingabe einfache Textfelder, so genannte Textareas. Erstellt oder bearbeitet ein redaktionell arbeitender Benutzer den Inhalt eines solchen Textfelds in einem Artikel, so steht ihm dabei nicht der ConPresso-WYSIWYG-Eitor zur Verfügung, der umfangreiche Formatierungen erlauben würde. Platzhalter vom Typ "Text" eignen sich daher besonders dazu, redaktionell arbeitenden Benutzern keine Möglichkeiten zu HTML-Formatierungen (z.B. fett, unterstreichen oder die Verwendung von Farben und Tabellen) zu geben. Damit ist durch die Verwendung einfacher Text-Platzhalter eine striktere Einhaltung der vorgegebenen Formatierungen und des Designs der Seite gewährleistet, als dies bei der Verwendung von Platzhaltern des Typs "HTML" der Fall wäre.

Beispiel 11.5. Ausgabe (HTML-Code) ohne Optionen

Text
    

HTML-Sonderzeichen werden bei der Ausgabe in Entities umgewandelt.

Ausgabe-Optionen

strip_tags

Vor der Umwandlung möglicherweise enthaltener HTML-Sonderzeichen (Entity-Umwandlung) werden HTML-Tags entfernt.

nl2br (Newline to Break)

Zeilenumbrüche werden nach der Umwandlung der HTML-Sonderzeichen in Zeilenumbrüche (<br />-Tags) umgewandelt.

Beispiel 11.6. Beispiele

Ohne Optionen:             <!-- Text: ein Text -->
HTML-Tags entfernt:        <!-- Text: ein Text; strip_tags -->
Zeilenumbrüche als <br />: <!-- Text: ein Text; nl2br -->
Kombiniert:                <!-- Text: ein Text; striptags; nl2br -->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.8. HTML-Platzhalter (Platzhalter vom Typ "HTML")

Platzhalter vom Typ "HTML" ermöglichen die Eingabe HTML-formatierter Texte in einen ConPresso-Artikel, sofern der verwendete Browser dafür ausgelegt ist.

HTML-Platzhalter erlauben bei der Artikelerstellung oder -bearbeitung die Benutzung des ConPresso-WYSIWYG-Editors, mit dem Inhalte wie mit einem Textverarbeitungprogramm bearbeitet werden können. Redaktionell arbeitende Benutzer haben über den WYSIWYG-Editor weitreichende Möglichkeiten Formatierungen in Texten vorzunehmen. So können beispielsweise Bilder, Tabellen oder Links in den Text eingebunden werden und die Textformatierung (fett, unterstrichen, Textfarbe, etc.) nach Belieben gewählt werden.

Über das Umschalten in den HTML-Modus kann bei der Artikelerstellung der HTML-Code auch direkt editiert werden.

Beispiel 11.7. Ausgabe (HTML-Code) ohne Optionen

Text mit <b>HTML-Code</b>
    

Ausgabe-Optionen

strip_tags

HTML-Tags werden vor der Ausgabe aus dem Text entfernt.

_htmlspecialchars

HTML-Sonderzeichen werden vor der Ausgabe in Entities umgewandelt.

Beispiel 11.8. Beispiele

Ohne Optionen:      <!-- HTML: HTML -->
HTML-Tags entfernt: <!-- HTML: HTML; strip_tags -->
HTML-Entities:      <!-- HTML: HTML; _htmlspecialchars -->
Kombiniert:         <!-- HTML: HTML; strip_tags; _htmlspecialchars -->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.9. Link-Platzhalter (Platzhalter vom Typ "URL")

Platzhalter vom Typ "URL" ermöglichen die Einbindung von Links in einen ConPresso-Artikel.

Beispiel 11.9. Ausgabe (HTML-Code) ohne Optionen

<a href="Linkziel" evtl. Target>Verweistext</a>
    

Im Verweistext werden HTML-Sonderzeichen durch Entities ersetzt.

Ausgabe-Optionen

strip_tags

HTML-Tags werden vor der Ersetzung der HTML-Sonderzeichen aus dem Verweistext entfernt.

starttag

Es wird nur der Starttag (<a href="URL (Linkziel)" target="evtl. Target">) ausgegeben.

url

Es wird nur die URL (Linkziel) ausgegeben (Entity-Umwandlung).

text

Es wird nur der Verweistext ausgegeben (Entity-Umwandlung).

target

Es wird nur das Target ausgegeben (Entity-Umwandlung).

Beispiel 11.10. Beispiele

Ohne Optionen:  <!-- URL: eine URL --> 
Nur Starttag:   <!-- URL: eine URL; starttag -->Anderer Text</a> 
URL:            <!-- URL: eine URL; url --> 
Verweistext:    <!-- URL: eine URL; text --> 
Nur das Target: <!-- URL: eine URL; target --> 
Ohne HTML-Code: <!-- URL: eine URL; strip_tags --> 

Sonderfälle (mit obigen Beispielen kombinierbar):

Zurück-Link:      <!-- URL: eine Zurueck-URL; back --> 
Zur Artikelseite: <!-- URL: eine Weiter-URL; more --> 
Zur Artikelseite (kombiniert mit starttag): 
                  <!-- URL: eine Weiter-URL; more; starttag -->anderer Text</a>
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.10. Value-Platzhalter

Value-Platzhalter werden von ConPresso zu jedem Artikel automatisch bereitgestellt. Sie unterscheiden sich hinsichtlich ihres Aufbaus nicht von anderen Platzhaltern, doch statt des sonst frei wählbaren Platzhalternamens sind bei Value-Platzhaltern definierte Werte anzugeben (Beispiel: <!-- Value: Author -->).

Value-Platzhalter können nur zur Ausgabe von Informationen, z.B. von Metadaten wie Titel, Autor, etc. benutzt werden. Eine direkte Eingabe von Inhalten bei der Artikelerstellung ist im Falle dieser Platzhalter also nicht möglich.

Auch Value-Platzhalter können mit Unterstützung des „Template-Editor“ in den Formatierungscode des Artikeltemplates eingefügt werden.

ConPresso kennt die folgenden Value-Platzhalter:

Value-Platzhalter Titel

Der Value-Platzhalter "title" dient der Ausgabe des Titels eines Artikels.

Beispiel 11.11. Ausgabe (HTML-Code) ohne Optionen

Titel
    

Ausgabe-Optionen
strip_tags

Vor der Umwandlung der Entities werden HTML-Tags aus dem Titel entfernt.

Beispiel 11.12. Beispiele

Titel:                  <!-- Value: title -->
Titel (ohne HTML-Tags): <!-- Value: title; strip_tags -->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Autor

Der Value-Platzhalter "author" gibt Daten zu dem Autor des Artikels aus.

Beispiel 11.13. Ausgabe (HTML-Code) ohne Optionen

%lt;a href="mailto:Autor-eMail">Autor-Name</a>
    

Ausgabe-Optionen
name

Es wird nur der Name des Autors ausgegeben.

email

Es wird nur die eMail-Adresse des Autors ausgegeben.

initials

Es werden nur die Initialen des Autors ausgegeben.

Beispiel 11.14. Beispiele

Autor:     <!-- Value: author --><br /> 
Autorname: <!-- Value: author; name --><br /> 
Autormail: <!-- Value: author; email --><br /> 
Initialen: <!-- Value: author; initials --><br />
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Zuletzt bearbeitet von

Der Value-Platzhalter "editor" gibt Daten zu dem letzten Bearbeiter des Artikels aus.

Beispiel 11.15. Ausgabe (HTML-Code) ohne Optionen

<a href="mailto:Autor-eMail">Zuletzt bearbeitet von</a>
    

Ausgabe-Optionen
name

Es wird nur der Name ausgegeben.

email

Es wird nur die eMail-Adresse ausgegeben.

initials

Es werden nur die Initialen ausgegeben.

Beispiel 11.16. Beispiele

Zuletzt bearbeitet von: <!-- Value: editor --><br /> 
Name:                   <!-- Value: editor; name --><br /> 
Mail:                   <!-- Value: editor; email --><br /> 
Initialen:              <!-- Value: editor; initials --><br />
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Publikationsdatum

Der Value-Platzhalter "pub_date" gibt das Publikationsdatum eines Artikels formatiert mit dem Datumsformat aus den Rubrikeinstellungen aus.

Beispiel 11.17. Ausgabe (HTML-Code) ohne Optionen

01.01.2006 11:30
    

Die Formatierung ist abhängig von den in den Rubrikeinstellungen gesetzten Einstellungen.

Ausgabe-Optionen
timestamp

Gibt das Publikationsdatum als UNIX-Timestamp aus.

format

Mit der Option "format" kann das Format der Datumsausgabe geändert werden. Möglich sind die Formatierungen, die in Anhang A, PHP-Datumsformatierung beschrieben werden.

Beispiel 11.18. Beispiele

Publikationsdatum:               <!-- Value: pub_date --><br /> 
Publikationsdatum:               <!-- Value: pub_date; timestamp --> (Unix-Timestamp)<br /> 
Publikationsdatum - Swatch-Time: <!-- Value: pub_date; format=B --> <br /> 
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Verfallsdatum

Der Value-Platzhalter "exp_date" gibt das Verfallsdatum eines Artikels formatiert mit dem Datumsformat aus den Rubrikeinstellungen aus.

Beispiel 11.19. Ausgabe (HTML-Code) ohne Optionen

02.02.2007 14:15
    

Die Formatierung ist abhängig von den in den Rubrikeinstellungen gesetzten Einstellungen.

Ausgabe-Optionen
timestamp

Gibt das Publikationsdatum als UNIX-Timestamp aus.

format

Mit der Option "format" kann das Format der Datumsausgabe geändert werden. Möglich sind die Formatierungen, die in Anhang A, PHP-Datumsformatierung beschrieben werden.

Beispiel 11.20. Beispiele

Verfallsdatum:               <!-- Value: exp_date --><br /> 
Verfallsdatum:               <!-- Value: exp_date; timestamp --> (Unix-Timestamp)<br /> 
Verfallsdatum - Swatch-Time: <!-- Value: exp_date; format=B --> <br /> 
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Artikelnummer

Der Value-Platzhalter "articlenr" gibt die Nummer eines Artikels aus, die automatisch und in der Erstellungsreihenfolge vergeben wird.

Beispiel 11.21. Ausgabe (HTML-Code) ohne Optionen

1
    

Beispiel 11.22. Beispiel

Artikelnummer: <!-- Value: articlenr --><br />
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Templatenummer

Der Value-Platzhalter "template" gibt die Templatenummer des Artikels aus, die automatisch und in der Erstellungsreihenfolge vergeben wird.

Beispiel 11.23. Ausgabe (HTML-Code) ohne Optionen

1
    

Beispiel 11.24. Beispiel

Templatemummer: <!-- Value: template --><br />
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Artikelindex

Der Value-Platzhalter "articleidx" gibt den Sortierungsindex eines Artikels aus.

Beispiel 11.25. Ausgabe (HTML-Code) ohne Optionen

1
    

Beispiel 11.26. Beispiel

Artikelindex: <!-- Value: articleidx --><br />
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

Value-Platzhalter Rubric

Der Value-Platzhalter "rubric" erlaubt es auf verschiedene Daten der dem Artikel zugeordneten Rubrik zuzugreifen.

Beispiel 11.27. Ausgabe (HTML-Code) ohne Optionen

<a href="../rubrikverzeichnis/index.php?rubric=rubrikname">Rubriktitel</a>
    

Ausgabe-Optionen
id

Es wird nur die ID der Rubrik ausgegeben.

directory

Es wird nur das Rubrikverzeichnis ausgegeben.

name

Es wird nur der Rubrikname ausgegeben.

title

Es wird nur der Rubriktitel ausgegeben.

strip_tags

Vor der Umwandlung der Entities werden HTML-Tags aus den einzelnen Elementen entfernt.

urlencode

Vor der Umwandlung der Entities werden die einzelnen Elementen so kodiert, dass sie als Parameter in einer URL verwendet werden koennen.

Beispiel 11.28. Beispiel

Die Rubrik des Artikels: <!-- VALUE: rubric; -->
Die ID der Rubrik des Artikels: <!-- VALUE: rubric; id; -->
Das Verzeichnis der Rubrik des Artikels: <!-- VALUE: rubric; directory; -->
Der Name der Rubrik des Artikels: <!-- VALUE: rubric; name; -->
Der Titel der Rubrik des Artikels: <!-- VALUE: rubric; title-->
    

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.

1.11. Bedingte Platzhalter (ifSet/ifNotSet)

Um Inhalte abhängig davon auszugeben, ob ein bestimmter Platzhalter in einem Artikel Daten enthält oder nicht, stehen in ConPresso die beiden folgenden Tag-Paare zur Verfügung.

  • <!-- ifSet: Name --> <!-- /ifSet -->

  • <!-- ifNotSet: Name --> <!-- /ifNotSet -->

"Name" steht hierbei für den Namen des Platzhalters, auf den sich der ifSet- bzw. der ifNotSet-Platzhalter bezieht.

Beispiel 11.29. Beispiele

<!-- ifSet: ein Text -->Oben wurde ein Text ausgegeben!<br /><!-- /ifSet -->
    
<!-- ifSet: Artikeltext  --><!-- URL: Weiter-Link; more --><!-- /ifSet -->
    

Diese Platzhalter arbeiten unabhängig davon, ob sie auf der Rubrik-Ausgabeseite oder der Artikel-Ausgabeseite Verwendung finden. Es ist also beispielsweise möglich (und auch sinnvoll!), das Erscheinen eines Weiter-Links auf der Rubrik-Ausgabeseite davon abhängig zu machen, ob ein bestimmter Inhalt (z.B. Text) auf der Artikel-Ausgabeseite angezeigt wird.

[Achtung]Achtung

Platzhalter für bedingte Ausgaben dürfen nicht geschachtelt werden.

Das bei der ConPresso-Installation angelegte Artikeltemplate "Platzhalter Demo" enthält alle Verwendungsmöglichkeiten von ConPresso-Platzhaltern.