Seite 1 von 1

Via Smarty Editorfelder vorbelegen (placeholder)?

Verfasst: Di 23. Aug 2016, 14:38
von Horst1234
Hallo,
ich hab noch ne frage zu Smarty: könnte man im Smarty-Template ein Textfeld so erweitern, dass es in der Editoransicht (abgegraut) vorbelegt ist und dieser Text dann verschwindet, sobald man das Editorfeld aktiviert (wie das placeholder-Atrribut bei input)? Etwa in der Art {$text|placeholder:"Hier keine h1-Überschriften verwenden!"}.
Gruß aus Bremen,
Horst

Re: Via Smarty Editorfelder vorbelegen (placeholder)?

Verfasst: Di 23. Aug 2016, 17:16
von rethus
Verstehe nicht ganz was du meinst. Kannst doch den placeholder ganz normal setzen und mit Smarty befüllen.

Code: Alles auswählen

<input type="text" name="fname" placeholder="{$PLACEHOLDER}">

Re: Via Smarty Editorfelder vorbelegen (placeholder)?

Verfasst: Di 23. Aug 2016, 19:00
von Horst1234
Hallo Rethus,
ja, man sollte konkreter in seinen Fragen bleiben!
Ich möchte z.B in einem einfachen Textmodul die Variable {$text} so erweitern, das ich dort einen Platzhaltertext eingeben kann und
der dann Redakteur später in der Editoransicht eines Artikels diesen Platzhaltertext im Textfeld lesen kann.
So könnte ich Redaktionsanweisungen für jedes Text-Feld schon sehr einfach im Smarty-Template anlegen, so wie ich ja auch {$text}
strip_tags oder truncate:... erweitern kann. Bei smarty.com oder stack-overflow hab ich sowas nicht gefunden - geht wohl auch einfach nicht, oder?
Gruß aus Bremen,
Horst

Re: Via Smarty Editorfelder vorbelegen (placeholder)?

Verfasst: Di 23. Aug 2016, 20:39
von rethus
Ich denke du sprichst hier von Äpfel und Frikadellen.
Eine Smarty-Variable kann durch eine funktion wie strip_tags gepiped werden, weil es eine php-funktion ist. Der Placeholder ist ein HTML-Parameter.

Ehrlich gesagt hast du dich (für mich) immer noch nicht verständlich ausgedrückt. Aber wenn ich mir meinen Teil dabei reime, denke ich, dass du den Placeholder als so eine Art Infotext für den Redakteur haben möchtest, ABER letztendlich nicht auf der Ausgabeseite, wo der Kunde diesen sehen könnte.

Wenn es das ist was du willst, dann setze den Placeholder so wie ich Ihn zuvor beschrieben habe, und packe Ihn in eine Smarty-If-Abfrage.

{if $BACKEND} placeholder="{$MYPLACEHOLDER} "{/if}.

In deinem Modul setzt du dann einfach die Abfrage, ob das Modul nun im Backend ausgeführt wird, oder nicht:
<code=php>
$tpl->assign('isBackendEditMode', cRegistry::isBackendEditMode());
</code>

Aber mal als Tipp, ich würde da eher zu schönen Fragezeichen-Icons mit Div-Layern greifen, oder zum klassischen Tooltip. Da bekommt man mehr Infos unter, und die sind auch noch sichtbar, wenn man angefangen hat etwas ins Feld einzutragen.