{PHP} Tags funktionieren in 2.4 nicht mehr. Alternative?

Thema wurde von junchen, 7. Oktober 2015 erstellt.

  1. junchen

    junchen Neues Mitglied

    Registriert seit:
    28. Februar 2015
    Beiträge:
    4
    Danke erhalten:
    0
    #1 junchen, 7. Oktober 2015
    Zuletzt bearbeitet: 7. Oktober 2015
    Hallo,

    wie ich leider feststellen musste funktionieren die PHP-Tags seit Version 2.4 (fast) nicht mehr. Teilweise geht es noch, aber wenn man z.B. eine SMARTY-Variable assigned

    HTML:
    {assign var=test value=$ORDER_NUMBER}
    kann man sie im PHP nicht mehr abrufen

    HTML:
    {php}
    		$order = $this->get_template_vars('test');
    {/php}
    weil es sonst eine Fehlermeldung à la FATAL ERROR(1): "Using $this when not in object context"
    gibt.


    Nun haben wir es teilweise, zumindest in der product_listing und der product_info Datei geschafft unsere PHP Tags in eine externe Datei (xtc_get_products_stock.inc.php) auszulagern und das ergebnis dann per Smarty auf die Seite zu laden.

    Jetzt wäre meine Frage ob jemand eine PHP Datei kennt die tatsächlich auf allen Seiten eingebunden wird, eine globale Datei? Auf die Funktionen aus der xtc_get_products_stock.inc.php kann man nämlich nur aus den beiden oben genannten Dateien zugreifen, aber ich bruache eine Datei auf die ich von fast allen Shopseiten aus zugreifen kann um dort meine eigenen Funktionen abzurufen.
     
  2. Torben Wark

    Torben Wark Gambio GmbH

    Registriert seit:
    15. Juli 2014
    Beiträge:
    2.581
    Danke erhalten:
    1.178
    Danke vergeben:
    399
    Hallo junichen,

    seit Smarty 3 funktioniert das mit den php-Tags ein bisschen anders als noch unter Smarty 2. Ein $this funktioniert an der Stelle da nicht mehr. Versuch mal folgendes:

    PHP:
    {php}     $order $this->get_template_vars('test'); {/php}
    umbauen zu:

    PHP:
    {php}     $order $template->get_template_vars('test'); {/php}
    LG Torben
     
  3. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Smarty will doch sogar ganz weg von den PHP Tags, oder?
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Vor 20 Jahren wollte man auch von der Programmiersprache COBOL weg.

    Aber die erfreut sich immer noch guter Gesundheit....

    Ich hasse es wenn Programmierer mir vorschreiben wollen, wie ich zu arbeiten habe.

    Ein beherztes {php} zur rechten Zeit spart vie Arbeit.
     
  5. Torben Wark

    Torben Wark Gambio GmbH

    Registriert seit:
    15. Juli 2014
    Beiträge:
    2.581
    Danke erhalten:
    1.178
    Danke vergeben:
    399
    Ja das ist richtig die php-Tags sind laut Smarty-Entwickler deprecated. D.h. sie werden in Zukunft entfernt werden. Wann das passiert kann ich allerdings nicht sagen.

    Es ist schon richtig, dass ein php-Tag arbeit ersparen kann. Allerdings widerspricht dieser dem Gedanken, dass man PHP-Logik von Template trennt, um so eine bessere Wartbarkeit von PHP als auch Template zu erreichen. Dinge, die per php-Tag auseführt werden, können auch per Overload/Modifikation der PHP-Logik oder als ein Smarty-Plugin/Modifier erreicht werden. Das garantiert dann die Trennung von PHP-Logik und Template und sollte im Allgemeinen für eine bessere Wartbarkeit sorgen.

    LG Torben