Einkaufswelt-Elemente um Textfeld erweitern und an Template durchreichen

Hallo,

gibt es eine Möglichkeit die bestehenden Standard-Elemente in den Einkaufswelten (z.B. den Artikel-Slider) um ein Textfeld zu erweitern und dieses ans Template durchzureichen? 

Ich möchte den Elementen in einer Einkaufswelt eine id geben, die ich als Sprungmarke/Anker im Frontend nutzen kann um z.B. direkt einen Artikelslider zu verlinken. 

Gibt es dafür eine (einfache) Lösung oder muss ich dafür die ganzen Elemente einmal selbst als Plugin neu erstellen?

 

Nicht getestet und ein bisschen dirty: Dem Element eine eigene CSS-Klasse mitgeben, dafür gibt es ja ein Feld in den Elementen der Einkaufswelten.

Dann müsstest du im Template des Elements über {$element.cssClass} auf diese Klasse zugreifen können und sie irgendwo als ID hinterlegen können. Falls du die CSS Klasse schon nutzt müsste man auch zwei Klassen mit Leerzeichen getrennt einfügen können. Wobei Sprungmarken bei den Ajax-Einkaufswelten vermutlich eh nicht funktionieren, oder?

Für ein eigenes Feld müsstest du eine ExtJS Erweiterung der jeweiligen Elemente machen und die Speicherung usw. aus selbst vornehmen.

1 Like

Hallo,

ich halte den Vorschlag von t2oh4e auch für das sinnvollste und vorallem updatesicherste (eigene CSS-Klasse für das Element, die man ja seit Shopware 5.2 festlegen kann). Man kann dann ja einfach im Rahmen eines eigenen Shopware Plugins diese individuelle Klasse so verarbeiten, das er daraus beispielsweise eine ID macht, die man so anspringen könnte. Wobei der Einwand von t2oh4e natürlich berechtigt ist, dadurch, das Einkaufswelten per Ajax nachgeladen werden, wird eine Sprungmarke schwierig umsetzbar werden (diese Sprungmarken dürften dann ja erst “aktiv” sein, wenn alle Einkaufswelten dargestellt wurden.

Beste Grüße

Sebastian

1 Like

Danke für eure Hilfe. Das mit der CSS-Klasse hatte ich auch schon angedacht, hatte nur nicht die richtige Variable zur Hand gehabt, weil die CSS-Klasse ja direkt in die Variable $itemCls angehangen wird. Mit $element.cssClass funktioniert dies aber. Danke.

Auf das Problem mit dem Nachladen von Inhalten durch JavaScript ist mit auch schon aufgefallen. Eine JavaScript-Lösung habe ich hier gefunden:https://forum.shopware.com/discussion/40254/link-auf-einkaufswelt-mit-anker