kann es sein dass gambio seit kurzem jegliches einbinden von php code in templatedateien unterbindet? gambio gx 3.8.1.0, datei checkout_success.html nicht mal ein einfaches <?php echo "jj"; ?> geht durch. ja, ich weiss soll man nicht machen, aber wenn man für einen kunden eben mal schnell und einfach was programmieren soll ist das trotzdem die einfachste art. ja, ich komm an smarty sacehn ran....aber wenn du erst mal komplexe berechnungen warenkorb wegen tracking pixeln billiger.de in checkout_success.html machen musst definitiv die erste wahl. bin garantiert an der richtigen stelle, alles vor und nach php wird an html korrekt ausgegeben.
Bitte nicht falsch verstehen: Hast Du dich schon mal mit der Übeladung auseinander gesetzt? Ob das definitiv die erste Wahl ist, lasse ich mal im Raume stehen. Was konkrekt versucht Du zu machen? Ein Beispiel wäre nett.
Gerade solche Tracking-Geschichten haben in dem Smarty-Template eigentlich gar nichts verloren, so etwas implementiert man normalerweise über einen Overload der CheckoutSuccessExtenderComponent, in system/overloads/CheckoutSuccessExtenderComponent liegen ein paar Beispiele rum. Eigenes würdest du dann entsprechend in GXModules/FFWeb/Tracking/Shop/Overloads/CheckoutSuccessExtender/FFWebTrackingCheckoutSuccessExtender.inc.php o.s.ä. unterbringen. PHP-Code über <?php … ?> ging in Smarty-Templates auch noch nie. Es gab mal {php} … {/php}, aber das ist mit dem Update auf Smarty 3 rausgeflogen.
ja klar hab ich überladen...ändern sich die zugrundeliegenden klassen (was recht häufig passiert) darfst du den kompletten overload neu schreiben. ich versuche einfach alle produkte der bestellung (ids, preis, name, artnr) urlcodiert an ein tracking pixel anzuhängen in checkout_success.html - aber schon eine einfaches echo kommt anscheinend nicht mehr durch...seit wann ist das so? ging 10 jahre lang problemlos...
hm...ok eben mal angeschaut...über welche klasse/overload komme ich denn am geschicktesten an folgende daten ran: artikelname artkelnummer artikelanzahl artikelpreis früher hätte ichs einfach über die session daten gemacht...aber da gibts keine order data mehr, korrekt?
schau doch einfach mal was dir die Session so liefert ... einfach an geeigneter Stelle im Template unterbringen. Code: <pre> {$smarty.session|print_r} </pre>
Das dürfte seit der Umstellung auf Smarty 3 nicht mehr gehen, also knapp seit drei Jahren. Das war vorher schon nicht cool und ist über die Jahre nicht besser geworden. Also: Nicht machen. Wie es gehen kann, hat Marco denke ich schon korrekt beschrieben.
Wir haben das genau so wie es @Marco (Gambio) geschrieben hat umgesetzt! In einem Overload werden Daten nicht nur verändert sondern man kann vorhandene Objekte auch in eigenen Methoden verarbeiten. Bei uns war es ein Data-Layer welcher in den head musste. Da ist nichts im Templates gemacht, sondern alles per Overload!
Ich bin zwar kein Programmierer, habe aber einige Overloads in meinem Shop. Wenn ich jedes MU mache, dann muss ich die vielleicht bei jedem 3 (also einmal im Jahr) anfassen, weil sich da irgendetwas geändert hat. USERMODs muss ich aber bei jedem Update im Auge haben. Nachsehen ob die Datei im Paket ist, wenn ja, vergleichen, Änderungen übertragen. Ist vom Aufwand her für mich deutlich mehr.
Wenn Blöcke fehlen, nehmen wir gerne Vorschläge entgegen, da kann man jetzt noch was tun. Wenn jemand jetzt was weiss, dass aber erst in 3 Jahren ausformuliert, hat eine Nichtlösung möglicherweise dann schon einen fiesen Bestandsschutz. Also immer raus mit Mängeln Davon ab: PHP in Smarty Templates, keine Tricks versuchen, einfach nicht mehr machen. Das ist auch nicht nur in Gambio so, das ist aus gutem Grund bei den Smarty Entwicklern in Verruf gekommen, und zieht sich so durch in alle Lösungen die Smarty einsetzen. Das darf man einfach nicht mehr.
Hallo Wilken Ich glaube da kam schon etwas in der 3.9. das muss ich mir noch einmal genauer ansehen. Dann kommen meine Wünsche dazu