So setzen Sie einen Platzhalter im Text-Feld ein, der bei der Ausgabe gefiltert wird
Veröffentlichungsdatum: 28. Juli 2010
Änderungsdatum: 24. November 2011
text platzhalter filter anker bild link
Dieser Artikel beschreibt, wie Sie innerhalb eines Text-Feldes Platzhalter verwenden, die lediglich unterstützend in der Bearbeitung sein sollen und in der Ausgabe der Präsenz gefiltert werden.
Weblication® bietet aufgrund der XSL-Technologie bei der Transformation von Seiten die Möglichkeit, in der Ausgabe diverse Inhalte zu filtern. Dies können Sie z.B. dann einsetzen, wenn der Redakteur über das Textfeld Anker setzen soll, die meist ohne Linktext definiert sein sollen.
In der Bearbeitung hätte ein Redakteur eigentlich das Problem, dass er solch einen gesetzten Anker im nachhinein nicht mehr pflegen kann, weil dieser aufgrund des fehlenden Linktextes im WYSIWYG-Feld auch nicht erscheint.
Dieses Problem können Sie z.B. durch Einsatz von Platzhaltern lösen. Standardmässig filtert Weblication® in der Ausgabe einen mit eckigen Klammern definierten Platzhalter mit dem Inhaltstext "wToDeleteBeforeOutput". Dies könnte bei eigenen Platzhaltern z.B. wie folgt aussehen:
Beispiel: Auszug aus der globalen Pre-Datei eines Projektes (z.B.: /deGlobal/wGlobal/scripts/pre.php)
// ...
// Beispiel: eigener Platzhalter für Text:
$preResult = str_replace('[Ankerplatzhalter]', '', $preResult);
// Beispiel: eigener Platzhalter für Bilder:
$preResult = preg_replace("/\[IMG\.(\w+)(?:\|([^\]]+))?\]/", "<img alt="$2" src="/deAssets/img/"."$1".".jpg" />", $preResult);
// ...Auf diese Weise kann der Redakteur im Textfeld den Platzhalter als "Anfasser" verwenden und den Anker pflegen. In der Ausgabe wird dieser Platzhalter dann ersatzlos ersetzt, womit ein "versteckter" Anker umgesetzt wird. Dies wird nachfolgend beispielhaft angeführt.
Beispiel: Auszug aus dem Quelltext eines Text-Feldes im Editor
<a name="top" >[Ankerplatzhalter]</a>
Beim Einsatz des Standard-Platzhalters sieht dies in einem WYSIWYG-Feld z.B. wie im unten ersichtlichen Screenshot aus. In diesem Beispiel wurde ein weiterer Platzhalter verwendet (Inhaltstext: "IMG.uploadbutton"), welcher über die pre.php z.B. durch ein komplettes IMG-Tag ersetzt werden kann, das die entsprechende Bilddatei in der Ausgabe einliest.
So realisieren Sie bei z.B. häufig vorkommenden Bildern eine schnelle Möglichkeit der Pflege. Der Redakteur muss lediglich den Dateinamen des Bildes kennen. "uploadbutton" definiert somit die Bilddatei "uploadbutton.jpg" im /deAssets/img/ Verzeichnis. Dies ist z.B. bei Dokumentationen sehr nützlich.
- Wie kann ich in Weblication® in einem Text-Feld Platzhalter verwenden, die nur bei der Bearbeitung sichtbar sind?
- Sie können Platzhalter nutzen, die in der Ausgabe durch die XSL-Transformation gefiltert werden. So kann der Redakteur im WYSIWYG-Bereich Anker oder andere Elemente pflegen, während diese Platzhalter in der endgültigen Präsenz ersatzlos entfernt bzw. ersetzt werden.
- Wofür werden Platzhalter in Weblication® typischerweise eingesetzt?
- Ein typischer Anwendungsfall ist, wenn Redakteure im Textfeld Anker setzen sollen, diese in der Ausgabe jedoch keinen (oder nur einen „versteckten“) Linktext haben sollen. Platzhalter helfen dabei, dass der Redakteur den Anker im Editor pflegen kann, obwohl der Anker im WYSIWYG-Feld ohne Linktext sonst nicht sichtbar bzw. nicht wartbar wäre.
- Welcher Standard-Platzhalter wird in Weblication® in der Ausgabe gefiltert?
- Standardmäßig filtert Weblication® in der Ausgabe einen mit eckigen Klammern definierten Platzhalter mit dem Inhaltstext "wToDeleteBeforeOutput".
- Wie kann ich einen eigenen Platzhalter definieren, der vor der Ausgabe entfernt wird?
- Indem Sie in der globalen Pre-Datei des Projekts (z.B. /deGlobal/wGlobal/scripts/pre.php) den Platzhalter per String-Ersetzung entfernen. Beispiel: <pre><code class="codeBlock" style="color: #000000">php // Beispiel: eigener Platzhalter für Text: $preResult = str_replace('[Ankerplatzhalter]', '', $preResult); </code></pre>
- Wie kann ich Platzhalter auch für Bilder in der Ausgabe ersetzen?
- Sie können in der globalen Pre-Datei Bild-Platzhalter per regulärem Ausdruck in ein vollständiges IMG-Tag umwandeln. Beispiel: <pre><code class="codeBlock" style="color: #000000">php // Beispiel: eigener Platzhalter für Bilder: $preResult = preg_replace( "/\[IMG\.(\w+)(?:\|([^\]]+))?\]/", "<img alt=\"$2\" src=\"/deAssets/img/\"."$1".".jpg\" />", $preResult ); </code></pre>
- Wie sieht die Verwendung eines Platzhalters als Anfasser im Editor (Textfeld-Quelltext) aus?
- Im Textfeld kann der Redakteur den Platzhalter als „Anfasser“ verwenden. Beispiel: <pre><code class="codeBlock" style="color: #000000">html <a name="top" >[Ankerplatzhalter]</a> </code></pre> Der Platzhalter wird dann vor der Ausgabe entfernt, wodurch der Anker „versteckt“ umgesetzt wird.
- Wie kann ich häufige Bilder schnell pflegen, wenn ich nur den Dateinamen kenne?
- Über einen Bild-Platzhalter können Sie die Bilddatei automatisch aus einem festen Verzeichnis zusammensetzen. Im Artikel wird als Beispiel der Platzhalter „*uploadbutton*“ genannt, der dann „*uploadbutton.jpg*“ im Verzeichnis */deAssets/img/* nutzt. Dadurch muss der Redakteur nur den Dateinamen kennen.