Hallo, ich habe eine für Viele wahrscheinlich realativ simple Frage. Ich bin einigermaßen fit mit PHP allerdings habe ich nie mit Klassen gearbeitet. Bisher habe ich PHP Skripte einfach mit include_php file="{$tpl_path}usermod/..."} direkt in Smarty geladen. Das ist nach einem Update ja nicht mehr möglich. Ich bräuchte nun mal eine ganz allgemeine Anleitung in möglichst einfachen Worten, wie ich eine Variable mit PHP erzeuge, die ich in Smarty anzeigen kann. Als ganz einfaches Beispiel: <?php $name = "Tom"; $html = "Hallo " .$name; ?> Wie kann ich nun die Variable $html in einem vorhandenen Smarty Block verfügbar machen, so daß letztlich im Frontend "Hallo Tom" angezeigt wird? Also wie genau lautet die Klasse? Wo speichere ich die hin? Viele Grüße, Kostja
Hallo Kostja, Du musst uns mitteilen, wo die Variable zur Verfügung gestellt werden soll, damit wir die sagen können, welche Klasse Du gegebenenfalls überladen kannst. Ist das eine Variable aus deinem Werk oder eine hauseigene von Gambio?
Ich möchte die Variable z.B. in einem neuen Smarty Block auf auf der content.html darstellen. Es handelt sich um eine eigene php Anwendung, die ich einbinden möchte, bzw. den erzeugten html code. Wie gesagt war das kleine php nur als Beispiel gedacht um eine Grundlage für eine Schritt für Schritt Anleitung zu geben. Ich hatte mehrere eigene php Scripte in verschiedene Seiten geladen, hauptsächlich aber in die Content Seite und Produkt Seite. Ich denke, ich muss also eigene Klassen erstellen?
Nachdem ich auch festgestellt habe, das php in html nicht mehr geht, arbeite ich dafür mit SmartyPlugins. z.B. GXModules/meins/shop/SmartyPlugins/function.addHallo.php mit folgendem Inhalt: PHP: <?phpfunction smarty_function_addHallo ($params, &$smarty){$name = "Tom";$html = "Hallo " .$name;$smarty->assign('ADD_HALLO', $html);}?> dann unter GXModules/meins/shop/themes/all/beispiel.html die Funktion eingefügt: HTML: {block name="kleines_beispiel"} {addHallo} {$ADD_HALLO} {/block} Das mache ich auch mit vielen anderen Funktionen.
Vielen Dank für dein Beipiel. Also übetragen auf mein kleines Beispiel wäre das dann im Prinzip so: <?php $name = "Tom"; $html = "Hallo " .$name; $smarty->assign('ADD_HALLO', $html); ?> und der Smarty Block wäre dann z.B.: {block name="kleines_beispiel"} {$ADD_HALLO} {/block} richtig?
Vielen Dank für den Hinweis. Ich kenne den Bereich, ist auch sehr nützlich. Da fehlt mir aber eben so ein ganz simples konkretes Beispiel. Ich hab da leider mein Anliegen sehr einfach erklärt nicht gefunden/verstanden...
<?php function smarty_function_addHallo ($params, &$smarty) { $name = "Tom"; $html = "Hallo " .$name; $smarty->assign('ADD_HALLO', $html); } ?> Die Datei muss auch den richtigen Namen haben function.addHallo.php und der Smarty Block wäre dann z.B.: {block name="kleines_beispiel"} {addHallo} {$ADD_HALLO} {/block} So mal aus dem Handgelenk geschrieben wäre das richtiger
Hallo Gerd, erstmal vielen Dank für deine Hilfe. Ich hab das mal genauso getestet. Leider funktioniert das so nicht? Fehler: Syntax error in template "get_usermod:get_usermod: ... "{addHallo}" unknown tag 'addHallo'
Hab den Fehler gerade selbst gefunden. Der richtige Name ist function.addHallo.php Du hattest das versehentlich mit "k" geschrieben und ich habs genauso rauskopiert... Das funtioniert jetzt und so werde ich auch zum Ziel kommen. Mich würde aber auch interssieren, wie man das auf Basis von Klassen löst. Kann jemand helfen?