Neuen Reiter auf Detailseite mit Textbaustein füllen??

Hallo, wir möchten einen neuen Reiter auf der Detailseite mit Textbausteinen füllen. Beispiel: Für eine Jacke, ist aus dem Material “Gore-Tex Pro Shell” gefertigt ist, soll in einem extra Reiter “Material-Info” ausführliche Infos zum Material dargestellt werden. Der Reiter ist angelegt und kann über das Backend mittels WYSIWYG Editor mit Text und Grafik gefüllt werden. Das funktioniert. Kann im Shop z.Bsp. unter Bergsport/Hardshells/Jacke RAPTOR begutachtet werden. Meine (Anfänger-)Fragen zur Optimierung: [list=1] Kann man den Text, der ja für eine Menge von Produkten immer gleich ist, über einen Textbaustein einfügen? Wie geht man dabei am besten vor? [/list] [list=2] Wenn ja, kann der Textbaustein im HTML-Format angelegt werden und auch Grafiken beinhalten? [/list] [list=3] Wie kann man den Reiter elegant an eine definierte Position - sagen wir direkt hinter der Beschreibung - platzieren? Wenn mir jemand Anregungen / Hilfe geben könnte, würde eich mich freuen. [/list]

Wir haben längere Artikeltexte (und auch Tabellen mit Größenangaben), die für eine Vielzahl von Artikeln gültig sind. Aufgrund der Länge möchte ich diese Infos in einem extra Reiter unterbringen. Die Texte/Grafiken kann man bei meiner jetzigen Lösung mit Copy/Paste im Backend für jeden Artikel einpflegen, ändert sich aber im Text ein Detail oder ein Parameter, dann müsste man jeden Artikel einzeln nachpflegen. Mit einem Textbaustein oder etwas ähnlichem könnte man das m.E. besser lösen. Ich weiß leider nicht, wo man da am besten anpackt. Hat niemand eine Idee? [quote=“RobertW”]Hallo, wir möchten einen neuen Reiter auf der Detailseite mit Textbausteinen füllen. Beispiel: Für eine Jacke, ist aus dem Material “Gore-Tex Pro Shell” gefertigt ist, soll in einem extra Reiter “Material-Info” ausführliche Infos zum Material dargestellt werden. Der Reiter ist angelegt und kann über das Backend mittels WYSIWYG Editor mit Text und Grafik gefüllt werden. Das funktioniert. Kann im Shop z.Bsp. unter Bergsport/Hardshells/Jacke RAPTOR begutachtet werden. Meine (Anfänger-)Fragen zur Optimierung: [list=1] Kann man den Text, der ja für eine Menge von Produkten immer gleich ist, über einen Textbaustein einfügen? Wie geht man dabei am besten vor? [/list] [list=2] Wenn ja, kann der Textbaustein im HTML-Format angelegt werden und auch Grafiken beinhalten? [/list] [list=3] Wie kann man den Reiter elegant an eine definierte Position - sagen wir direkt hinter der Beschreibung - platzieren? Wenn mir jemand Anregungen / Hilfe geben könnte, würde ich mich freuen. [/list][/quote]

Hey, doch du kannst dir z.B. ein Textbaustein „MaterialText“ erstellen. (Backend unter Einstellungen / Textbaustein / Neue…) Hier kannst du einen kompletten HTML Text speichern. Das geht ohne Probleme. Im Template gibst du deinen Textbaustein dann wieder an gewünschter Stelle aus: {se name='MaterialText'}{/se}

[quote=„ottscho“]Hey, doch du kannst dir z.B. ein Textbaustein „MaterialText“ erstellen. (Backend unter Einstellungen / Textbaustein / Neue…) Hier kannst du einen kompletten HTML Text speichern. Das geht ohne Probleme. Im Template gibst du deinen Textbaustein dann wieder an gewünschter Stelle aus: {se name='MaterialText'}{/se} [/quote] Danke OTTSCHO für den Tipp. Ich habe mehrere Material-Textbausteine „MaterialText1“, „MaterialText2“, „MaterialText3“ usw. die ich variabel - je nach Artikel - einsetzen möchte. Eigentlich wie ein Attribut mit sehr langem Text und Grafiken, das in einem extra Reiter ausgegeben werden soll. Nun verstehe ich noch nicht, wie man den „Attribut-Textbaustein“ zum Artikel bekommt.

