hallo, angenommen ich möchte in der plugin-konfiguration ein select anbieten, welches z.b. alle verfügbaren bestellstati liefert. http://wiki.shopware.de/_detail_891.htm … F_Combobox wie kann ich das dynamisch machen? zumal ich, solange das plugin nicht aktiv ist, keinen eigenen controller habe. in s_core_config_elements werden ja die options fest gespeichert. btw: das beispiel mit dem buttonhandler funktioniert nicht…
versuch’s mal so: $sql = "SELECT `id`, `description`, `group` FROM `s_core_states` ORDER BY `position`"; $states = Shopware()-\>Db()-\>query($sql); $clearedArray = array(); $statusArray = array(); foreach($states as $k=\>$v){ if($v['group'] == 'payment'){ $clearedArray[] = array($v['id'],$v['description']); }else{ $statusArray[] = array($v['id'],$v['description']); } } [...] $form-\>setElement('select', 'status', array( 'label' =\> 'Bestellstatus:', 'store' =\> $statusArray, 'required'=\>true, 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP) ); $form-\>setElement('select', 'cleared', array( 'label' =\> 'Zahlungsstatus:', 'store' =\> $clearedArray, 'required'=\>true, 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP) );
so in etwa mache ich es ja auch, aber dann sind die werte statisch an die plugin-konfiguration gebunden. was machst du, wenn du einen neuen status in s_core_states einfügst und diesen dann deinem plugin zuweisen möchtest? de- und wieder neuinstallation des plugins ist keine option.
ach so, verstehe. du willst es nach der installation dynamisch halten. Ich glaube das geht nur über einen eigenen Controller/View, der dann die Tabelle dynamisch ausließt. Vielleicht könntest du das ganze auch in die enable- und nicht in die install-Methode schreiben. dann brauchst du das Plugin nur einmal de- und dann wieder aktivieren. Weiß aber nicht ob das mit den Formularen funktioniert…
nee, alles unbefriedigend … und wie gesagt, bei erst-installation ist das plugin ja noch nicht aktiv und damit sind eigene contoller nicht möglich … im veyton (ich weiß … böser böser feind) gibt man dazu einfach in der installer.xml <type>dropdown</type><url>status:order_status</url>
an.
[quote=“bui_ak”] angenommen ich möchte in der plugin-konfiguration ein select anbieten, welches z.b. alle verfügbaren bestellstati liefert. [/quote] Is zwar schon was älter, aber falls dennoch nochmal jemand die Bestellstati in seinem Modul/Plugin braucht: $form-\>setElement('select', 'paypalStatusId', array( 'label' =\> 'Zahlstatus nach der kompletter Zahlung', 'value' =\> 12, 'store' =\> 'base.PaymentStatus', 'displayField' =\> 'description', 'valueField' =\> 'id', 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP ));
(Quelle: engine/Shopware/Plugins/Default/Frontend/SwagPaymentPaypal/Bootstrap.php) Für das Problem mit der dynamischen Selectbox habe ich noch keine Lösung - aber sobald ich mehr weiß, lass ich es euch wissen.