Einsatz von Platzhaltern für Textfelder

Nutzbar ab: Version

Dieser Artikel beschreibt, wie Sie Platzhalter für WYSIWYG-Felder einsetzen, die in der Ausgabe durch entsprechende Werte ersetzt werden.

Ab der Version 005.067.013.000 können Sie den Redakteuren in der Bearbeitung eine Auswahl an Platzhalter bereitstellen, die beim Aufruf der Seite durch entsprechende Werte ersetzt wird. Dies kennen Sie z.B. von den Newsletter Platzhaltern, die eine persönliche Anrede, etc. beim Newsletterversand ermöglichen.

Nachfolgend ein Auszug von Einsatzmöglichkeiten von Platzhalter:

  • Ausgabe der aktuellen Uhrzeit bzw. Datum (siehe Beispiel unten)
  • Ausgabe von Bildern (Platzhalter [!--IMG.download--] wird z.B. durch ein IMG-Tag ersetzt)
  • Ausgabe von häufig genutzten Links (z.B. Startseite, ...)
  • etc.

Das folgende Beispiel zeigt Ihnen die Umsetzung zur Ausgabe der aktuellen Uhrzeit.
Die Platzhalterdatei definiert die zur Auswahl stehenden Platzhalter und deren Benennung. Der Wert des value-Attributes steht für den Namen des Platzhalters (z.B.: value="currentTime" definiert den Platzhalter [!--currentTime--] ). Das name-Attribut definiert die sprachabhängige Benennung des Platzhalters für die Auswahlbox in der WYSIWYG-Leiste. Z.B.: de:name="Aktuelle Uhrzeit" gibt einem Redakteur mit deutscher Benutzersprache in der Auswahlbox den Text "Aktuelle Uhrzeit" aus (siehe Beispiel unten).
Standardmässig werden die Platzhaltertexte mit eckigen Klammern umschlossen ([!--PLATZHALTERTEXT--]). Über das Attribut placeholder können Sie alternativ auch ohne umschließende eckige Klammern die Platzhalter einfügen (siehe Beispiel unten).

Beispiel: Inhalt der Platzhalterdatei /wGlobalProject/wGlobal/layout/editor/wysiwyg/placeholdersToInsert.wEditorStyles.php

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<wEditorStyles xmlns:de="http://weblication.de/5.0/lang/de" xmlns:en="http://weblication.de/5.0/lang/en" xmlns:fr="http://weblication.de/5.0/lang/fr" xmlns:wsl="http://weblication.de/5.0/wsl" version="5.0">
  <placeholderToInsert de:name="Aktuelle Uhrzeit" en:name="Current Time" value="currentTime"/>
  <placeholderToInsert de:name="Weblication® CMS" en:name="Weblication® CMS" value="weblication-cms-reg" placeholder="###weblication-cms-reg###" />
</wEditorStyles>

Ein Redakteur nutzt die Platzhalter, indem er an der gewünschten Stelle des Textfeldes (WYSIWYG) den Cursor setzt und danach den gewünschten Platzhalter über die Auswahlbox auswählt. Somit wird der Platzhalter im Text gesetzt.

Dateibearbeitung zur WYSIWYG-Leiste mit Auswahlbox für Platzhalter

Nachdem die Seite gespeichert wurde, kann der entsprechende Platzhalter während der Transformation der Seite durch einen entsprechenden Wert ersetzt werden. Dies steuern Sie über die globale pre.php Ihres Projektes.

Beispiel: Auszug aus der Pre-Datei /wGlobalProject/wGlobal/scripts/pre.php zu Platzhaltern

// ...
// Das Umschreiben des Platzhalters definieren Sie in der pre.php
// bevor die Seite ausgegeben wird:
$preResult = preg_replace("/\[!--currentTime--]/", date('H:m').' Uhr', $preResult);
// ...
    // Hier wird die Seite ausgegeben          
    print $preResult; 
