Wohin sind die smarty template vars verschwunden???

Thema wurde von ff-webdesigner, 2. März 2016 erstellt.

  1. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    244
    Danke erhalten:
    25
    Danke vergeben:
    29
    Seit irgendeinem update nach version 2.2 gibt es auf einmal keinerlei smarty template vars. früher lieferte

    PHP:
    print_r ($this->get_template_vars());
    sämtliche smarty template variablen.

    analog in smarty lieferte z.b.

    $smarty.session.customers_status.customers_status_id

    die id der kundengruppe. jetzt ist nicht mehr abrufbar, auf keine mir bekannte weise. Liebe Gambios! Das sind für das Templateing essentiell wichtige Techniken. Geht das nicht, wird Gambio absolut unmodifizierbar.

    Wie komme ich jetzt an die Template Variablen? {debug} bringt mir nichts, auch hier wurden anscheinend massig smarty variablen gelöscht mit einem der letzten updates.
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    33.744
    Danke erhalten:
    10.498
    Danke vergeben:
    1.500
    Das liegt vermutlich daran, dass Gambio auf Smarty 3 umgestellt hat.
     
  3. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.539
    Danke vergeben:
    908
    Ort:
    Bremen
    Bitte auf das richtige Forum achten - ich deinen Betrag mal verschoben.
     
  4. Moritz (Gambio)

    Moritz (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    5.391
    Danke erhalten:
    2.429
    Danke vergeben:
    783
    Wir haben nichts weggelöscht. Wir haben nur auf Smarty 3 aktualisiert. Da hat sich die Syntax geändert. Schau dir am besten die offizielle Dokumentation an.
     
  5. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    244
    Danke erhalten:
    25
    Danke vergeben:
    29
    servus moritz,

    hab ich gemacht, lange und immerwieder. alles folgende und zahlreiches weitere bringt überhaupt nichts:

    $smarty->getTemplateVars();
    Call to a member function getTemplateVars() on a non-object

    $this->Smarty->getTemplateVars
    Using $this when not in object context

    eingebaut mittels {php}{/php} in prdouktinfotemplate standard.html unter eyecandy.
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    112
    Danke vergeben:
    20
    #6 Anonymous, 22. Juni 2016
    Zuletzt bearbeitet: 22. Juni 2016
    $smarty->getTemplateVars() oder {debug}


    müsste doch eigentlich gehen...:rolleyes:
     
  7. Wilken (Gambio)

    Wilken (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    7. November 2012
    Beiträge:
    17.846
    Danke erhalten:
    6.793
    Danke vergeben:
    2.060
    Da sind wir am Kern des Problems: Smarty3 und PHP-Tags mögen einander nicht. Den PHP Code musst du auslagern.
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Doch, die mögen sich immer noch...

    Halt nur anders.

    Code:
    $template->getTemplateVars()
    sollte funktionieren....

    Zuständig in Smarty für die Einbindung von PHP-Tags ist diese Funktion in "includes\classes\Smarty\SmartyBC.class.php":

    Code:
    function smarty_php_tag($params, $content, $template, &$repeat)
    {
        eval($content);
    
        return '';
    }
     
  9. Wilken (Gambio)

    Wilken (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    7. November 2012
    Beiträge:
    17.846
    Danke erhalten:
    6.793
    Danke vergeben:
    2.060
    SmartyBC kann man nutzen, BC steht dabei ja für Backwards Compatibility, die Rückwärts-Kompatibilität, den Noch-Workaround. Der Weg in die Zukunft so wie sich das die Smarty Entwickler vorstellen ist das also nicht. Auslagern wäre der bessere Weg.
     
  10. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    "SmartyBC kann man nutzen,"

    SmartyBC wird von Gambio genutzt, da das Smarty-Objekt davon "extended" wird!

    "Auslagern" zieht auch einen Rattenschwanz von Problemen (zu erstellende Overloads) nach sich, auch für kleine Dinge, die man sonst mal eben so machen kann...

    Man sollte auch die Leute im Auge haben, die nicht nur mit Gambio Standard unterwegs sind.
     
  11. Moritz (Gambio)

    Moritz (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    5.391
    Danke erhalten:
    2.429
    Danke vergeben:
    783
    Es ist eine einfach Kosten-Nutzen-Rechnung. Es kann durchaus sinnvoll sein, eine schnelle Smarty-PHP-Lösung zu wählen. Vieles kann man auch über eigene Smarty-Funktionen oder -Modifier lösen, was die Übersichtlichkeit steigern kann. Es kommt immer auf das konkrete Vorhaben an. Man sollte immer die Wartbarkeit im Blick haben und Lösungen wählen, die einen Externen nicht in den Wahnsinn treiben ;).
     
  12. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    112
    Danke vergeben:
    20
    @Moritz (Gambio)

    *off-topic*
    PHP-Storm unterstützt Smarty Syntaxhervorhebung nur(?) bei .tpl Datei.
    In den ganzen .html Dateien werden bei mir (auch verständlich) nur der HTML Syntax hervorgehoben.
    Der ganze Smartypart wird nicht hervorgehoben.

    Hast du einen Tipp für mich, wie ich PHP Storm beibringen kann, dass auch unter .html sich Smarty Code verstecken kann?
     
  13. Moritz (Gambio)

    Moritz (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    5.391
    Danke erhalten:
    2.429
    Danke vergeben:
    783
    Siehe Anhang.
     

    Anhänge:

  14. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    112
    Danke vergeben:
    20
    @Moritz (Gambio) ooh man.. hätte man auch selber drauf kommen müssen :oops:
    danke :)
     
  15. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das funktioniert bei mir problemlos....
     
  16. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Genau aus diesem Grunde ziehe ich eine solche Lösung vor (bei überschaubaren Problem'schen), weil ich dann nicht erst lange nach einem Overload suchen muss, das die Daten bereit stellt, sondern alles im Kontext parat habe...
     
  17. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    244
    Danke erhalten:
    25
    Danke vergeben:
    29
    @Avenger: ja, rein smarty geht - in manchen templatedateien, nicht mehr in allen wie früher. aber ich brauche immer wieder quick and dirty smarty vars -> php. bekommt das irgendeiner hin unter smarty3 ?
     
  18. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89