Inhalt von Shopseiten als Variabel für Template

Hallo, ich möchte gerne meine Inhalte per Shopseiten verwalten. Hierzu habe ich die Frage: Wie kann ich den Inhalt einer Shopseite im Template ausgeben lassen? Die Gruppe wo die einzelnen Inhalte drin sind hat Template-Variabel „start_text“ und die Seite mit dem Inhalt hat folgenden Embed Code: [Inhaltsblock 1]({url controller=custom sCustom=48} "Inhaltsblock 1") Ich dachte an sowas wie: {block name="$sCustom.start\_text"} {block name='frontend\_custom\_article\_content' sCustom="48"} {$sContent} {/block} {/block} Wie bekomme ich jetzt den Inhalt des sCustom-Elements mit der ID 48 zB. auf der frontend/home/index.tpl ausgegeben? Im Prinzip will ich Shopseiten als Textbausteine verwenden (aufgrund deren Verwendung des Editors) Danke für die Hilfe! Patrick

Hallo Patrik, ist die frontend/home/index.tpl nicht die Startseite? Die kannst du doch mit der Einkaufswelt super gestalten, brauchst doch dazu keine Shopseiten zu erstellen. Aber ich habe auch ein Problem mit dem Inhalt der Shopseiten. Ich möchte gern den Inhalt einer Shopseite (bei mir Größentabelle) in einem Tab in der Produktbeschreibung anzeigen. Die Tab-Erstellung ist kein Problem gibt es hier schon eine gute Anleitung, nur den Inhalt bekomme ich nicht angezeigt, sind nur Smarty-Fehler zu sehen, denn ich habe von php sehr wenig Ahnung. Ich wollte die frontend/custom/tischwaesche.tpl laden und den Inhalt anzeigen lassen. Bitte jetzt keinen Lachanfall bekommen hier mein letzter Versuch include file="frontend/custom/tischwaesche.tpl" {$sContent} Wäre super wenn jemand helfen könnte. Uwe