In irgendeiner Templatedatei im Ordner /frontend/details/ steht ja der Code für deinen zusätzlichen Reiter “Materialinfo”. Oder wie hast du den erstellt und wo schreibst du den Content, dass dieser unter dem Reiter erscheint? Meine Idee. Du schreibst bei dem Stammdaten im Artikel die Zahlen 1, 2 oder 3 in das Attr2 Feld. Nun baust du in das Template folgendes: {if $sArticles.attr2 == 1} {se name=MaterialText1}{/se} {/if} {if $sArticles.attr2 == 2} {se name=MaterialText2}{/se} {/if} {if $sArticles.attr2 == 3} {se name=MaterialText3}{/se} {/if} Jetzt wird je nach deiner Auswahl im Attr2 dein Textbaustein in dem Template ausgegeben.

Wenn du den Reiter nach dem Tutorial hier gemacht hast, dann muss mein Code in die index.tpl. Und zwar genau da wo steht: {* Beispieltext *} … Inhalt … [code] {* Detailseite des Mastertemplates erben *} {extends file="…/_default/frontend/detail/index.tpl"} {* Inhalt fuer neuen Tab hinzufuegen *} {block name=“frontend_detail_index_tabs_related” append}

{* Ueberschrift fuer den Reiter *}

Überschrift - Neuer Reiter

{* Beispieltext *} … Inhalt …
{/block} [/code]

1 Like

Vielen Dank, Ottscho, für die guten Hinweise. :thumbup: 1. Ich habe zwei neue Reiter (Material und Größen) angelegt und für den Inhalt neue Attributfelder angelegt. Dabei bin ich nach dem Tutorial vorgegangen, inkl. “darf es ein bisschen mehr sein” .Tutorial “Reiter” Das funktioniert perfekt. 2. Den Typ der Attributfelder habe ich auf “wysiwyg” gesetzt. 3. Im Backend werden bei den Artikeln nun unter Zusatzfelder die beiden Attribute mit WYSIWYG angezeigt - allerdings ohne Überschrift/Titel des Feldes/Attributes? Da scheint es einen kleinen Fehler zu geben??? 4. Die Felder lassen sich bei jedem Artikel füllen und die Inhalte werden im Frontend auch perfekt angezeigt FRAGE(N): Ist es möglich, dass man im Artikel-Backend bei den Attributfeldern anstatt Text die Adresse eines Textbausteins eingibt und der Inhalt des Textbausteins dann im Frontend ausgegeben wird? Wenn ja, wie muss der Textbaustein im Backend angegeben werden? Wenn ja, wie muss das Attribut definiert werden (Backend / Datenbank)? Wenn das funktionieren würde, könnte zum einen Speicher und Pflegeaufwand eingespart werden und zum anderen könnten neue Inhalte oder geänderte Inhalte komplett im Backend bei den Artikeln bzw. bei den Textbausteinen verwaltet werden. In die .tpl-Dateien müsste hierzu nicht eingegriffen werden. Das bisherige Frontend-Ergebnis kann man im Shop bei der Jacke STORM MEN sehen (über Suche)

[quote=„RobertW“] Ist es möglich, dass man im Artikel-Backend bei den Attributfeldern anstatt Text die Adresse eines Textbausteins eingibt und der Inhalt des Textbausteins dann im Frontend ausgegeben wird? [/quote] So habe ich mir das eig auch gedacht. Im Attributfeld gibt du nur 1, 2 oder 3 an. Und geladen wird dann Textbaustein1, 2 oder 3. Wenn du mein Code eingebaut hast, sollte es doch funktionieren? Ich versteh jetzt nicht genau wo das Problem liegt :wink:

[quote=“ottscho”] So habe ich mir das eig auch gedacht. Im Attributfeld gibt du nur 1, 2 oder 3 an. Und geladen wird dann Textbaustein1, 2 oder 3. Wenn du mein Code eingebaut hast, sollte es doch funktionieren? Ich versteh jetzt nicht genau wo das Problem liegt ;)[/quote] Meine index.tpl sieht so aus: [code]{* Detailseite des Mastertemplates erben *} {extends file="…/_default/frontend/detail/index.tpl"} {* Inhalt fuer Material Tab hinzufuegen *} {block name=“frontend_detail_index_tabs_related” append}

{$sArticle.attr20}
{/block} {* Inhalt fuer Groessen Tab hinzufuegen *} {block name=“frontend_detail_index_tabs_related” append}
{$sArticle.attr19}
{/block}[/code]

Okay, das heißt ja nun, dass dein Tab “Material” mit den Werten aus attr20 gefüllt wird. Aber du willst ja die Textbausteine verwenden, oder? Also ersetzt du dies mit: {if $sArticle.attr2 == 1} {se name=MaterialText1}{/se} {/if} {if $sArticle.attr2 == 2} {se name=MaterialText2}{/se} {/if} {if $sArticle.attr2 == 3} {se name=MaterialText3}{/se} {/if} Die Textbausteinbezeichnungen musst du natürlich anpassen. Ich weiß nicht wie die Textbausteine heißen, welche du erstellt hast. Nun gibt du bei deinen Produkten unter attr2 nur noch 1, 2 oder 3 an und es wird dein gewünschter Textbaustein verwendet.

