Hi, es geht hierbei um die Seite Experten - Eigene Einkaufswelten-Elemente erstellen Ich wollte in mein Plugin das Konfigurationsfeld combobox nutzen. Mir stellt sich nur die Frage wie ich den Store anspreche. Ich habe dazu in mein plugin ein eigenen Store erstellt den ich in der initComponent aufrufe. Leider funktioniert dies so nicht so recht. initComponent: function() { var me = this, store; me.callParent(arguments); store = Ext.create('Shopware.apps.Emotion.store.Sort'); me.createSortCombobox(store); },
Hoffentlich hatte schon jemand diese Thematik DANKE
*push* please help :shopware:
Wie ruf ich den einen bestehenden Store auf? store -> Hier kann ein globaler Store (siehe templates/_default/backend/base/store für die verfügbaren Stores) hinterlegt werden. Bitte nur in Kombination mit der x_type “combobox” verwenden (optional) Laut der Anleitung sollte es mit den Feldern name, x_type, field_label, store, display_field, value_field funktionieren. Dies habe ich mal mit dem Store Shopware.apps.Base.store.Article versucht. Mein Eintrag sieht also wie folgt aus. name = test x_type = combobox field_label = test store = Shopware.apps.Base.store.Article display_field = name value_field = id Soweit wird auch die Comboxbox angezeigt. Nur der zugewiesen Store wird nicht geladen und somit werden keine Einträge angezeigt. Ich bitte um ein Beispiel wie ich dies richtig aufrufe. thx
Hallo liebe Community, ich stehe gerade vor dem selben Problem. Aus der Anleitung zur Erstellung von eigenen Einkaufswelten Elementen konnte ich nicht schlau werden, da dort kein Beispiel für eine Combobox mit eigenem Store bzw. Werten sowie die Implementierung in einem Plugin zu finden ist ( sofern ich es nicht überlesen habe ). Prinzipiell geht is in meinem Fall um Werte aus der Plugin Konfiguration, die ich im Einkaufswelt Element in einer Combobox anzeigen möchte. Beispiel: Plugin Konfiguration mit my_field : index1:wert1,index2:wert2 Jetzt würde ich im Einkaufswelt Element gerne eine Combobox mit den Werten anzeigen. Mir ist soweit klar, dass ich dafür wahrscheinlich einen eigenen Store + Model + Controller benötigen werde, deshalb habe ich das bereits angelegt. Mein Problem bei der Sache ist allerdings, dass ich nicht weiß wie genau ich s_library_component_field.store in der Datenbank setzen muss, damit das Feld automatisch eine Instanz meines Stores verwendet. Kann mir jemand sagen, ob ich dazu irgendwo bereits ein Tutorial finde, bzw. ob ich da in http://wiki.shopware.de/Experten-Eigene … l_959.html oder http://wiki.shopware.de/_detail_959.html irgendetwas überlesen habe? Oder einfach ein Beispiel, welchen Wert ich in das store Feld für meinen Store dieser Form eintragen müsste? Ext.define('Shopware.apps.Emotion.store.MyOwnStore', { /\*\* \* Defines an alternate name for this class. \*/ alternateClassName: 'Shopware.store.EmotionMyOwnStore', /\*\* \* Define unique store id to create the store by the store manager \*/ storeId: 'emotion.MyOwnStore',
Da ich nicht herausgefunden habe, welchen Wert man in der Spalte store eintragen muss um einen eigenen Store verwenden zu können, habe ich dem Element einen eigenen x_type gegeben und über ein app.js am Backend dann das eigenen Feld sowie dessen Store eingebunden. Vielleicht hilft dieser Weg ja auch dem ein oder anderem. 1. s_library_component_field array( 'x\_type'=\> 'emotion-components-my-field', 'value\_type'=\> '', ),
2. Plugin Event in der install() Methode registrieren, sowie die app.js laden // install() $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Emotion', 'onPostDispatchBackendEmotion' ); // onPostDispatchBackendEmotion() $view = $args-\>getSubject()-\>View(); $view-\>addTemplateDir($this-\>Path() . 'Views/'); if ($args-\>getRequest()-\>getActionName() === 'index') { $view-\>extendsTemplate('backend/emotion/<path_to_component>/app.js');
}
- Die JS Dateien anlegen und in der app.js einbinden:
//{block name="backend/Emotion/app" append}
//{include file="backend/emotion/<path_to_component>/store/content.js"}
//{include file="backend/emotion/<path_to_component>/view/components/fields/content_select.js"}
//{/block}
- alles zum eigenen Controller für den Store usw. kann man mMn aus den Tutorials im Wiki nachvollziehen
EIDT:
Sollte jemand Bescheid wissen, wie man das ganze einfacher machen kann, indem man die store Spalte des Feldes korrekt setzt, würde ich mich sehr über eure Hinweise freuen. Meine eigene Lösung scheint doch etwas umständlich…</path_to_component></path_to_component></path_to_component>