• hi,

    Ich nutze des öfteren in meinen Shops PHP direkt im Template, um möglichst wenig an den eigentlichen Shopdateien pfuschen zu müssen (erleichtert das Einpflegen von Fixpacks). Das will nun aber nicht mehr so wie ich...

    Version: commerce:SEO 2.2.1.0 Plus

    Code
    Fatal error: Uncaught exception 'SmartyException' with message 'template property 'allow_php_tag' does not exist.' in /media/sf_htdocs/pfadZumShop/includes/classes/Smarty_3/sysplugins/smarty_internal_template.php:668 Stack trace: #0 /media/sf_htdocs/pfadZumShop/includes/classes/Smarty_3/plugins/block.PHP.php(19): Smarty_Internal_Template->__get('allow_php_tag') #1 /media/sf_htdocs/pfadZumShop/templates_c/dba17a706bdd276fd90b1d7896a0c7b896c65d55.file.index.html.php(40): smarty_block_php(Array, NULL, Object(Smarty_Internal_Template), true) #2 /media/sf_htdocs/pfadZumShop/includes/classes/Smarty_3/sysplugins/smarty_internal_templatebase.php(180): content_5069401858f897_93662255(Object(Smarty_Internal_Template)) #3 /media/sf_htdocs/pfadZumShop/includes/classes/Smarty_3/sysplugins/smarty_internal_templatebase.php(374): Smarty_Internal_TemplateBase->fetch('cseov22-grid/in...', NULL, NULL, NULL, true) #4 /media/sf_htdocs/pfadZumShop/index.php(60): Smarty_Internal_TemplateBase->display('cseov22 in /media/sf_htdocs/pfadZumShop/includes/classes/Smarty_3/sysplugins/smarty_internal_template.php on line 668

    Fehler hervorrufen: zB im index.html template irgendwo ein

    PHP
    {PHP}echo 'foobar';{/PHP}

    einbauen.

    Bin leider kein SmartyFreak, sonst würde ich es selbst fixen, dazu weiß ich nicht, was Ihr alles an dem Smarty modifiziert habt - ein update auf die aktuelle smarty-Version hat jedenfalls nichts geholfen - das zerschieß alles :)
    Wäre super wenn da jemand, wie sagen meine Kunden immer so schön sagen: zeitnah drüber schauen könnte, eilt leider etwas bei mir.

    Gruß und Dank
    SaHiB

  • v2.2.x hat smarty3.0!

    Anleitung und support von smarty wegen versionen und unterschieden.

    V3 ist nur in Englisch zu lesen
    http://www.smarty.net/docs/en/
    und V3 Known incompatibilities with Smarty 2

    OJA dort steht dan auch

    Zitat

    == {php} Tag ==
    The {php} tag is disabled by default. The use of {php} tags is
    deprecated. It can be enabled with $smarty->allow_php_tag=true.

    But if you scatter PHP code which belongs together into several
    {php} tags it may not work any longer.

  • mhhh, das erklärts. Sorry, war auch bei smarty, den artikel hab ich aber nicht gefunden... Danke fürs googlen, jotest
    wenn php tags aber veraltet sind, wie löst man das jetzt modern?
    Geht jetzt wirklich nur noch der weg über Smarty, wenn man mal "schnell" ne variable oder so braucht?

    naja, für alle die Ihr Glück mit den alten {PHP}versuchen wollen:

    PHP
    public $allow_php_tag=true;


    Das in der smarty.class.php irgendwo um Zeile 165 herum einfügen. Dann spart man sich, in jeder Instanzierung des Objektes, die var zu setzen und vor allem muss man nur eine Datei statt einer vielzahl verschiedener, ändern. Ich versuche ja imemr den Pflegeaufwand bei FixPacks so gering wie möglich zu halten...

    alternativ kann man die Abfrage auch gleich in includes/classes/Smarty_3/plugins/block.php.php z19 - 21 herauskommentieren, aber das ist dann eher unschön.
    Sollten übrigens Probleme bei der Nutzung von {PHP} auftreten, lasse ich es Euch hier wissen

  • Zitat

    mhhh, das erklärts. Sorry, war auch bei smarty, den artikel hab ich aber nicht gefunden... Danke fürs googlen, jotest


    No thanks, problem kenne ich auch wegen den Browser und/oder OS Sprach einstellungen, kan man einfach etwas gar nicht schnell finden.
    Smarty info/docs in Deutsches teil geht nur bis den v2.x ;)

    Problem ist denke ich wen alles auf Deutsch das die hier in Deutschland teilweise den rest den Welt: news nicht sehen können/möchten.
    Ist ja wie die nachsynchronisierung von SpielFilme und und, dan kennt/erkennt man die real voice den Actors gar nicht mehr.

    Hmm alles spass weil es so spät ist, aber mein Deutsch werdet da auch nicht wirklich besser von ;)

  • also nur zur Info, auch wenn's nicht direkt ins Bugs-Board gehört:

    hab jetzt ein paar h Smarty3 hinter mir - {PHP} kann man bis auf wenige Ausnahmen nicht mehr verwenden. Insbesondere Sachen wie

    gehen jetzt nicht mehr.
    Auch habe ich es nicht geschafft, im Template direkt daten in $smarty->tpl_vars zu bringen um sie dann später im Template via Smarty zu verwenden. Zwar bekomm ich die variablen ins Objekt rein, aber scheinbar werden die PHP Blöcke erst evaluiert, nachdem der Rest schon durch ist.
    Derzeit behelf ich mir, für jeden Scheiß (darf man das hier überhaupt sagen? BadWordFilter?) ein extra plugin (templatefunktion) zu schreiben. Das klappt, obgleich die Sachen dann leider nicht mehr mit im templateordner sondern bei Smarty liegen, was ich nicht so mag...
    Vlt kennt ja jemand eine schnelle lösung. Ob's sauberer Stil ist, ist mir hierbei herzlich egal :)

  • Hmm bin kein Programierer also sorry,

    Ja Sauber sind Modulen die auserhalb den filenames, datenbank.php, Language Datei/vars und den "include" selbst den ganz eigene teilen haben und weiter nicht in Core.

    Wen zeit dan vielleicht so etwas machen,
    Wen kein Zeit mall Admin oder Mbraune hier fragen, Julien geht auch aber hat glaube ich wenig Zeit.

    Einmal editiert, zuletzt von jotest (2. Oktober 2012 um 22:31)

  • hi jotest, dabnk dir, ich komm schon klar - ich bin ja progger :)
    Das ist hier ja auch kein Smarty-Supportforum. Daß das PHP im template sehr unschön war, wußte ich, aber wenn Du mal 10-15 Shops betreust und dort Updates einpflegen willst, dann ist jede PHP Datei die Du verändert hast ein Haufen Extraarbeit und Fehlerpotential.
    Die templatefunktionen sind jetzt glaube ich der beste Zwischenweg, da jede Funktion eine extra Datei im Plugin-Dir bekommt und ich hierfür keine Shopdaten ändern muss und das ist denke ich im Interesse aller shopadmins hier im Forum, deswegen das kurze Feedback.

  • also mir ist keine bessere als die Templatefunktionen untergekommen. Deutlich aufwendiger, als direkt via PHP im Template rum zu pfuschen, aber PHP an sich kann man praktisch nicht mehr verwenden, weil die Einschränkungen einfach imens sind...

  • Mann kann aber einiges über SMARTY selbst abfragen! Da braucht man kein PHP. Ein Blick in die Doku ist da hilfreich :)

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>

  • Oja auf falsch ist nicht wirklich richtig sehe ;)

    Zitat

    Die CSS werden im cache-Ordner abgelegt. Ist diese Funktion auf false gestellt, werden die CSS-Dateien einmal im Cache abgelegt und erst wieder erneuert, wenn der Cache-Ordner geleert wird.
    Steht diese Funktion auf true wird der CSS-Cache im Abstand der Template CSS Cache Lebenszeit erneuert.
    Wenn Sie das Template anpassen, sollten Sie die Einstellung hier auf true setzen und die Cache Lebenszeit herunter drehen. Das ist besonders für Entwickler relevant

    Einmal editiert, zuletzt von jotest (15. März 2013 um 16:45)

  • hehe ja auf die Idee muss man erst mal kommen. Für mich bedeutet false = aus und nicht Lebenslänglich an. Aber nun, da kann man sich sicher streiten :)

    Yep tu ich;)

    Weil:

    Zitat

    Template-CSS Cache Erneuerung

    Aber komme aus Holland.