Für die Größentabellen ist das wahrscheinlich eine machbare Lösung, da kommt man mit 6-10 Textbausteinen aus, die man im Template wie du es vorschlägst definieren kann. Materialien gibt es aber über 40 und es kommen weitere, neue dazu. Da müsste man dann - wenn ich dich richtig verstehe - immer neue Zeilen in die .tpl-Datei einfügen, was ich vermeiden möchte. Diese Anlage sollte wie eine Artikelneuanlage komplett über das Backend laufen.

Hab’s jetzt mal mit den Größentabellen versucht, ist aber fehlgeschlagen. Anscheinend gibt es ein Syntaxfehler? [quote]exception ‘SmartyCompilerException’ with message 'Syntax Error in template “/is/htdocs/wp…_…F/meinshop-pfad/templates/meintpl/frontend/detail/index.tpl” on line 4 " {if sArticle.attr19 == tilakh} " - Unexpected “.”, expected one of: “|” , “}” , “*” , “/” , “%” , “+” , “-” , “”&"" , ISIN , ISDIVBY , ISNOTDIVBY , ISEVEN , ISNOTEVEN , ISEVENBY , ISNOTEVENBY , ISODD , ISNOTODD , ISODDBY , ISNOTODDBY , “==” , “!=” , “(>,gt)” , “(=,ge)” , "([/quote]

Darfst die ‘…’ nicht vergessen. {if $sArticle.attr19 == 'tilakh'}

die index.tpl sieht so aus und erzeugt die erwähnte Fehlermeldung [code]{* Detailseite des Mastertemplates erben *} {extends file="…/_default/frontend/detail/index.tpl"} {* Inhalt fuer Material Tab hinzufuegen *} {block name=“frontend_detail_index_tabs_related” append}

{$sArticle.attr20}
{/block} {* Inhalt fuer Groessen Tab hinzufuegen *} {block name=“frontend_detail_index_tabs_related” append}
{if sArticle.attr19 == ‘tilakh’} {se name=DetailTabsGroessenTilakH}{/se} {/if} {if sArticle.attr19 == ‘tilakf’} {se name=DetailTabsGroessenTilakF}{/se} {/if} {if sArticle.attr19 == ‘sjh’} {se name=DetailTabsGroessenSjH}{/se} {/if}
{/block} [/code] Seltsam. Kann das mit der Definition des Atributes in der DB oder im Backend zusammenhängen?

[quote=“RobertW”]Hab’s jetzt mal mit den Größentabellen versucht, ist aber fehlgeschlagen. Anscheinend gibt es ein Syntaxfehler? [quote]exception ‘SmartyCompilerException’ with message 'Syntax Error in template “/is/htdocs/wp…_…F/meinshop-pfad/templates/meintpl/frontend/detail/index.tpl” on line 4 " {if sArticle.attr19 == tilakh} " - Unexpected “.”, expected one of: “|” , “}” , “*” , “/” , “%” , “+” , “-” , “”&"" , ISIN , ISDIVBY , ISNOTDIVBY , ISEVEN , ISNOTEVEN , ISEVENBY , ISNOTEVENBY , ISODD , ISNOTODD , ISODDBY , ISNOTODDBY , “==” , “!=” , “(>,gt)” , “(=,ge)” , "([/quote][/quote] Poste noch mal die aktuelle Fehlermeldung. In der oben geposten hattest du noch keine Hochkommas.

dir fehlt vor jeder Varibale das führende $ zeichen :wink: {if $sArticle.attr19 == tilakh}

hab’s wie folgt geändert: {if $sArticle.attr19 == 'tilakh'} Der Reiter wird jetzt auch angezeigt :thumbup:, aber der Textbaustein wird nicht ausgegeben. Wenn das attr19-Feld im Backend gefüllt ist, wird der Reiter zwar angezeigt, aber der Inhalt lautet [quote]#TextBaustein#[/quote]

In welchen Namenspace stehen deine Textbausteine? Entweder muss der Namenspace so heißen, wie da wo du den Textbaustein verwendest, oder du musst den Textbaustein so aufrufe: {se name="DeinTextbaustein" namespace="frontend/detail/index"}

[quote=“ottscho”]In welchen Namenspace stehen deine Textbausteine?[/quote] frontend/detail/tabs