ich versuche, in meinem Plugin das Template für box_article zu erweitern. Die Erweiterung funktioniert prima auf der ersten Seite. Sobald ich aber über infinite scrolling Daten nachlade oder die Seite wechsle, wird das Template aus dem Plugin nicht gezogen.
Ich subscribe auf folgende Events:
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PostDispatch' => 'onPostDispatch',
'Shopware_Controllers_Widgets_Listing_fetchListing_preFetch' => 'onPostDispatch'
];
}
public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
{
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir($this->pluginDirectory . '/Resources/views');
}
Das Template sieht aktuell so aus:
{extends file='parent:frontend/listing/box_article.tpl'}
{block name='frontend_listing_box_article_content'}
{$smarty.block.parent}
Test
{/block}
Was übersehe ich? Bzw. auf welches Event muss ich lauschen, damit die Erweiterung auch für infinite scrolling funktioniert?
Ich bin jetzt ein bisschen tiefer durch gestiegen. Das Infitine Scrolling funktioniert tatsächlich mit diesem Ansatz. Mein Problem scheint eher zu sein, dass das Frontend Widgets verwendet. Wenn ich das Standard Layout verwendet, klappt infinite Scrolling wie oben beschrieben. Wenn ich Widgets verwende, wird das Plugin gar nicht angesprochen.
Ich hatte jetzt folgende Konfiguration auch mal probiert, leider ohne Erfolg bisher:
Hm, was du mit dem Plugin jetzt vor hast weiß ich nicht. Deshalb kann ich dir gegenwärtig nicht so richtig folgen. Für das Listing müsste ja Enlight_Controller_Action_PostDispatch_Frontend_Listing reichen.
Ah ok, jo wie schon erwähnt würde ich das über Enlight_Controller_Action_PostDispatch_Frontend_Listing versuchen. Also im normalen Listing würde das auf Fälle gehen. Beim Ajax bin ich mir eben etwas unsicher. Also Testen
Danke fürs Ausprobieren. Ajax funktioniert inzwischen. Leider nur noch nicht das Laden, wenn die Artikel über Widgets auf die Seite eigebunden sind Emotion.php scheint der dazugehörige Controller zu sein.