[quote=“body62”]Hallo Patrik, Ich wollte die frontend/custom/tischwaesche.tpl laden und den Inhalt anzeigen lassen. Bitte jetzt keinen Lachanfall bekommen hier mein letzter Versuch include file="frontend/custom/tischwaesche.tpl" {$sContent} Wäre super wenn jemand helfen könnte. Uwe[/quote] Hallo, das hat mit php überhaupt nichts zu tun, sondern ist die Template-Sprache SMARTY. Die Dokumentation dazu gibt es unter www.smarty.net . Zwischen { und } wird der Text von der TemplateEngine analysiert und in HTML-Code umgesetzt. Um eine Template-Datei (tischwaesche.tpl) in eine ander einzufügen, wird in der Tat include verwendet. Die Anweisung muss jedoch von {} eingeschlossen sein. {include file="frontend/custom/tischwaesche.tpl} {$sContent} gibt den Inhalt der Variablen aus. Dazu muss diese aber auch existieren und mit Inhalt vom Shopware-Backend gefüllt worden sein.

Hatte es auch schon so versucht {include file="frontend/custom/tischwaesche.tpl"} Leider kommt dann die folgende Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Unable to load template snippet 'frontend/custom/tischwaesche.tpl' in 'frontend/detail/description\_tischdecke.tpl' in Smarty/sysplugins/smarty\_internal\_templatebase.php on line 127 Stack trace: #0 Smarty/sysplugins/smarty\_internal\_template.php(286): Smarty\_Internal\_TemplateBase-\>fetch(NULL, NULL, NULL, NULL, false, false, true) #1 cache/templates/compile/frontend\_emotion\_bh\_de\_DE\_1/09/35/c2/0935c2d1d166359625b08de872bebb81ad478417.snippet.index.tpl.php(5423): Smarty\_Internal\_Template-\>getSubTemplate('frontend/custom...', NULL, 'frontend\_emotio...', NULL, NULL, Array, 0) #2 cache/templates/compile/frontend\_emotion\_bh\_de\_DE\_1/09/35/c2/0935c2d1d166359625b08de872bebb81ad478417.snippet.index.tpl.php(937): content\_518d74cb19b372\_29093158(Object(Enlight\_Template\_Default)) #3 Smarty/sysplugins/smarty\_internal\_templatebase.php(180): content\_518cc16515cc92\_98767020(Object(Enlight\_Template\_Default)) #4 Enlight/View/Default.php(273): Smarty\_Internal\_TemplateBase-\>fetch() #5 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #6 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #7 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #8 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Event\_EventArgs)) #9 Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Event\_EventArgs)) #10 Enlight/Event/EventManager.php(156): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Event\_EventArgs)) #11 Enlight/Controller/Action.php(147): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Array) #12 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('indexAction') #13 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #14 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #15 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #16 shopware.php(76): Enlight\_Application-\>run() #17 {main} Da ja die Shopseite mit der frontend/custom/index.tpl erst dynamisch erzeugt wird funktioniert es auch vielleicht generell nicht, oder muss man hier mit custom sCustom=46 nutzen?

Wenn die Templatedatei nicht existiert, kann man sie natürlich auch nicht einbinden. Ich war davon ausgegangen, dass die ganze Syntax nicht stimmt, aber die Templatedatei existiert. Den Inhalt einer Shopseite auf einem anderen View einzubinden ist so auch nicht zu lösen. Mit der Template-Engine können ja nur Variablen ausgelesen werden, die der Controller dem jeweiligen View zur Verfügung stellt. Auf der Artikeldetailseite stehen aber keine Variablen aus den Shopseiten zur Verfügung. Mit dem {url plugin} wird nur ein Link erzeugt, aber keine Variable oder INhalt, der abgefragt werden kann. Der Link ruft den Controller auf und dieser erstellt dann anhand der Variablen sCustom den richtigen Inhalt der Variablen für seinen View. So ad hoc fallen mir da 3 Lösungen ein: 1. Plugin schreiben, dass auf der Artikeldetailseite eine neue Variable zur Verfügung stellt und die mit Inhalt füllt. 2. Shopseite mit Ajax auslesen und in den HTML-Code der Produktdetailseite einfügen. Das Vorgehen kann man sich ja in der modal-function in jquery.shopware.js exemplarisch ansehen. Anstatt das modal-Overlay mit Inhalt zu füllen, muss man dann ein beliebiges HTML-Element damit füllen. 3. Der einfachste Weg: Im Ordner /detail eine TPL-Datei speichern, deren Inhalt aus dem HTML-Code für die „Tischdeckengröße“ besteht. Die kann man dann mit include einbinden. [quote=„body62“]Hatte es auch schon so versucht {include file="frontend/custom/tischwaesche.tpl"} Leider kommt dann die folgende Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Unable to load template snippet 'frontend/custom/tischwaesche.tpl' in 'frontend/detail/description\_tischdecke.tpl' in Smarty/sysplugins/smarty\_internal\_templatebase.php on line 127 Stack trace: #0 Smarty/sysplugins/smarty\_internal\_template.php(286): Smarty\_Internal\_TemplateBase-\>fetch(NULL, NULL, NULL, NULL, false, false, true) #1 cache/templates/compile/frontend\_emotion\_bh\_de\_DE\_1/09/35/c2/0935c2d1d166359625b08de872bebb81ad478417.snippet.index.tpl.php(5423): Smarty\_Internal\_Template-\>getSubTemplate('frontend/custom...', NULL, 'frontend\_emotio...', NULL, NULL, Array, 0) #2 cache/templates/compile/frontend\_emotion\_bh\_de\_DE\_1/09/35/c2/0935c2d1d166359625b08de872bebb81ad478417.snippet.index.tpl.php(937): content\_518d74cb19b372\_29093158(Object(Enlight\_Template\_Default)) #3 Smarty/sysplugins/smarty\_internal\_templatebase.php(180): content\_518cc16515cc92\_98767020(Object(Enlight\_Template\_Default)) #4 Enlight/View/Default.php(273): Smarty\_Internal\_TemplateBase-\>fetch() #5 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #6 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #7 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #8 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Event\_EventArgs)) #9 Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Event\_EventArgs)) #10 Enlight/Event/EventManager.php(156): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Event\_EventArgs)) #11 Enlight/Controller/Action.php(147): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Array) #12 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('indexAction') #13 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #14 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #15 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #16 shopware.php(76): Enlight\_Application-\>run() #17 {main} Da ja die Shopseite mit der frontend/custom/index.tpl erst dynamisch erzeugt wird funktioniert es auch vielleicht generell nicht, oder muss man hier mit custom sCustom=46 nutzen?[/quote]

2 „Gefällt mir“

Hallo hth, danke für die schnelle Antwort. Da werde ich mich, mit meinen geringen Kenntnissen, für die 3. Variante entscheiden und die tpl-Dateien erstellen und diese auf den Server laden und dann einbinden. Um ein wenig flexibler zu sein werde ich mal versuchen die Artikel-Freitextfelder zu nutzen, einmal für die Reiter-Überschrift und dann eines für die einzubindende tlp-Datei. Gibt es eine Möglichkeit die Grundpreisberechnung beim erstellen der Artikel auszublenden. Da ich diese nicht benötige und durch die immer mehr werdenden Freitextfelder wird es alles ein bisschen unübersichtlich. Habe die Datei und den Block schon gesucht der dafür zuständig ist, aber leider nicht gefunden. Viele Grüße Uwe

[quote=“body62”] Um ein wenig flexibler zu sein werde ich mal versuchen die Artikel-Freitextfelder zu nutzen, einmal für die Reiter-Überschrift und dann eines für die einzubindende tlp-Datei.[/quote] Das geht mit einem Attribut-Feld. Ist sie nicht gefüllt, wird einfach nichts getan (oder eine Standardlösung), ansonsten den Include mit dem Inhalt als Link ausführen. [quote=“body62”] Gibt es eine Möglichkeit die Grundpreisberechnung beim erstellen der Artikel auszublenden. Da ich diese nicht benötige und durch die immer mehr werdenden Freitextfelder wird es alles ein bisschen unübersichtlich. Habe die Datei und den Block schon gesucht der dafür zuständig ist, aber leider nicht gefunden. Viele Grüße Uwe[/quote][/quote][/quote] Sicherlich lässt sich eine Grundpeisberechnung ausblenden. Aber was ist damit jetzt genau gemeint und wo soll die ausgeblendet werden? Ich habe gerade http://www.betten-segeth.de/wohnen/tisc … zweig?c=65 angesehen und da erscheint ein Preis ohne ab, obwohl die Variante nicht vorausgewählt ist. Das kann doch eigentlich nicht gewollt sein. Der Kunde weiß nun gar nicht, für welchen Artikel der Preis gilt.

[quote]Ich habe gerade http://www.betten-segeth.de/wohnen/tisc … zweig?c=65 angesehen und da erscheint ein Preis ohne ab, obwohl die Variante nicht vorausgewählt ist. Das kann doch eigentlich nicht gewollt sein. Der Kunde weiß nun gar nicht, für welchen Artikel der Preis gilt.[/quote] Wir haben bei den Varianten die Option Auswahl genommen, da steht als erstes in der Artikel-Front bei Größe “Bitte wählen” und Preis der dort angezeigt wird ist der der im Backend bei den Artikelvarianten auf true gestellt ist und das muss ja nicht immer der günstigste sein, deshalb wahrscheinlich auch dort kein “ab”. Wir haben es gewollt so gemacht das der Kunde unbedingt die Größe auswählen muss, denn es kommt immer wieder vor das sie Kunden sonst nur die Vorauswahl in den Warenkorb legen und bestellen und wir später ne Retour bekommen weil es nicht die richtige Größe ist In der Kategorie-Übersicht wird der niedrigste Preis der Artikel mit Varianten angezeigt, deshalb steht dort auch “ab”. [quote]Sicherlich lässt sich eine Grundpeisberechnung ausblenden. Aber was ist damit jetzt genau gemeint und wo soll die ausgeblendet werden? [/quote] Wenn ich den Artikel im Backend einpfege (Artikeldetail -> Stammdaten) soll der ganze Block bei dem man die Grundpreisberechnung eingeben kann entfernt werden, weil ich den nicht benötige und so das Fenster der Stammdaten ein wenig aufgeräumter ist. Ich hatte gedacht das sich der ganze Block mit der Grundpreisberechnung ausblendet wenn ich in der Grundeinstellungen -> Preiseinheiten die Einträge lösche, aber leider ist dem nicht so.

@Grundpreis im Backend: Die Eingabemaske ist ein Standard, der nicht modifizierbar ist. Theoretisch kann man das natürlich umprogrammieren respektive umkonfigurieren, aber es gibt kein “Häckchen” in irgendwelchen Einstellungen mit dem man dort Felder entfernen kann. Ist eben eine Eingabemaske, die viele Artikelvariationen ermöglicht. @Preis: Artikeldetialseite. Ja, die Ursache für die Darstellung im Frontend (die Backendkonfiguration) war mir schon bewusst. Ich finde es nur nicht besonders einleuchtend als Kunde, wenn der dick, fett geschriebene Preis überhaupt nichts mit meiner später gewählten Variante zu tun hat und das noch nicht einmal visuell erkennbar ist. Ist das nach der Preisangabenverordnung überhaupt zulässig, ein Produkt ohne Preis oder ein Preis ohne eindeutige Produktzuordnung? Ich fände ein kleines Overlay oder ein Rahmen, der darauf hinweist, dass die Varianten sich im Preis unterscheiden übersichtlicher und transparenter. Aber das mag eine Frage des Geschmacks sein. [quote=“body62”][quote]Ich habe gerade http://www.betten-segeth.de/wohnen/tisc … zweig?c=65 angesehen und da erscheint ein Preis ohne ab, obwohl die Variante nicht vorausgewählt ist. Das kann doch eigentlich nicht gewollt sein. Der Kunde weiß nun gar nicht, für welchen Artikel der Preis gilt.[/quote] Wir haben bei den Varianten die Option Auswahl genommen, da steht als erstes in der Artikel-Front bei Größe “Bitte wählen” und Preis der dort angezeigt wird ist der der im Backend bei den Artikelvarianten auf true gestellt ist und das muss ja nicht immer der günstigste sein, deshalb wahrscheinlich auch dort kein “ab”. Wir haben es gewollt so gemacht das der Kunde unbedingt die Größe auswählen muss, denn es kommt immer wieder vor das sie Kunden sonst nur die Vorauswahl in den Warenkorb legen und bestellen und wir später ne Retour bekommen weil es nicht die richtige Größe ist In der Kategorie-Übersicht wird der niedrigste Preis der Artikel mit Varianten angezeigt, deshalb steht dort auch “ab”. [quote]Sicherlich lässt sich eine Grundpeisberechnung ausblenden. Aber was ist damit jetzt genau gemeint und wo soll die ausgeblendet werden? [/quote] Wenn ich den Artikel im Backend einpfege (Artikeldetail -> Stammdaten) soll der ganze Block bei dem man die Grundpreisberechnung eingeben kann entfernt werden, weil ich den nicht benötige und so das Fenster der Stammdaten ein wenig aufgeräumter ist. Ich hatte gedacht das sich der ganze Block mit der Grundpreisberechnung ausblendet wenn ich in der Grundeinstellungen -> Preiseinheiten die Einträge lösche, aber leider ist dem nicht so.[/quote]

[quote]@Preis: Artikeldetialseite. Ja, die Ursache für die Darstellung im Frontend (die Backendkonfiguration) war mir schon bewusst. Ich finde es nur nicht besonders einleuchtend als Kunde, wenn der dick, fett geschriebene Preis überhaupt nichts mit meiner später gewählten Variante zu tun hat und das noch nicht einmal visuell erkennbar ist. Ist das nach der Preisangabenverordnung überhaupt zulässig, ein Produkt ohne Preis oder ein Preis ohne eindeutige Produktzuordnung? Ich fände ein kleines Overlay oder ein Rahmen, der darauf hinweist, dass die Varianten sich im Preis unterscheiden übersichtlicher und transparenter. Aber das mag eine Frage des Geschmacks sein.[/quote] Ja du hast schon Recht das mit dem Preis ist nicht sauber gelöst. Ich habe jetzt noch die Variante auslesen lassen und zeige diese über dem Preis an, so das der Kunde gleich sieht worauf sich der Preis bezieht. [quote]@Grundpreis im Backend: Die Eingabemaske ist ein Standard, der nicht modifizierbar ist. Theoretisch kann man das natürlich umprogrammieren respektive umkonfigurieren, aber es gibt kein “Häckchen” in irgendwelchen Einstellungen mit dem man dort Felder entfernen kann. Ist eben eine Eingabemaske, die viele Artikelvariationen ermöglicht. [/quote] Den Block für die Anzeige der Grundpeisberechnung kann doch bestimmt auskommentiert werden. Die Datei kann sich doch nur in einem Verzeichnis /backend/article liegen, aber ich habe gerade gesehen, da sind nur JS-Dateien und von denen lasse ich lieber die Finger.