PHP in .TPL nutzen

Hallo,

wie kann ich PHP in TPL-Dateien nutzen. Dort wird ja meines Wissens nach “Smarty” genutzt. Google sagte mir lediglich, dass man die PHP Datei auslagern sollte (Habe ich bereits) und dann irgendwie includen soll.

http://www.smarty.net/docsv2/de/language.function.include.php.tpl Das habe ich gefunden, was aber wohl auch nicht mehr aktuell ist?

Das habe ich auch gefunden: {php}MEIN CODE{/php} - wohl auch nicht mehr möglich…

Also: Wie kann ich einen PHP-Code oder eine PHP-Datei in einer gewünschten TPL Datei (z.B. Produktdetails) hinzufügen?

Danke im voraus.

Du solltest dir ein Plugin schreiben und den Code nicht direkt im Template einbinden. Das Plugin kann dann deine Ausgabe ausführen und dann bspw. als Variable an die View geben. In Smarty selbst solltest du keine PHP-Logik ablegen. Da wird dir jeder Programmierer von abraten.
 

Danke für die schnelle Rückmeldung.

“Plugin bauen” klingt so Pro-Like. Ich will eigentlich nicht aufwendig irgendwas programmieren… PHP Code ist fertig und soll ja lediglich auf allen Produktseiten ausgegeben werden… Aber wenn man dafür ein Plugin bauen muss, dann sollte ich ja mit Hilfe von Google sowas hinbekommen, richtig?

@thering schrieb:

Hallo,

wie kann ich PHP in TPL-Dateien nutzen. Dort wird ja meines Wissens nach “Smarty” genutzt. Google sagte mir lediglich, dass man die PHP Datei auslagern sollte (Habe ich bereits) und dann irgendwie includen soll.

http://www.smarty.net/docsv2/de/language.function.include.php.tpl Das habe ich gefunden, was aber wohl auch nicht mehr aktuell ist?

Das habe ich auch gefunden: {php}MEIN CODE{/php} - wohl auch nicht mehr möglich…

Also: Wie kann ich einen PHP-Code oder eine PHP-Datei in einer gewünschten TPL Datei (z.B. Produktdetails) hinzufügen?

Danke im voraus.

Hallo,

kurz und knapp: PHP-Code kann man nicht in Template - Dateien verwenden. {php}Code{/code} ist deprecated und soll und kann nicht mehr verwendet werden. Du kannst nur Smarty verwenden, für viele PHP-Sachen gibt es aber eine Alternative bei Smarty.

Prinzipiell kannst du das nur über ein Plugin lösen, wo du vorher über ein Event die gewünschte Ausgabe generierst und dann der View die Ausgabe übergibst, damit du in der Template - Datei diese ausgeben kannst.

Vielleicht wäre es auch über ein Smarty - Plugin möglich: Getting started with Smarty .

Beste Grüße

Sebastian

Danke @sschreier‍, dann werde ich mich wohl mal durch einige Tutorials wühlen müssen ^^

Hallo,

 

ich klinke mich mal hier ein.

Bisher habe ich auf meine Homepage mittels PHP eine Seite aufgebaut worüber Kunden 5 Werte eingeben können und mit klick auf Berechnen würde das Ergebniss presentiert.

Jetzt möchte ich im Shop ebenfalls eine Infoseite für meine Kunden einrichten, wo die sich ein bestimmte Wert anhand mehrere auswahlfelder berechen lassen kann.

Welche Weg/Sprache etc. wäre hier die richtige weg so eine Seite in Shopware abzubilden?

@lappies schrieb:

Hallo,

 

ich klinke mich mal hier ein.

Bisher habe ich auf meine Homepage mittels PHP eine Seite aufgebaut worüber Kunden 5 Werte eingeben können und mit klick auf Berechnen würde das Ergebniss presentiert.

Jetzt möchte ich im Shop ebenfalls eine Infoseite für meine Kunden einrichten, wo die sich ein bestimmte Wert anhand mehrere auswahlfelder berechen lassen kann.

Welche Weg/Sprache etc. wäre hier die richtige weg so eine Seite in Shopware abzubilden?

Hallo,

da in einer Shopware - Template - Datei nur Smarty zulässig ist, geht es wohl auch nur über Smarty Wink.

Und auch dies geht recht einfach über ein eigenes Smarty - Plugin: https://developers.shopware.com/designers-guide/smarty/#register-custom-smarty-plugins . Alternativ kann man es auch über JavaScript berechnen lassen.

Beste Grüße

Sebastian

1 Like

Hallo,

ich habe mich jetzt bischen eingelesen und eine einfache smarty plugin erstellt der 3 werte zusammen zählt, funktioniert sogar in meiner Einkaufswelt.

Wenn ich dort folgendes eingeben,

Ergebniss {dothemaths value1=1 value2=2 value3=3}

beomme ich die richtige antwort 6 angezeigt.

 

Jetzt möchte ich ein html form erstellen und 3 Felder definieren wo der Kunde was auswählen muss.z.B.

Länge

15
30
45
60
90

Breite

10
20
30

Höhe

1
2
3
4




Ergebniss {dothemaths value1=? value2=? value3=?}

Anschließen klick er auf Berechnen und bekomme auf der gleiche Seite auch seine Ergibniss angezeigt.

Wie übergebe ich die Formwerte value1 value2 und value3 an mein smarty-plugin?

 

Hallo,

 

wenn ich mit form GET arbeite, bekomme ich nach dem absenden auf der gleiche seite mit ein url wie z.B. exaple.com

Laut Doku kann ich die GET Variable so im tempalte ausgeben

{$smarty.get.value1}

Leider funktioniert das nicht.

Jemand ein idee, oder bin ich auf der Holzweg. Undecided