Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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! smile

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