Anzeige Artikel mit Zusatzinformationen im Suchfilter

Hallo.

Ich benutze in meinem Template in den Listings zsatzliche Artikelbilder, nicht nur das Hauptbild.
Diese werden durch eine Erweiterung an ensprechnder Stelle nachgeladen und zur Verfügung gestellt.

Wenn ich nun den Filter nutze, mit den Einstellungen, dass der Filter sich automatisch aktualisiert und nicht vorhanden Kombinationen ausgraut,
dann werden diese Zusatzbilder nicht angezeigt.

Ich hatte nun folgende Idee.

class Listing implements SubscriberInterface
{
    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Widgets_Listing' => 'onPostDispatchListing',
        ];
    }

    public function onPostDispatchListing(\Enlight_Event_EventArgs $args)
    {

        $controller = $args->getSubject();
        $view = $controller->View();
        $request = $controller->Request();
		$actionName = $request->getParam('action');

		if($actionName == "listingCount")
		{
			$sArticles = $view->getAssign('sArticles');

			foreach($sArticles as $key => $sArticle)
			{
				$id = (int) $sArticle["articleID"];
				$article = Shopware()->Modules()->Articles()->sGetArticleById($id);
				$sArticles[$key]['images'] = $article['images'];
			}

			$view->assign('sArticles',$sArticles);
		}
    }
}

Das klappt aber nicht.

Woran kann es liegen ?

Hallo,

 

um die Bilder brauchst du dich nicht zu kümmern, die macht Shopware automatisch rein. Es kann sein, dass beim Filtern eine andere View aufgerufen wird, die du noch nicht bearbeitet hast.

 

 

MFG

 

derwunner

Das liegt dann natürlich daran, auf welches Event du dich registrierst um die Bilder nach zu laden.

Es gibt hier im Forum irgendwo nen Thread, da wird darauf verwiesen, dass der ListProductService die Daten über einen LegacyStructConverter an das Frontend übergibt. Der ListProductService hat die Bilder bereits geladen, der LegacyStructConverter schmeißt diese dann wieder raus.

Eventuell solltest du die grundlegende Funktionsweise deiner Methode zum nachladen überdenken (werden ja dann zweimal geladen die Bilder).

Sprich: Anstatt dich auf alle möglichen Events zu registrieren und alle aktuellen Sonderfälle mit viel Code probieren zum laufen zu kriegen, ist es wahrscheinlich um einiges geschickter „einfach“ den LegacyStructConverter zu dekorieren und ihm beizubringen die anderen Bilder nicht wegzuschmeißen bevor die Daten an die View gelangen.

Hallo das macht Sinn wie du es sagst.

Wo greife ich dort an, um den LegacyStructConverter zu sagen, das er alle Produktbilder inkusiveThumbs (nicht nur das Cover / Hauptbild) im Listing mit übergeben soll, anstatt sie zu entfernen.

Da hab ich noch nichts gefunden.

Auf diesen Thread hatte ich meine Aussage bezogen:

Hallo.

vielen Dank nochmal für die Hinweise.

Hat alles geklappt.

Habe es dann mit einen Service Decorator gelöst.Klappt wunderbar und die Bilder stehen dann auch überall zur verfügung.

1 „Gefällt mir“