Hallo Forum! Stehe hier vor einem kleinen Problem, das mich bereits viel Zeit gekostet hat. Habe (bisher) ein kleines Element für die Einkaufswelt entwickelt, in dass der Nutzer, Kommagetrennt, Artikelnummern eingeben kann, die dann schön vorne auftauchen (die Artikel, versteht sich). Leider ist das bisher nur eine Idee, und ich komme nicht dahinter, wie ich mit den eingegebenen Artikelnummern die tatsächlichen Informationen über einen Artikel abholen kann. Wäre top, wenn mir da jemand ein wenig unter die Arme greifen kann, bin noch ziemlich bei shopware… Merci im Voraus!
Guck dir mal diesen Post von Stephan Pohl an: programmierung-f56/plugin-einkaufswelt-eigene-extjs-komponente-t11876-10.html#p56599 In der Variable $args die der Funktion onAddElement übergeben wird müssten dann irgendwo deine Artikelnummern stehen. Wenn ich es gerade noch richtig im Kopf habe in einem Array namens Data und als Key den Namen den du beim erstellen des Feldes angegeben hast. Damit kannst du dann z.B. über die lokale API die Artikel aufrufen und dem Template bzw dem Data-Array zuweisen. Das Data-Array kannst du dann in deinem Template ansprechen.
Habe das ganze mittlerweile gefunden. Den Schritt, den Stephan Pohl gemacht hat, hatte ich davor (dennoch allerbesten Dank für den Link, war lustigerweise glaube ich sogar mal der, der mir bei der Lösung eines anderen Problems geholfen hat). Die Lösung war eine Klasse Namens sGetArticleByOrdername. Über eine normale Datenbankabfrage ging das nicht so schön, bzw. hätte das zich Schritte mehr gebraucht. Mein derzeitiges Problem ist, dass ich die jetzt schön zusammengestellten Daten nicht an mein Template geschickt kriege (zum Schreien, ich probiere das jetzt seit Stunden mit verschiedensten Lösungsansätzen)… Also wenn es dafür noch eine Lösung gibt irgendwo, die ich noch nicht probiert habe, ist Weihnachten und Ostern gleichzeitig für mich Danke schonmal
Was genau machst du denn bisher? Eigentlich geht das ganz einfach. - Subscribe auf dieses Event: Shopware_Controllers_Widgets_Emotion_AddElement - Den Rückgabewert auslesen, z.B. $data = $arguments-\>getReturn();
In $data stehen dann deine Artikelnummern, dann suchst du dir dazu die Artikel raus. Die Artikeldaten schreibst du dann wieder in das $data-Array $data['articles'] = $ArrayMitDenArtikeldaten;
Zum Schluss dann noch die $data-Variable wieder zurückgeben. return $data;
im Template deines Einkaufswelt-Widgets kannst du dann über $Data.articles auf die Artikel zugreifen (wichtig: $Data mit großem D) Wenn das nicht funktioniert bitte mal Code posten was du bisher machst.
Hi ! Ja, genau so habe ich das letzten Endes dann gelöst. Habe davor ewig lang mit der assign-Funktion arbeiten wollen, da ging vorne und hinten nichts. Danke für die Antwort, ich hoffe, der nächste Suchende stolpert hier drüber