Hallo alle zusammen,
mir ist durchaus bewusst, dass es zu dem Thema schon einige sehr ähnliche Threads gibt. Ich habe Sie alle gelesen - leider habe ich es (vermutlich mangels Erfahrung / Können) doch nicht hinbekommen.
Also ich möchte ein kleines Plugin schreiben, welches im Listing (Kategorieebene) nicht das Standardproduktbild anzeigt, sondern ein Produktfoto, welches ich mit entsprechendem Namen in einem Freitextfeld hinterlegt habe. Sollte im Freitextfeld keine separate Bildangabe hinterlegt sein, wird natürlich das Standardbild angezeigt.
Das Plugin funktioniert auch genau so wie es soll - bis es zum Infinite Scrolling kommt, dann werden die Daten leider nicht nachgeladen und es erfolgt die Standardausgabe.
So sehen meine entscheidenden Bootstrapfunktionene aus:
private function registerEvents(){
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatchSecure_Widgets',
'onPostDispatchFrontend'
);
}
public function onPostDispatchFrontend(Enlight_Event_EventArgs $arguments){
$controller = $arguments->getSubject();
$request = $controller->Request();
$response = $controller->Response();
$view = $controller->View();
if(!$request->isDispatched()||$response->isException()||!$view->hasTemplate()) {
return;
}
$view->addTemplateDir($this->Path() . 'Views/');
$view->extendsTemplate('frontend/plugins/productimage_listingview/index.tpl');
$view->assign('xarticleID', $this->getImageValues());
}
private function getImageValues(){
$articles = Shopware()->Modules()->Articles()->sGetArticlesByCategory();
$mediaService = Shopware()->Container()->get('shopware_media.media_service');
// do something
// .....
}
Was ist an dem Code falsche? Bzw. wie muss ich den Code erweitern, bzw. modifizieren, damit die Daten auch beim Infinite Scrolling nachgeladen werden?
Viele Grüße
canetti