Combobox mit Werten füllen

Hallo, dies ist nun mein vierter Eintrag in kürzester Zeit und ich hoffe, ihr könnt mir auch diesmal helfen. Ich habe ein Backend Plugin erstellt, dass auch wunderbar funktioniert. Ich kann damit Datensätze anlegen, bearbeiten, usw. Diese gebe ich auch im Frontend aus, in dem ich diese per Template ausgebe. Die Datensätze haben „ID“, „Titel“ und „Content“ (wird später relevant) zur Vereinfachung heißt das Plugin einfach „Plugin“. Nun kam mir die Idee, ich könnte diese auch in die Einkaufswelten einbauen. Also habe ich das Modul erweitert mit einer EmotionComponent. Nun wollte ich aber nun die Daten die ich anlege per Backend in eine ComboBox packen (createComboBoxField), damit der Nutzer aus einer Liste der bereits erstellten Elemente auswählen kann. Habe hierfür das Tutorial http://wiki.shopware.de/Eigene-Einkaufs … _1459.html verwendet. Nun zu meinem Problem: Ich habe nirgends eine Anleitung gefunden, wie man die ComboBox mit Werten füllen kann. Auch Google konnte mir hier leider nicht helfen. Ich habe in der createComboBoxField Funktion valueField und displayField angegeben valueField ist die „ID“ und displayField der „Titel“. Als store habe ich dann meine ExtJS Datei angegeben, die ich schon für das Backend-Modul hatte (Plugin/Views/backend/plugin/store/datei.js) und hier hat er dann die Fehlermeldung ausgegeben, dass er die Datei nicht finden kann („Unable to load from backend/index/backend/plugin/store/datei.js“). Ich habe die Datei dann in das Theme kopiert (backend/index/store/datei.js). Doch es kam immer noch die Fehlermeldung „Unable to load from backend/index/store/datei.js“. Nun zu meinen Fragen hierzu: Kann mir bitte jemand erklären, was ich machen muss, damit es funktioniert? Und ist es möglich, die „store“ Datei nicht im Theme oder sonstwo abzulegen sondern im Plugin Ordner, damit alles zusammen ist? Kann ich die gleiche store verwenden oder muss ich hierfür eine neue schreiben? Vielen Dank im voraus und viele Grüße Andreas

Genaue Fehlermeldung:

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

Unable to load template snippet ‚backend/index/datei.js‘ in Smarty/sysplugins/smarty_internal_templatebase.php on line 127

Stack trace:

#0 Enlight/View/Default.php(273): Smarty\_Internal\_TemplateBase-\>fetch() #1 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #2 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #3 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #4 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Controller\_ActionEventArgs)) #5 Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Controller\_ActionEventArgs)) #6 Enlight/Event/EventManager.php(211): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Controller\_ActionEventArgs)) #7 Enlight/Controller/Action.php(202): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Object(Enlight\_Controller\_ActionEventArgs)) #8 Enlight/Controller/Dispatcher/Default.php(528): Enlight\_Controller\_Action-\>dispatch('indexAction') #9 Enlight/Controller/Front.php(228): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #10 Shopware/Kernel.php(141): Enlight\_Controller\_Front-\>dispatch() #11 vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(473): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #12 Shopware/Components/HttpCache/AppCache.php(256): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #13 vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(244): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #14 Shopware/Components/HttpCache/AppCache.php(102): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation\Request), true) #15 shopware.php(91): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #16 {main}

 

Ich habe nun die Antwort gefunden: $component-\>createComboBoxField(array( 'name' =\> 'comobox\_name', 'fieldLabel' =\> 'ComboBox', 'valueField' =\> 'id', 'displayField' =\> 'title', 'store' =\> 'Shopware.apps.Plugin.store.Datei', 'allowBlank' =\> false ));

Hallo, könntest du bitte noch den Inhalt der „datei.js“ hier posten? Ich sitze an einem ähnlichem Problem. MfG deZerver

die Datei.js ist die backend/store/datei.js Weitere Infos hierfür findest du in diesem Tutorial http://wiki.shopware.de/Shopware-Backen … product.js Anhand diesem Tutorial habe ich mein Backend-Module aufgebaut und die Data Store für die Combobox verwendet.

Hallo Andreas, ich habe aktuell ein ähnliches Problem wir Du. Ich habe ein eigenen Modul in dem Ich Daten pflegen kann. Dazu eben auch eine Einkaufswelt Komponente. Wenn ich das Modul im Backend aufrufe und dann die Einkaufswelt Komponente verwendet diese den Store und alles klappt. Wenn ich nun aber die Seite neu lade, in die Einkaufswelten gehe und die Komponente hinzufügfen will passiert folgendes: Action “Backend_SwagProduct_storeAction” not found failure Anscheinend muss man den Store schon vorher laden oder? Danke & Viele Grüße Oliver