Mehrfach-Auswahlfeld in Theme.php mit Store möglich?

Hallo liebe shopware - Gemeinde,

gibt es für die Theme.php die Möglichkeit (Theme.php), nicht nur ein einfaches Auswahlfeld (wie beispielsweise der „Zoomfaktor der Bildbox (Lightbox“)) zu erstellen, sondern ein Mehrfach-Auswahlfeld, so wie es auch in der Plugin-Konfiguration möglich ist?

Es gibt ja:

createSelectField()

Gibt es da eventuell ein Attribute, beispielsweise multiple? Sodass die Werte dann beispielsweise so abgelegt sind: 5,6,7,8 (Artikeln, Kategorien, Hersteller oder ähnliches). Kann man da auch auf einen Store zugreifen, wenn ja wie?

Beste Grüße

Sebastian

//create elements for loadingIndicatorFieldset
        $MYSELECT = $this->createSelectField(
            ‚MY-SELECT-FIELD‘,
            ‚SUCHE AUS‘,
            ‚default‘,
            [
                [‚value‘ => ‚default‘, ‚text‘ => ‚Standard‘],
                [‚value‘ => ‚circle‘, ‚text‘ => ‚Kreis‘],
                [‚value‘ => ‚square‘, ‚text‘ => ‚Quadrat‘],
                [‚value‘ => ‚octagon‘, ‚text‘ => ‚Oktagon‘],
            ]
        );

@steinsoftware schrieb:

//create elements for loadingIndicatorFieldset
        $MYSELECT = $this->createSelectField(
            ‚MY-SELECT-FIELD‘,
            ‚SUCHE AUS‘,
            ‚default‘,
            [
                [‚value‘ => ‚default‘, ‚text‘ => ‚Standard‘],
                [‚value‘ => ‚circle‘, ‚text‘ => ‚Kreis‘],
                [‚value‘ => ‚square‘, ‚text‘ => ‚Quadrat‘],
                [‚value‘ => ‚octagon‘, ‚text‘ => ‚Oktagon‘],
            ]
        );

Hallo steinsoftware,

danke für die Antwort.

Dein Fall ist doch aber genau das, was ich nicht suche. Ich möchte ja kein normales Auswahlfeld (bei dir kann man dann ja nicht sowohl den ersten als auch den zweiten Wert in das Feld auswählen), sondern das man dann im Auswahlfeld beispielsweise ‚default‘ und’circle’ stehen hat (eben ein Mehrfach-Auswahlfeld).

Beste Grüße

Sebastian

Oh OK, sry.

Keine Ahnung. Selbst schreiben wahrscheinlich…

Hallo @sschreier‍,

die Antwort von @steinsoftware‍ ist schon gar nicht so weit vom Ziel entfernt. Es muss nur noch ein weiterer Parametwer angehangen werden, der weitere Properties auf die ExtJS Komponente setzt. Was du suchst ist die Property “multiSelect” (siehe: http://docs.sencha.com/extjs/4.1.1/#!/api/Ext.form.field.ComboBox-cfg-multiSelect):

$MYSELECT = $this->createSelectField(
    'MY-SELECT-FIELD',
    'SUCHE AUS',
    'default',
    [
        ['value' => 'default', 'text' => 'Standard'],
        ['value' => 'circle', 'text' => 'Kreis'],
        ['value' => 'square', 'text' => 'Quadrat'],
        ['value' => 'octagon', 'text' => 'Oktagon'],
    ],
    [
	    'attributes' => [
		    'multiSelect' => true
	    ]
    ]
);

Schau mal in unseren Theme.php Guide beim Punkt “Further customization” vorbei: https://developers.shopware.com/designers-guide/configuration-using-theme-php/#further-customization

Viele Grüße,
Stephan Pohl  Shopware

@Stephan Pohl schrieb:

Hallo @sschreier‍,

die Antwort von @steinsoftware‍ ist schon gar nicht so weit vom Ziel entfernt. Es muss nur noch ein weiterer Parametwer angehangen werden, der weitere Properties auf die ExtJS Komponente setzt. Was du suchst ist die Property „multiSelect“ (siehe: http://docs.sencha.com/extjs/4.1.1/#!/api/Ext.form.field.ComboBox-cfg-multiSelect):

$MYSELECT = $this->createSelectField(
‚MY-SELECT-FIELD‘,
‚SUCHE AUS‘,
‚default‘,
[
[‚value‘ => ‚default‘, ‚text‘ => ‚Standard‘],
[‚value‘ => ‚circle‘, ‚text‘ => ‚Kreis‘],
[‚value‘ => ‚square‘, ‚text‘ => ‚Quadrat‘],
[‚value‘ => ‚octagon‘, ‚text‘ => ‚Oktagon‘],
],
[
‚attributes‘ => [
‚multiSelect‘ => true
]
]
);

Schau mal in unseren Theme.php Guide beim Punkt „Further customization“ vorbei: https://developers.shopware.com/designers-guide/configuration-using-theme-php/#further-customization

Viele Grüße,
Stephan Pohl  Shopware

Hallo Stephan,

danke für deine Antwort, genau dieses Attribut hatte ich gesucht. Kannst du mir noch einen Tipp geben, wie ich beispielsweise den Store des Herstellers oder der Kategorien anspreche, statt eigene Werte zu setzen?

Die Dokumentation dazu ist mir schon bekannt Halo.

Beste Grüße

Sebastian

Hey @sschreier‍,

ich würde einfach mal probieren einen Base Store reinzureichen. Die “store”-Property erwartet eigentlich ein Array. Probiere mal den Store über die Store-ID reinzureichen, sprich “base.Supplier”. Ich bin mir hier nicht sicher, ob dies funktioniert.

Viele Grüße,
Stephan Pohl  Shopware

@Stephan Pohl schrieb:

Hey @sschreier‍,

ich würde einfach mal probieren einen Base Store reinzureichen. Die „store“-Property erwartet eigentlich ein Array. Probiere mal den Store über die Store-ID reinzureichen, sprich „base.Supplier“. Ich bin mir hier nicht sicher, ob dies funktioniert.

Viele Grüße,
Stephan Pohl  Shopware

Hallo Stephan,

leider will es nicht so recht funktionieren. Der Multiselect - Parameter funktioniert, der Store irgendwie nicht:

$supplier = $this->createSelectField(
     'dispatch',
     'Versand',
     '',
     ['attributes' => [
          'lessCompatible' => false,
          'anchor' => '100%',
          'multiSelect' => true,
          'store' => 'base.Dispatch'
     ]]
);

Ich habe es auch schon in mehreren Varianten probiert, der Store-Inhalt wird einfach nicht geladen. Lege ich einen Array - Store an, klappt es natürlich. Das bringt mir aber nichts. Hast du noch eine Idee oder hab ich den Store falsch platziert?

Beste Grüße

Sebastian