Hallo, und wieder eine unmögliche Frage von mir! Wie kann ich eine Variable die in PHP ist in Smarty verfügbar machen?
Ich habe zu einem Smartyblock eine eigenes PHP hinzugefügt und meine Variable ist zum Beispiel: $Test Nun möchte ich einfach den Inhalt an eine Smarty Variable übergeben. So dass ich diese dann im Smarty anzeigen kann. mal Vereinfacht dargestellt so: Code: {block name="error_message_form"} {php} $Test = "HALLO"; {/php} {$Variable}{/block}
Den php-Tag sollte man möglichst nicht nutzen, wir werden ihn vermutlich auch nicht mehr lange leben lassen. Smarty selbst hat ihn schon lange abgeschafft und wir hatten ihn aus Kompatibilitätsgründen noch drin gelassen. Du kannst Smarty-Variablen mittels assign erzeugen. Es ist halt die Frage, was du an PHP-Logik brauchst, um deinen Variablenwert zu erzeugen. Da müsstest du spezifischer werden. Code: {assign var="my_text" value="HALLO"} <p>{$my_text}</p>
Code: {block name="error_message_form"} {php} $Test = "HALLO";<------------------------ {/php} {$Variable} {assign var="my_text" value=$Test}<------------ wie ist die richtige Schreibweise <p>{$my_text}</p> {/block}
Gar nicht. Mein Beispiel sollte zeigen, wie du ohne PHP trotzdem den Wert HALLO in eine Smarty-Variable bekommst. Du bekommst eine PHP-Variable so nicht in eine Smarty-Variable. Wenn du konkretisieren würdest, was du vor hast, könnte man dir Wege aufzeigen, wie das umzusetzen ist. PHP hat in Smarty-Templates nichts zu suchen, daher wurde Smarty ja erfunden, um PHP vom HTML zu trennen.
Das hab ich doch! Ich möchte eine PHP Variable in Smarty verfügbar machen. Einfach so wie es in #5 dargestellt ist. Ich kann ein wenig PHP aber noch weniger Smarty und kämpfe mich so durch.
Nein, hast Du nicht. Das Gelbe ist ein Smarty-Block, der in einer html-Datei sein sollte, das rote darin ist PHP, der nicht in eine html-Datei gehört.
@tho_os Die PHP Funktionen im Smarty sind veraltet und mit neuen Smarty Versionen nicht mehr verfügbar, es wird davon abgeraten diese weiterhin zu nutzen: (Link nur für registrierte Nutzer sichtbar.)
Das ist die alte Dokumentation von Smarty 2. In Smarty 3 wurde die Funktionalität entfernt und mittlerweile ist Smarty 4 im Gambio Shop. Wenn du HALLO in einer Smarty-Variablen haben willst, braucht du kein PHP. Dann kannst du es so machen, wie in meinem Beispiel.
Ok, dann ein anderer Ansatz. Wie kann ich einen Zähler setzten der bei jeden laden der Seite 1 hochzählt und bei 5 wieder von vorne bei 1 beginnt?
Bei jedem Laden der Seite also auch bei Reload / F5. Der Zähler muss auch nicht gespeichert werden. Einfach nur hochzählen und bei 5 wieder von vorne beginnen. Ich glaube nicht dass es vorkommen wird dass mehrere Besucher gleichzeitig auf der betreffenden Seite sein werden.