# Eigene Elemente für die Einkaufswelten erstellen

**URL:** <https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [27. Oktober 2012 um 15:02 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460 "2012-10-27T15:02:26Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![flo](https://avatars.discourse-cdn.com/v4/letter/f/b38774/32.png) [@flo](https://forum.shopware.com/u/flo)\
**Post date:** [27. Oktober 2012 um 15:02 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/1 "2012-10-27T15:02:26Z")

</div>

Hallo, kann mir jemand helfen und einen Ansatz liefern, wie man eigene Elemente für das Einkaufswelten-Dashboard schreiben kann? In der Auswahl gibt es ja Standard-Elemente und Third-Party-Elemente. Irgendwie muss es ja also einen Weg gehen, der so vorgesehen ist. 🙂 Unter diesem Link [http://wiki.shopware.de/Einkaufswelten\_detail\_819.html](http://wiki.shopware.de/Einkaufswelten%5C_detail%5C_819.html) steht leider nur: [quote]Um die Individualisierung und Anpassbarkeit der Einkaufswelten für Sie als Shopbetreiber aber auch als Agentur so flexibel wie möglich zu gestalten, haben wir uns einiges an Gedanken gemacht und möchten Ihnen gerne kurz & knapp die Möglichkeiten aufzeigen. Eigene Elemente definieren In der finalen Version der Einkaufswelten haben Sie die Möglichkeit eigene Elemente anzulegen. Egal ob Sie einen Bannerslider, eine Facebook-Integration, einen Twitter-Newsstream oder die Topseller anzeigen möchten. Es stehen Ihnen hier alle Wege offen.[/quote] Wie man das angeht, steht dort leider nicht und direkt in der Basis programmieren will ich der Updates wegen nicht. \*schnief\*

---

<div class="post-metadata">

**Author:** ![4now](https://avatars.discourse-cdn.com/v4/letter/4/49beb7/32.png) [@4now](https://forum.shopware.com/u/4now)\
**Post date:** [27. Oktober 2012 um 17:35 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/2 "2012-10-27T17:35:11Z")

</div>

Damit war gemeint das man jetzt im Backend unter Marketing/ Einkaufswelt im Designer eigene Elemente wie die Banner Html-Elemente I Frame Elemente usw in die Einkaufswelt ziehen kann. In der Betaversion waren das noch viel weniger unterschiedliche Elemente.

---

<div class="post-metadata">

**Author:** ![flo](https://avatars.discourse-cdn.com/v4/letter/f/b38774/32.png) [@flo](https://forum.shopware.com/u/flo)\
**Post date:** [27. Oktober 2012 um 17:52 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/3 "2012-10-27T17:52:46Z")

</div>

Kein Problem, aber das ändert ja nichts an der Frage. 😉 Wie kann man sauber eigene Elemente erstellen?

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [28. Oktober 2012 um 08:52 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/4 "2012-10-28T08:52:16Z")

</div>

Da warte ich auch drauf. Ein Tutorial wie man das programmiert…

---

<div class="post-metadata">

**Author:** ![advisamedia](https://avatars.discourse-cdn.com/v4/letter/a/958977/32.png) [@advisamedia](https://forum.shopware.com/u/advisamedia)\
**Post date:** [8. November 2012 um 14:17 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/5 "2012-11-08T14:17:45Z")

</div>

Die Erstellung von eigenen Elementen ist eigentlich ganz einfach. Nehmen wir (zu Demonstrationszwecken) einmal an, man möchte Farbfeld-Element erstellen. Das Element soll in der Einkaufswelt einen farbige Fläche darstellen. Das Element kann mit Hilfe eines HEX-Wertes (z.B. #336699) konfiguriert werden. [size=200]// 1. Tabelle „s\_library\_component“[/size] In der Datenbank erstellt man zunächst in der Tabelle „s\_library\_component“ einen neuen Eintrag. Es sind für ein so einfaches Element lediglich die folgenden Werte notwendig: [color=blue]name =\> Farbfeld template =\> component\_color cls =\> color-element[/color] Die ID bitte nicht ausfüllen, da diese auto-increment ist und somit automatisch vergeben wird. Nach Speicher des Eintrages merkt man sich die ID (z.B. „12“) der neuen Komponente. [size=200]// 2. Tabelle „s\_library\_component\_field“[/size] In der Tabelle „s\_library\_component\_field“ legt man nun das zugehörige Feld für das Abspeichern des HEX-Wertes an: [color=blue]componentID =\> 12 name =\> color\_hex\_value x\_type =\> textfield field\_label =\> Hexwert[/color] Alle nicht genannten Felder sind optional und brauchen für dieses Beispiel nicht ausgefüllt zu werden. [size=200]// Element-Template erstellen[/size] Damit der Hex-Wert auch im Frontent angezeigt wird, müssen wir noch ein passendes Template erstellen. Dazu sollte man die Ordner-Struktur im eigenen Template-Ordner replizieren, um vor späteren Updates geschützt zu sein. Man legt also zunächst folgende Ordner-Struktur an: [color=blue]SW-ROOT/templates/emotion\_DeinTemplate/widgets/emotion/components[/color] Darin erstellt man nun ein Tempalte, welches wir bereits bei der Anlage des Komponente in der Datenbank in Schritt 1 „component\_color“ benannt haben. Die Datei heißt also „component\_color.tpl“. Darin schreibt man: [code]

[/code] Fertig. Damit sollte man in der Lage sein aufwendigere Komponenten anzulegen. Bei den verschiedenen/möglichen Feld-Typen orientiert man sich am besten an den bestehenden Komponenten. Anmerkung: Ich bin Shopware-Einsteiger und kein Profi! Ich kann nicht ausschließen, dass diese Art der Erstellung von Einkaufswelt-Elementen an irgendeiner Stelle Probleme bereitet. Bei mir hat’s jedenfalls funktioniert.

---

<div class="post-metadata">

**Author:** ![Patrick\_Bittner](https://avatars.discourse-cdn.com/v4/letter/p/db5fbb/32.png) [@Patrick\_Bittner](https://forum.shopware.com/u/Patrick_Bittner)\
**Post date:** [10. November 2012 um 11:12 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/6 "2012-11-10T11:12:29Z")

</div>

Hallo zusammen, ich wollte jedes Widget um die Möglichkeit einer CSS ID und CSS Klasse erweitern und habe dazu, ähnlich wie oben beschrieben, erweitert. Der Container ($Data) enthält nur nicht meine zusätzlichen Felder, gibt es irgendwo einen Cache oder muss ich was erweitern? // Hat sich erledigt, war nen Cache Problem (denke ich).

---

<div class="post-metadata">

**Author:** ![bbene](https://avatars.discourse-cdn.com/v4/letter/b/9de0a6/32.png) [@bbene](https://forum.shopware.com/u/bbene)\
**Post date:** [13. November 2012 um 14:54 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/7 "2012-11-13T14:54:07Z")

</div>

für weitere Änderungen ist der Controller engine/Shopware/Controllers/Widgets/Emotion.php wichtig. Dessen Funktionen werden über das Tabellenfeld convert\_function angesprochen.

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [17. Januar 2013 um 13:20 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/8 "2013-01-17T13:20:44Z")

</div>

Wie kann ich denn einen eigenen Controller ansprechen oder zumindest eine eigene Controllerfunktion hinzufügen? Direkt in die genannte Datei einzugreifen dürfte nicht updatesicher sein.

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [14. Februar 2013 um 10:26 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/9 "2013-02-14T10:26:45Z")

</div>

\*schieb\*

---

<div class="post-metadata">

**Author:** ![Almare](https://avatars.discourse-cdn.com/v4/letter/a/a87d85/32.png) [@Almare](https://forum.shopware.com/u/Almare)\
**Post date:** [13. August 2013 um 23:32 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/10 "2013-08-13T23:32:54Z")

</div>

Hier gibt es Infos dazu [Widgets fürs Frontend erstellen](http://wiki.shopware.de/Einsteiger-Listing-Verfuegbarkeitspruefung%5C_detail%5C_1027.html) Jetzt nur noch dire Frage wie ich dem Widget eine eigene Css Datei spendiere…

---

<div class="post-metadata">

**Author:** ![mmmichael](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mmmichael](https://forum.shopware.com/u/mmmichael)\
**Post date:** [27. September 2013 um 11:49 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/11 "2013-09-27T11:49:45Z")

</div>

Hallo, hab erfolgreich ein statisches Widget erstellt, was ja echt einfach geht. Wie geht das ganze jetzt aber, wenns dynamisch werden soll? Dafür gibts ja in der Tabelle s\_library\_component die “convert\_function” Spalte. Nur wo kann ich meine eigene Funktion unterbringen? Am einfachsten wär jetzt ja ein “extends Shopware\_Controllers\_Widgets\_Emotion”, nur das ist so ja nicht (mehr) vorgesehen, oder? Gruß, Michael

---

<div class="post-metadata">

**Author:** ![wingover](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wingover](https://forum.shopware.com/u/wingover)\
**Post date:** [8. November 2013 um 19:54 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/12 "2013-11-08T19:54:41Z")

</div>

Hallo, auch mal schieb… 😉 Gibt’s hier schon was neues? Ich versuche auch gerade eine eigene convert\_function unterzubringen, ohne die Emotion.php zu verändern. Ich habe gesehen, daß ja doch der eine oder andere eigene Elemente für die Einkaufswelten erstellt. Vielleicht wäre es eine gute Idee, hier irgendwo im Forum (oder auch im Store) einen Platz zu schaffen, wo man seine Elemente anderen zur Verfügung stellen kann, wenn man möchte. Viele Grüße Andi

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [8. November 2013 um 20:06 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/13 "2013-11-08T20:06:00Z")

</div>

Mit SW 4.2 soll es möglich werden eigene Einkaufswelten-Elemente per Plugin zu erstellen. Ob das tatsächlich bis zu der Version klappt und wie das genau aussehen wird kann ich nicht sagen.

---

<div class="post-metadata">

**Author:** ![wingover](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wingover](https://forum.shopware.com/u/wingover)\
**Post date:** [9. November 2013 um 16:26 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/14 "2013-11-09T16:26:16Z")

</div>

Hallo Andre, danke für Deine Antwort… 🙂 Erstellen via Plugin geht ja jetzt schon, allerdings mit Einschränkungen (z.B. eigene convert\_function), so wie ich das sehe. Dann ändere muß ich jetzt wohl erst mal die Emotion.php direkt verändern, bis es eine andere Lösung gibt. Viele Grüße Andi

---

<div class="post-metadata">

**Author:** ![edin](https://avatars.discourse-cdn.com/v4/letter/e/f0a364/32.png) [@edin](https://forum.shopware.com/u/edin)\
**Post date:** [16. Januar 2014 um 15:37 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/15 "2014-01-16T15:37:27Z")

</div>

Hi, hat jemand von euch herausfinden können wie man die eigene convert\_functiont einfügen kann, ohne Emotion Klasse zu überschreiben? Mein Problem ist, dass ich vier Blog Kategorien habe, und wenn ich das Blog Widget nehme, um die neuesten drei Inhalte auf der Startseite einfüge, werden diese aus allen Blogs gewählt. Ich möchte aber dass nur Blog „News“ berücksichtigt wird. Ich könnte also jetzt getBlogEntry in Emotions.php überschreiben. Oder ich erstelle ein eigenes Widget. Ich brauche aber eigene convert\_function um die Query anzupassen, so dass nur das gewünschte Blog berücksichtigt wird. Kann mir jemand da helfen? Würde ungern Core Klassen überschreiben. Viele Grüße, Edin

---

<div class="post-metadata">

**Author:** ![Q2E\_GmbH](https://avatars.discourse-cdn.com/v4/letter/q/3d9bf3/32.png) [@Q2E\_GmbH](https://forum.shopware.com/u/Q2E_GmbH)\
**Post date:** [17. Januar 2014 um 13:56 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/16 "2014-01-17T13:56:41Z")

</div>

Hallo edin, wenn ich das richtig verstanden habe, kann die convert Funktion nicht für eigene Einkaufswelten Elemente verwendet werden. Was du hierfür brauchst ist eine eigene ExtJS Komponente ( eigener x\_type ): \* hier noch ein älterer Foreneintrag, dessen Infos mir selbst weitergeholfen haben [programmierung-f56/plugin-einkaufswelt-eigene-extjs-komponente-t11876-10.html?hilit=Eigene%20Einkaufswelt%20Elemente](http://forum.shopware.de/programmierung-f56/plugin-einkaufswelt-eigene-extjs-komponente-t11876-10.html?hilit=Eigene%20Einkaufswelt%20Elemente) \* im Wiki gibt es dazu folgendes Tutorial [http://wiki.shopware.de/Experten-Eigene … l\_959.html](http://wiki.shopware.de/Experten-Eigene-Einkaufswelten-Elemente-erstellen%5C_detail%5C_959.html) Lg

---

<div class="post-metadata">

**Author:** ![edin](https://avatars.discourse-cdn.com/v4/letter/e/f0a364/32.png) [@edin](https://forum.shopware.com/u/edin)\
**Post date:** [17. Januar 2014 um 20:00 UTC](https://forum.shopware.com/t/eigene-elemente-fur-die-einkaufswelten-erstellen/9460/17 "2014-01-17T20:00:16Z")

</div>

Hi, werde ich mir mal anschauen, danke dir! Ein schönes WE
