PHP variable in Smarty nutzbar machen

Thema wurde von tho_os, 17. Februar 2023 erstellt.

  1. tho_os
    tho_os Erfahrener Benutzer
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    Welche Variable aus welcher PHP soll in welcher html-Datei / Seite wo ausgegeben werden?
     
  3. tho_os
    tho_os Erfahrener Benutzer
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    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
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    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
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    Wenn PHP nichts darin zu suchen hat was ist dann das? Unbenannt-1.jpg
     
  10. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @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.)
     
  11. Moritz (Gambio)
    Moritz (Gambio) Administrator
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    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
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.694
    Danke vergeben:
    903
    Soll der Zähler nur einen einzigen Besucher oder alle Besucher beim Hochzählen berücksichtigen?
     
  14. tho_os
    tho_os Erfahrener Benutzer
    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    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.