Ein paar Fragen zu Plugins, speziell Einkaufswelten..

Ich hätte da mal ein paar Fragen :wink:

1.)
Wenn ich ein Element für die Einkaufswelt erstelle und dann später neue Eingabefelder erstelle, dann zeigt er diese ja auch nach dem Cache leeren nicht an. So weit, so sinnvoll, sollte ja nur bei einem Update oder einer Neuinstallation etc. passieren. 
Aber ein Klick auf Update dafür, das sowohl einmal die alten Eingabefelder und im Anschluß daran die Eingabefelder nochmal plus dem neuen Eingabefeld erscheinen.
Nur eine Neuinstallation sorgt dafür, das die Felder richtig angezeigt werden - dieses sorgt aber dafür das die Elemente in allen Einkaufswelten gelöscht werden und neu angelegt werden müssten. Das ist natürlich nicht tragbar.
Meine Frage: Kann es wirklich sein, das man in der Update-Funktion im Bootstrap wirklich mit irgendwelchen SQL-Statements hantieren muss statt hier irgendeinen Mechanismus zu haben?

2.)
Ich habe anhand des Beispiels des MediaWidgets, das hier im Forum kursierte, eine Bildauswahl in ein Einkaufswelten-Element integriert bekommen, das passt soweit alles auch.
Ich habe also auch die URL zum Bild. Wie kann ich von hier aus jetzt auf die Thumbnails dieses Bildes zugreifen?
In den Variablen finden sich ein thumbnail, welches aber das vom Backend ist, in einer bestimmen Größe, nämlich 140x140.
Ich möchte gerne aber auf die in den Einstellungen der Medienverwaltung hinterlegten Thumbnails zugreifen.
Wie ist dies möglich? Es muss hier doch eine Funktion geben, bei der ich ein Bild angeben kann, und daraufhin bekomme ich ausgegeben, welche Thumbnails zu diesem Bild zur Verfügung stehen um dann das entsprechende zu wählen.

3.)
Es passiert manchmal, das Plugins übereinander liegen in der Gestaltungsansicht der Einkaufswelten. Das sieht man aber erst an einer kaputten Seite und nachdem man die Plugins an eine andere Stelle zieht. Wie ist es möglich das zwei Plugins sich aufs gleiche Feld legen können? 

Zu 1.

Nur die Felder anlegen, die auch neu sind :slight_smile:

Zu 2.

Was hast du genau eingebunden? Die Url bringt dir nicht weiter, du benötigst dabei die ID. Ich habe vor paar Monaten ein PR eingereicht, wo man via Attribute “returnValue”, einstellen kann, dass eine ID zurückgegeben werden soll. Nach dem du die ID hast kann du über die Services die Url + Thumbnail holen.

Zu 3.

Verstehe nicht was du meinst :smiley:

Zu 1

Ja, in der update-Funktion dann halt - weil falls ich es doch mal neu installieren müsste wären ja sonst die anderen verschwunden.

Und wie siehts beim retour aus? Nicht mehr benötigte, unnötige Felder entfernen? Ich hab das Gefühl ich kann das nur mit SQL Statements hinkriegen, aber das fühlr sich falsch an.

 

Zu. 2

Die ID hätte ich, die wird mir da in der Bildauswahl mit ausgegeben im JSON…

{
	"created": "2016-10-18T00:00:00",
	"description": "",
	"extension": "jpg",
	"id": 733,
	"name": "bild",
	"type": "IMAGE",
	"path": "http://example.com/media/image/33/e8/81/bild.jpg",
	"userId": 50,
	"thumbnail": "http://example.com/media/image/32/0e/51/bild_140x140.jpg",
	"width": 700,
	"height": 450,
	"albumId": -2,
	"newAlbumID": "",
	"virtualPath": "media/image/bild.jpg"
}

Wie man sieht auch ein einzige Thumbnail, aber das ist einfach das der Preview-Ansicht des Backends und hat nichts mit den „echten“ Thumbnails zu tun.

Wenn es da doch eine Funktion gibt, dann passt das ja!
Die Funktion, um sich aus einer ID ein Array aller Thumbnails ausgeben zu lassen etc. habe ich aber leider nicht gefunden. Danach habe ich sehr lange gesucht.

Würdest du mir ggf. einen Hinweis geben auf welcher Seite ich das finde, oder wie sie heißt?

 

Zu 3

Es gibt ja die Einkaufswelten. Hier kann man verschiedene Layouts wählen. Ich verwende „Spalten“. Hier sind vier Spalten angelegt. In diese Felder kann man die Einkaufswelten-Elemente ziehen, eins in jedes Feld.

Nun ist es aber so, das es beim Speichern der Einkaufsweltenseite plötzlich Elemente verschwanden. Auf der Seite waren sie aber zu sehen. Aber seltsam angeordnet.

Als ich dann mal Elemente in andere Felder verschoben hatte, siehe da, tauchten die Elemente wieder auf. Und zwar lagen sie unter anderen Elementen. Was eigentlich, zumindest beim Anlegen, unmöglich ist. Das passierte dann einfach beim Speichern.

 

Nun ja, das Thema ist sekundär, es taucht nur vereinzelt auf. Das entscheidende Thema ist wie ich an die Thumbnails komme über die ID - und die Frage ob Felder entfernen wirklich über SQL Statements ablaufen muss.

 

 

Okay ich komme jetzt an die Thumbnails zumindest:

$mediaObject =  Shopware()->Container()->get(‚models‘)->getRepository(‚Shopware\Models\Media\Media‘)->find( $bild_id );
$thumbs = $mediaObject->getThumbnails();

Wieso gibts eigentlich keine richtige API-Doku hier?
Der Code ist doch schon schön mit Docstrings versehen, da könnte man das doch irgendwo zur Verfügung stellen.

Bei den anderen Themen bin ich leider noch nicht weiter.