// ...
FAQs
Ab welcher Version kann ich in WYSIWYG-Feldern Platzhalter auswählen lassen?
Ab der Version 005.067.013.000 können Redakteure in der Bearbeitung eine Auswahl an Platzhaltern erhalten, die beim Aufruf der Seite durch entsprechende Werte ersetzt werden.
Wozu dienen Platzhalter für WYSIWYG-Felder in der Ausgabe?
Platzhalter werden im WYSIWYG-Editor eingefügt und anschließend bei der Seitenausgabe automatisch durch passende Werte ersetzt (z. B. Uhrzeit, Datum oder Bilder).
Welche Einsatzmöglichkeiten gibt es für Platzhalter?
Beispiele sind: - Ausgabe der aktuellen Uhrzeit bzw. des Datums - Ausgabe von Bildern (z. B. wird der Platzhalter <code class="codeInline">[!--IMG.download--]</code> durch ein <code class="codeInline">IMG</code>-Tag ersetzt) - Ausgabe häufig genutzter Links (z. B. Startseite) - weitere platzhalterbasierte Ausgaben
Wie definiere ich die verfügbaren Platzhalter in der Platzhalterdatei?
In der Platzhalterdatei werden Platzhalter mit <code class="codeInline"><placeholderToInsert></code> definiert. Der <code class="codeInline">value</code>-Wert legt den Platzhalternamen fest (z. B. <code class="codeInline">value="currentTime"</code> erzeugt den Platzhalter <code class="codeInline">[!--currentTime--]</code>). Zusätzlich definiert das <code class="codeInline">name</code>-Attribut die sprachabhängige Bezeichnung für die Auswahlbox.
Wie funktioniert die sprachabhängige Benennung eines Platzhalters?
Über sprachspezifische Attribute wie <code class="codeInline">de:name</code> (Deutsch), <code class="codeInline">en:name</code> (Englisch) oder <code class="codeInline">fr:name</code> (Französisch). Beispiel: <code class="codeInline">de:name="Aktuelle Uhrzeit"</code> sorgt dafür, dass Redakteuren mit deutscher Sprache in der Auswahlbox der Text „Aktuelle Uhrzeit“ angezeigt wird.
Wie werden Platzhalter standardmäßig im Text eingefügt?
Standardmäßig werden Platzhaltertexte in eckigen Klammern mit einem Prefix/Suffix umschlossen, z. B. <code class="codeInline">[!--PLATZHALTERTEXT--]</code>. Der Redakteur wählt den Platzhalter in der Auswahlbox aus, woraufhin dieser in das Textfeld gesetzt wird.
Wie kann ich Platzhalter ohne eckige Klammern einfügen?
Mit dem Attribut <code class="codeInline">placeholder</code> im <code class="codeInline"><placeholderToInsert></code>-Eintrag. Damit können Sie den Platzhalter alternativ ohne die Standardumschließung durch eckige Klammern einfügen (z. B. <code class="codeInline">placeholder="###weblication-cms-reg###"</code>).
Wie nutzt ein Redakteur die Platzhalter im WYSIWYG-Editor?
Der Redakteur setzt den Cursor an die gewünschte Stelle im Textfeld (WYSIWYG) und wählt danach den gewünschten Platzhalter über die Auswahlbox aus. Der Platzhalter wird anschließend in den Text gesetzt.
Wie werden Platzhalter nach dem Speichern in der Ausgabe ersetzt?
Beim Seitenaufruf werden die Platzhalter während der Transformation durch passende Werte ersetzt. Diese Umwandlung steuern Sie über die globale <code class="codeInline">pre.php</code> Ihres Projekts.
Wie kann ich die Ausgabe des Platzhalters „currentTime“ steuern?
Über ein <code class="codeInline">preg_replace</code> in der <code class="codeInline">pre.php</code>, bevor die Seite ausgegeben wird. Beispiel-Idee: Ersetzen von <code class="codeInline">[!--currentTime--]</code> durch den gewünschten Datums-/Uhrzeit-String mittels PHP (z. B. <code class="codeInline">date('H:m').' Uhr'</code>).