Aller Anfang ist schwer, oder bin ich nur zu blöd ?

Hallo zusammen,

ich bin relativ frisch in Shopware. Habe aber mit Smarty und PHP jahrelange Erfahrung.

 

Hier meine Challenge, die ich mir nicht erklären kann als Shopware Neuling:
 

Ich wollte beim Frontent bei “account” eine neue .tpl Datei erstellen, die dann entsprechend aufgerufen wird.

Meine vorgehensweise war, so wie ich es überall gelesen habe:

  1. Erstelle Dein eigenes Theme, und aktiviere es (was man unter Wordpress als “Child Theme” kennt)
  2. erstelle Deine .tpl Datei (in meinem Bsp taxid.tpl)
  3. Speichere und bearbeite die Datei in Deinem Theme dann unter dem Ordner “account”.
  4. Die bearbeitete Datei ist im moment ein 100% clone der “payment.tpl” aus dem bare theme vom “register” ordner
  5. Danach lösche ich alle Caches, und lasse das Theme auch neu kompilieren.

Rufe ich jetzt die URL http://localhost/shopware/account/taxid auf, müsste nach meiner mir bekannte Logik die geklonte payment erscheinen. Tut sie aber nicht. Ich bekomme lediglich die Home Seite von Shopware angezeigt, was ich so interpretiere, dass die taxid.tpl Datei nicht zugewiesen wurde.

Wo liegt mein Gedanklicher Fehler, bzw. wo / wie muß ich diese taxid.tpl noch bekannt machen in Shopware, dass ich die erfolgreich aufrufen kann ?

Danke für Eure Hilfen.
Marquez

P.S. Ich habe bisher auch eigentlich immer nur gesehen, dass vorhandene Dateien immer kopiert wurden, und nicht wie in meinem Fall, dass man eine eigene Datei anlegt und bekannt machen will. Sollte das doch schon irgendwo diskutiert worden sein, bin ich auch über den entsprechenden Link zum Post dankbar, dann muß ich das wohl übersehen haben.

Du musst die payment.tpl Datei erweitern.

{extends file="parent:your/path/to/your/payment.tpl"}
{block name='Your-Block-Name'}
    // Place your new element here...
    
    {$smarty.block.parent}
{/block}

 

Das führt mich leider auch nicht zum Erfolg.

Meine taxid.tpl ist im Ordner meines themes in account mit folgendem Inhalt:

{extends file="parent:frontend/account/payment.tpl"}

{block name='Demo-Block-Name'}
    Some Demotext
{/block}

Auch wieder alles cache gelöscht, und theme compilieren lassen. Ergebnis ist wie vorher. Bist Du sicher, dass ich da nicht noch einen weiteren Step machen muß ?

Hallo @marquez‍,

du müsstest eigentlich einem bestehenden Controller eine neue Action hinzufügen.

Das hier wird dir helfen: https://forum.shopware.com/discussion/comment/149341/#Comment_193172

 

@karlharris schrieb:

Hallo @marquez‍,

du müsstest eigentlich einem bestehenden Controller eine neue Action hinzufügen.

Das hier wird dir helfen: https://forum.shopware.com/discussion/comment/149341/#Comment_193172

 

Das hört sich vielversprechend an. Ich werde es gleich mal studieren. Danke für den Hinweis. Ich sage ja, mir macht es den Eindruck, als wenn noch ne Zuweisung fehlen würde.

Hier geht es los für dich:

https://developers.shopware.com/designers-guide/

Dein Code oben will einen Block überschreiben den es nicht gibt. Außerdem ist er nicht kompatibel zu den Coding Guidelines von Shopware.

Und noch was vorneweg, ist von @Murmeltier‍ schon korrekt im Beispiel integriert: Nutze smarty.block.parent anstatt append und prepend.

Rufe ich jetzt die URL http://localhost/shopware/account/taxid auf, müsste nach meiner mir bekannte Logik die geklonte payment erscheinen. Tut sie aber nicht. Ich bekomme lediglich die Home Seite von Shopware angezeigt, was ich so interpretiere, dass die taxid.tpl Datei nicht zugewiesen wurde.

Um es mal ganz einfach auszudrücken: Du musst hier ein Plugin programmieren damit diese URL auch funktioniert. Alleine mit irgendeinem TPL-Schnipsel kann das auch nicht gehen. Wie bereits schon erwähnt, musst du den Controller „account“ mit einer neuen Action „taxid“ erweitern. Was du dort dann als TPL-Schnipsel nimmst, ist eine ganz andere Frage. 

OH, hab da das wesentliche überlesen.

Das was @R4M‍ schreibt ist natürlich richtig. Du brauchst dann die Developer Doku.