Eigene Kategorieattribute: Reihenfolge der Attribut-Eingabefelder im Backend festlegen

Hallo Zusammen,

ich habe mir mehrere Plugins für die Kategorien geschrieben, die eigene Kategorie Attribute verwenden, die man 
im Backend unter den Kategorien eingeben kann.

Jetzt ist die Reihenfolge der Eingabefelder dieser Kategorieattribute im Backend vollkommen durcheinander.
Ich würde die Reihenfolge der Attributeingabefelder gerne etwas logischer gestalten.

Wie kann ich die Sortierung der Attributeingabefelder im Backend für die Kategorien festlegen?

Danke und viele Grüsse

Jens

Leider hat mein Pluginentwickler keine Ahnung und ist unzuverlässig :slight_smile:

Daher meine Frage hier.

Schon klar :slight_smile:

Ich habe die Plugins halt in loser Reihenfolge um Kategorieattribute erweitert, was sich nicht gerade positiv auf die
Sortierung der Attributeingabefelder im Backend ausgewirkt hat.

@SB schrieb:

na dann solltest du das entsprechend als entwickler „fixen“ :wink: hier wird dir kaum jemand ohne glaskugel helfen können wenn nicht klar ist was du dir da zusammengefrickelt hast. also ein vollkommen unnötiger beitrag der der community auch kaum weiterhelfen wird.

Sehe ich nicht so. Es wird ja wohl jemand wissen nach welchen Kriterien der Reihenfolge der Attribut-Eingabefelder im Backend festgelegt wird. 
Das liegt nicht in meinem direkten Einflussbereich, denn ich schreibe die neuen Attributfelder nur per crud Service in die Datenbank.
Das Backend habe ich nicht angerührt.

Die Reihenfolge scheint nicht nach Datum/Zeit des Anlegens und auch nicht alphabetisch zu sein.
Aber irgendwie muss die Reihenfolge im Backend deterministisch festgelegt werden. Wenn mir jemand sagt, wie die Sortierung funktioniert,
wäre ich schon glücklich.

@SB: Wenn Du meine Anfrage für „unnötig“ hälst, darfst Du sie gerne ignorieren :slight_smile:

Ich habe die Attribute im Backend ganz normal per crud Service nach dem Shopware Manual angelegt:

    public function install(InstallContext $context)
    {
        $service = $this->container->get('shopware_attribute.crud_service');

        //IMAGE 1
        $service->update('s_categories_attributes', 'my_catdesc_image_1_active', 'boolean', [
            'label' => 'CatDesc: Bild 1 Aktiv',
            'displayInBackend' => true
        ],null,false,0); //last element is default value

        $service->update(
            's_categories_attributes',
            'my_catdesc_image_1',
            \Shopware\Bundle\AttributeBundle\Service\TypeMapping::TYPE_SINGLE_SELECTION,
            [
                'entity' => \Shopware\Models\Media\Media::class,
                'label' => 'CatDesc: Bild 1 in Kategoriebeschreibung',
                'displayInBackend' => true,
                'supportText' => 'CatDesc: Bild 1',
                'translatable' => false,
            ]
        );

        //TEXT 1
        $service->update('s_categories_attributes', 'my_catdesc_text_1_active', 'boolean', [
            'label' => 'CatDesc: Text 1 Aktiv',
            'displayInBackend' => true
        ],null,false,0); //last element is default value


        $service->update('s_categories_attributes', 'my_catdesc_text_1', 'html', [
            'label' => 'CatDesc: Text 1',
            'displayInBackend' => true
        ]);


        return true;
    }

 Freue mich über wohlgemeinte Antworten!

Ciao,

Jens

Also das Model hat definitiv auch einen Wert für „Position“: shopware/Configuration.php at 5.5 · shopware/shopware · GitHub

Anhand dieses Wertes wird die Reihenfolge im Backend definiert.

 

1 „Gefällt mir“

@SB schrieb:

https://de.shopware.com/partner

beantworten dir das sicher gerne - falls geiz das problem ist selbst fixen :-) 

ps. leider sieht man hier tagtäglich immer öfter händler (ce edition on top?), die alles haben - aber nix zahlen wollen. vorher aber bereit in a+++ lage für irgendwelche immobilien zig tausend euro ausgeben können. damit es auch jeder auf dem planeten versteht: die empfänger für a+++ lage haben sich vielleicht geändert - das prinzip an sich ändert sich jedoch nicht. das internet ist halt nicht für lau, auch wenn das manche hier immer noch glauben.

man könnte hier in diversen fällen helfen - schaut man sich die beiträge diverser user und deren intention hier an (geiz ist geil) hat man halt irgendwann keinen bock mehr …

 

1 „Gefällt mir“

Danke Moritz, genau danach habe ich gesucht.

Gruss

Jens

Kleiner Nachtrag für alle, die das gleiche Problem haben.

Ich war etwas blind. Die Lösung steht auf der Developer’s Seite im Beispielcode:

https://developers.shopware.com/developers-guide/attribute-system/

  $service->update('s_articles_attributes', 'my_column', 'combobox', [
            ...

            //numeric position for the backend view, sorted ascending
            'position' => 100,

            ...
            ],
        ]);

Und der Vollständigkeit halber: In der Datenbank steht der position Wert in der Tabelle “s_attribute_configuration” in der Spalte “position”

Ciao,

Jens

1 „Gefällt mir“