Montag, 7. April 2008 Druck-Ansicht
Manchmal braucht man im Shop abgekürzte Texte - Für solche Zwecke ist der Smarty-Modifier “truncate” geeignet. Eine detaillierte Beschreibung ist direkt auf der » Smarty-Website zu finden.
Je nach Input kann man damit aber auch ein komplettes Layout zerschießen. Was ein nicht-geschlossenes <div> oder gar <table> oder Ähnliches “anrichten” kann, braucht vermutlich kaum weiter erläutert zu werden.
Zum Ausprobieren kann man einfach einmal Folgendes in eine Template-Datei schreiben:
{php}
$this->assign('Dings','<b><i>Das ist ein Test-String</i></b>.');
{/php}
{$Dings|truncate:20}
Ausgegeben wird dann ganz brav Folgendes …
<b><i>Das ist ein...
… und weil weder <b> noch <i> geschlossen wird, erscheint so ziemlich alles, was im Quelltext danach auftaucht, in freundlichem FettKursiv - was meistens reichlich doof aussieht.
Sanft untertrieben.
Das Problem ist bekannt, eine erste Lösung gibt’s bereits: Der Modifier » CloseTags kann auf der Smarty-Website heruntergeladen werden.
Diese Version arbeitet jedoch nicht zuverlässig, Tags wie z.B. <del> o.ä. werden nicht erkannt, ebenso reagiert der Modifier nicht auf HTML-Tags in Großbuchstaben (okay, macht “man” ja nicht, taucht aber bei einigen Text-Importen dann und wann mal auf.)
Ich habe den Modifier daher ein bisschen überarbeitet, so dass (hoffentlich) alle Tags erkannt und in der umgekehrten Reihenfolge wieder geschlossen werden.
Beispiel:
{php}
$this->assign('TestA','<del>Das ist ein Test-String</del>.');
$this->assign('TestB','<B><I>Das ist ein Test-String</I></B>.');
{/php}
{$TestA|truncate:20|CloseTags}
{$TestB|truncate:20|CloseTags}
HTML-Ausgabe:
<del>Das ist ein...</del>
<B><I>Das ist ein...</I></B>
Download
» modifier_close_tags_v2.zip (Version 2.0, März 2007)
Kurzanleitung
Bookmarks, Feed und Links
Wenn Ihnen dieser Beitrag geholfen hat ...
Beiträge zu ähnlichen Themen:
11 Antworten zu Truncate: Wenn HTML-Code zerschnitten wird …
Kommentar schreiben