Backend-Plugin: Shopware.window als Panel für Tabs nutzen?

Hallo!

Ich würde gerne in einem Shopware.window über mehrere unterschiedliche Tabs verschiedene selbsterstellte Models in Listen laden.

Ich bin dafür die Developer Doku zu Shopware 5 für die Entwicklung von Backend-Modulen durchgegangen.

Hier wird einen Shopware.window.Listing ein Model zugewiesen mittels listingGrid und listingStore.

 

Ích habe nun aber unterschiedliche Models die ich gerne in verschiedenen Tabs auf dem Window anzeigen würde. Beide Models sollen als Listen dargestellt werden, da sie Daten aus eigenen Datenbank-Tabellen enthalten.

Hierzu fehlen mir Infos aus der Doku. Gibt es so etwas wie ein “Grundgerüst”, um einem Shopware.window ein TabPanel zuzuweisen, und jedem Tab ein unterschiedliches Model, das als Inhalt geladen werden soll?

Hi,

im Standard ist es so, dass das Shopware.window.Listing für die Darstellung typischer Listen-Situationen optimiert ist. Wenn ich dich richtig verstehe, soll das Hauptfenster deiner App aber jetzt direkt zwei Tabs haben. Das geht mit den Backendkomponenten erstmal nicht. 

Deine Möglichkeiten sind:

  1. Ganz normale ExtJS-Applikation ohne die BackendKomponenten - dadurch musst du mehr selber machen, hast aber die volle Kontrolle
  2. Du schaust dir den Source von Shopware.window.Listing an und überschreibst in deiner Implementierung die passenden Methode, so dass du ein TabPanel einfügen kannst. Die createItems /backend/article/controller/main.js wäre da eine Möglichkeit. Nachteil hier ist, dass du die Backendkomponenten quasi durch Overrides patcht, da musst du dich also mit deren Funktionsweise näher beschäftigen und dann sehr gezielt Erweiterungen vornehmen.

Ich an deiner Stelle würde da vermutlich eine „normale“ ExtJS-Applikation schreiben, das erscheint mir am saubersten.

Übrigens: Falls es um die Detaildarstellung geht (nach dem Drücken des Bleistiftes): Hier kannst du weitere Tabs sehr einfach mit sog. „Associations“ anfügen, vgl hier. Aber du meinst ja das Listing-Window - da geht es nicht so leicht (s. oben).