PHP variable in Smarty nutzbar machen

Thema wurde von tho_os, 17. Februar 2023 erstellt.

  1. tho_os

    tho_os Erfahrener Benutzer

    Hallo,
    und wieder eine unmögliche Frage von mir!


    Wie kann ich eine Variable die in PHP ist in Smarty verfügbar machen?
     
  2. barbara

    barbara G-WARD 2014-2020

    Welche Variable aus welcher PHP soll in welcher html-Datei / Seite wo ausgegeben werden?
     
  3. tho_os

    tho_os Erfahrener Benutzer

    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}
    
     
  4. Moritz (Gambio)

    Moritz (Gambio) Administrator

    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>
     
  5. tho_os

    tho_os Erfahrener Benutzer

    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}
    
     
  6. Moritz (Gambio)

    Moritz (Gambio) Administrator

    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.
     
  7. tho_os

    tho_os Erfahrener Benutzer

    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.
     
  8. barbara

    barbara G-WARD 2014-2020

    Nein, hast Du nicht.

    upload_2023-2-17_19-33-29.png

    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.
     
  9. tho_os

    tho_os Erfahrener Benutzer

    Wenn PHP nichts darin zu suchen hat was ist dann das? Unbenannt-1.jpg
     
  10. Anonymous

    Anonymous Administrator Mitarbeiter

  11. Moritz (Gambio)

    Moritz (Gambio) Administrator

    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.
     
  12. tho_os

    tho_os Erfahrener Benutzer

    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?
     
  13. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Soll der Zähler nur einen einzigen Besucher oder alle Besucher beim Hochzählen berücksichtigen?
     
  14. tho_os

    tho_os Erfahrener Benutzer

    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.