Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 27. September 2012 18:09
- mikey
- hat von CMS/ms gehört
- Registriert: 27. September 2012
- Beiträge: 4
[GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Kurze Frage, hoffentlich kurze Antwort.
In einem benutzerdefiniertem Tag {dropdown} erstelle ich smarty code für das advanced content modul,
der PHP Quellcode sieht am ende so aus:
[== PHP ==]
$dropDown = '{content block="module_select" label="' . $dropDownName . '" block_type="dropdown" items="' . $string . '" values="' . $string . '"}';
Wenn ich da jetzt ein echo $dropDown reinhaue und {dropdown} in mein Template einfüge,
dann spuckt er mir an der Stelle den Smarty-Code ungeparsed aus.
Was muss ich tun damit Smarty den Code verarbeitet?
Google hat dazu nichts ausgespuckt.
Offline
#2 27. September 2012 18:29
- owr_web
- Server-Pate
- Registriert: 16. Dezember 2010
- Beiträge: 543
Re: [GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Der benutzerdefinierte Tag ist für php direkt und nicht für smarty.
Versuchs mal über den Global content block und erstell mit {assign} dort die gewünschte Variable aus Smarty
Offline
#3 27. September 2012 20:56
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Ich befürchte das wird Mikey nicht weiterbringen.
Das Modul AC verarbeitet - im Gegensatz zum Core - das Template im Backend nicht.
Es sucht nur nach der Zeichenkette {content ... }.
Siehe auch hier: http://www.cmsmadesimple.de/forum/viewtopic.php?id=934
Wo soll denn das Dropdown später angezeigt werden?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#4 29. September 2012 09:40
- mikey
- hat von CMS/ms gehört
- Registriert: 27. September 2012
- Beiträge: 4
Re: [GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Das Dropdown soll "ganz normal" unter Inhalt Bearbeiten im backend erscheinen.
Das ganze ist nötig geworden weil die Optionen nicht statisch hardgecodet werden sollen, sonder dynamisch durch ein kleines PHP-Script generiert werden sollen.
Offline
#5 29. September 2012 10:07
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Eigentlich muss Dein Plugin nur die Values und die Items als Text ausgeben, nicht den ganzen Tag. D.h., wenn Du Dein Plugin mit einem Parameter "output" versiehst, der die Werte "items" oder "values" haben kann, kannst Du mit ein und demselben Plugin sowohl Die Namen der Einträge als auch deren Werte ausgeben lassen. Dieses Plugin rufst Du dann im Seiten-Template als Wert für die Parameter "items" und "values" für einen Inhaltsblock vom Typ Dropdown auf.
Bsp.:
{content block="foo" block_type="dropdown" items=":::deinPlugin output='items':::" values=":::deinPlugin output='values':::" smarty="backend"}
Dann hast Du im Backend beim Bearbeiten von Seiten ein Dropdown mit den Werten Deines Plugins. Im Frontend wird Dir nur der ausgewähte Wert ausgegeben. Was Du damit machst, kannst Du dann selbst entscheiden. Einer Variablen zuweisen und dann prüfen oder direkt ausgeben oder einem Modul/Plugin als Wert übergeben etc.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 30. September 2012 16:17
- mikey
- hat von CMS/ms gehört
- Registriert: 27. September 2012
- Beiträge: 4
Re: [GELÖST] Smarty in Benutzerdefinierten Tags parsen?
Das war der richtige Hinweis, danke dafür!
Habe meinen Code in eine Funktion gepackt und gemäß Namenskonventionen in den plugins-Ordner hochgeladen.
Mit folgendem Code im Template geht es jetzt:
[== Template ==]
{content block="module_select" label="Dropdown" block_type="dropdown" items=":::myPlugin:::" values=":::myPlugin:::" smarty="backend"}
*block-Attribut mit Inhalt module_select sonst Fehler
Beitrag geändert von mikey (30. September 2012 16:19)
Offline
Seiten: 1