# Multiselect in Plugin Combobox

**URL:** <https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354>\
**Category:** Programmierung\
**Created:** [26. April 2016 um 17:08 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354 "2016-04-26T17:08:51Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [26. April 2016 um 17:08 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/1 "2016-04-26T17:08:51Z")

</div>

Nabend zusammen,

ich habe da mal eine Frage bezüglich der Plugin Optionen Komponenten: In einem Plugin habe ich gesehen, dass man innerhalb einer combobox mehrere Einträge auswählen kann.  
Welchen Wert muss man der Komponente mitgeben bei der initialisierung? Oder gibt es noch eine weitere Komponente die nicht in der Doku steht?

Vielen Dank für jegliche Tips im voraus!

Daniel

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [27. April 2016 um 05:12 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/2 "2016-04-27T05:12:31Z")

</div>

multiSelect=\> true 🙂

---

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [27. April 2016 um 05:41 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/3 "2016-04-27T05:41:32Z")

</div>

Oh mann!

Besten Dank Shyim! ![Grin](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/grin.png "Grin")  
&nbsp;

---

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [27. April 2016 um 19:45 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/4 "2016-04-27T19:45:19Z")

</div>

Hallo,

jetzt habe ich dazu leider nochmal eine Frage: Wie kann denn nun auf das Array zugegriffen werden?!?  
Die Variablen sind ja im Config Objekt allerdings kann auf das \_data Array nicht zugegriffen werden, da es protected ist?

Ich habe leider keine Funktion in der Enlight\_Config Klasse gefunden um die Daten abzugreifen.

Man könnte das ganze zwar über die DB abgreifen, aber es muss doch einen schickeren Weg dafür geben?

Daniel

---

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [30. April 2016 um 11:40 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/5 "2016-04-30T11:40:34Z")

</div>

So, nochmal ein kurzes Update.  
Ich hole mir jetzt die Werte der Combobox umständlich über die Datenbank. Funktioniert zwar einwandfrei, aber irgendwie glaub ich noch nicht so recht das bei Shopware “vergessen” wurde, auf Mutliselections zuzugreifen?!?

Daniel

---

<div class="post-metadata">

**Author:** ![Creatixx](https://avatars.discourse-cdn.com/v4/letter/c/c67d28/32.png) [@Creatixx](https://forum.shopware.com/u/Creatixx)\
**Post date:** [30. April 2016 um 12:07 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/6 "2016-04-30T12:07:01Z")

</div>

Du kannst doch über&nbsp;$this-\>Config()-\>get(‚mein\_config\_name‘); direkt auf das Konfigurationselement zugreifen oder verstehe ich dir hier falsch?

---

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [30. April 2016 um 12:35 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/7 "2016-04-30T12:35:03Z")

</div>

Ja, das geht auch Problemlos. Nur nicht bei einer Combobox mit multiselect auf true gesetzt. Da ist das Feld dann leer. Das \_data Objekt hat aber bei Ausgabe ein Array mit den gesetzten Werten. Man kann da nur nicht drauf zugreifen.

Daniel

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [8. Mai 2016 um 21:25 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/8 "2016-05-08T21:25:24Z")

</div>

> [@DannyDan schrieb:](https://forum.shopware.com/profile/21354/DannyDan "DannyDan")
> 
> Ja, das geht auch Problemlos. Nur nicht bei einer Combobox mit multiselect auf true gesetzt. Da ist das Feld dann leer. Das \_data Objekt hat aber bei Ausgabe ein Array mit den gesetzten Werten. Man kann da nur nicht drauf zugreifen.
> 
> Daniel

Hallo,

bist du bei dem Punkt schon weiter gekommen? Ich hänge auch bei dem \_data - Problem, hab aber auch noch keine Vorlage von Shopware gefunden, die das Thema bespricht. Das data-Feld ist auf jeden Fall mit den entsprechenden Werten befüllt: [\_data:protected] =\> Array ( [0] =\> 5 [1] =\> 4 ) . @DannyDan‍ , wie holst du dir die Werte denn über die Datenbank? Über die Plugin-ID und dann über s\_core\_config\_forms, s\_core\_config\_elements und dann in s\_core\_config\_values?

&nbsp;

In den Grundeinstellungen unter „System“ -\> „Backend“ und bei „Auswählbare Sprachen“ wird es ja auch eingesetzt - nur finde ich dort (logischerweise) keine Frontendausgabe dazu. [@Daniel Nögel]([http://forum.shopware.com/profile/4010/Daniel](http://forum.shopware.com/profile/4010/Daniel) Nögel „Daniel Nögel“)‍ oder [@Stephan Pohl]([http://forum.shopware.com/profile/2/Stephan](http://forum.shopware.com/profile/2/Stephan) Pohl „Stephan Pohl“)‍, habt ihr eventuell eine Idee dazu?

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)\
**Post date:** [9. Mai 2016 um 05:48 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/9 "2016-05-09T05:48:54Z")

</div>

Guten Morgen!

Funktioniert es so?

```
$this->Config()->get('meinElement')->toArray()

```

Alternativ gibt es auf dem Config-Objekt so Iterator-Methoden wie bspw. “next” und “current”.  
Als Beispiel:

```
$config = $this->Config()->get('test');

for ($i=0; $i < $config->count(); $i++) {
   echo $config->current();
   $config->next();
}

```

Hilft das?

Lieben Gruß,  
Patrick ![Shopware](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "Shopware")

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [9. Mai 2016 um 14:30 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/10 "2016-05-09T14:30:17Z")

</div>

> [@Patrick Stahl schrieb:](https://forum.shopware.com/profile/1869/Patrick%20Stahl "Patrick%20Stahl")
> 
> Guten Morgen!
> 
> Funktioniert es so?
> 
> $this-\>Config()-\>get(‚meinElement‘)-\>toArray()
> 
> Alternativ gibt es auf dem Config-Objekt so Iterator-Methoden wie bspw. „next“ und „current“.  
> Als Beispiel:
> 
> $config = $this-\>Config()-\>get(‚test‘);
> 
> for ($i=0; $i \< $config-\>count(); $i++) {  
> echo $config-\>current();  
> $config-\>next();  
> }
> 
> Hilft das?
> 
> Lieben Gruß,  
> Patrick ![Shopware](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "Shopware")

Hallo Patrick,

$this-\>Config()-\>get(‚meinElement‘)**-\>toArray()** ist des Rätsels Lösung. Ich danke dir ![Smile](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/smile.png "Smile").

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![DannyDan](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@DannyDan](https://forum.shopware.com/u/DannyDan)\
**Post date:** [9. Mai 2016 um 15:56 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/11 "2016-05-09T15:56:40Z")

</div>

Ach Mensch. Super!

Zwar ein wenig spät, aber ich bedanke mich trotzdem vielmals für diesen Tipp.  
Das spart schön zwei DB Abfragen. 😉

Gruß

Daniel

---

<div class="post-metadata">

**Author:** ![zenit](https://avatars.discourse-cdn.com/v4/letter/z/a87d85/32.png) [@zenit](https://forum.shopware.com/u/zenit)\
**Post date:** [24. Februar 2017 um 10:57 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/12 "2017-02-24T10:57:13Z")

</div>

Hallo,

wir verwenden ebenfalls toArray() um verschachtelte Arrays im Frontend zur Verfügung zu stellen. Das sieht dann ungefähr so aus:

```
$view->assign('arrayName', array( 				
      'input1Feld' => $this->Config()->get('input1FeldConfig'),
      'selectbox1Inhalt' => $this->Config()->get('selectbox1InhaltConfig')->toArray(),
      'selectbox2Inhalt' => $this->Config()->get('selectbox2InhaltConfig')->toArray(),
      'input2Feld' => $this->Config()->get('input2FeldConfig')
      ) 		
   );
}

```

In der Config legen wir im Standard-Value fest, dass es sich um ein Array handelt - sonst knallts ( 503 Error ) ![Undecided](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/undecided.png "Undecided")

```
$form->setElement('select','selectbox1InhaltConfig',
      [
            'scope' => Shopware\Models\Config\Element::SCOPE_SHOP,
            'label' => 'Label',    
            'store' => array(
                  array('value-1', 'Wert 1'),
                  array('value-2', 'Wert 2'),
                  array('value-2', 'Wert 3')
            ),
            'value' => array(),
            'multiSelect' => true
      ]
);

```

&nbsp;

Jetzt kann es aber passieren, dass in der Config bei der Auswahl Werte nicht korrekt gewählt werden, weil der Nutzer eventuell den Wert eintippt, statt mit der Maus darauf zu klicken. Shopware erkennt hierbei dann keine Zuordnung. Auch dann kann es im Frontend zu einem 503 Fehler kommen.

&nbsp;

Verbesserungsvorschlag?

---

<div class="post-metadata">

**Author:** ![zenit](https://avatars.discourse-cdn.com/v4/letter/z/a87d85/32.png) [@zenit](https://forum.shopware.com/u/zenit)\
**Post date:** [27. Februar 2017 um 19:34 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/13 "2017-02-27T19:34:30Z")

</div>

Die Fehlermeldung lautet:&nbsp;

```
Fatal error: Uncaught Error: Call to a member function toArray() on string in /home/vagrant/www/sw-plugins/engine/Shopware/Plugins/Local/Frontend/pluginname/Bootstrap.php on line 750

```

Genauer tritt diese Meldung auf, wenn in einem Multiselect-Feld eine Eingabe gemacht wurde und nicht aus dem Dropdown ausgewählt. Eben&nbsp;einfach immer dann, wenn durch die manuelle Eingabe (per Tastatur) ein String entsteht und kein Array…

---

<div class="post-metadata">

**Author:** ![vanwittlaer](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/vanwittlaer/32/8499_2.png) [@vanwittlaer](https://forum.shopware.com/u/vanwittlaer)\
**Post date:** [24. März 2017 um 08:55 UTC](https://forum.shopware.com/t/multiselect-in-plugin-combobox/36354/14 "2017-03-24T08:55:01Z")

</div>

Hi zusammen,

gibt’s multiselect eigentlich auch im neuen Plugin-System mit der config.xml? In der config.xsd ist das ja nicht vorgesehen. Weiß das jemand?

Danke!  
Geert
