Hi zusammen,
ich habe schon seit ein paar Shopware Versionen bis hin zur aktuellsten Version ein von mir geschriebenes Widget als action in einem Template eingefügt. Das Ding macht nichts Anderes, als eine bestimmte Kategorie zu vergleichen und dann im Anschluss an dieser Stelle ein Template auszugeben. Jetzt kommts leider in in letzter Zeit immer häufiger vor, dass die Pagination bzw. das infinite loading nicht mehr funktioniert und folgender Fehler im Log auftaucht:
Stack trace:
#0 /html/shopware/var/cache/production_201710241020/templates/frontend_Meinestruempfe_de_DE_1_secure/4e/be/96/4ebe9627ca1a33d7194ba3405499a699228a5b83.snippet.box-minimal.tpl.php(117): content_5a1e7e828a8906_35837246(Object(Enlight_Template_Default))
#1 /html/shopware/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(180): content_5a1e7e829af3e6_05469995(Object(Enlight_Template_Default))
#2 /html/shopware/engine/Library/Smarty/sysplugins/smarty_internal_template.php(286): Smarty_Internal_TemplateBase->fetch(Object(Enlight_Template_Default), NULL, NULL, NULL, false, false, true)
#3 /html/shopware/var/cache/production_201710241020/templates/frontend_Meinestruempfe_de_DE_1_secure/a0/99/b7/a099b786141a7c0cc59c7b60239b63201a274381.snippet.lis in /html/shopware/var/cache/production_201710241020/templates/frontend_Meinestruempfe_de_DE_1_secure/4e/be/96/4ebe9627ca1a33d7194ba3405499a699228a5b83.snippet.box-minimal.tpl.php on line 294
[29-Nov-2017 14:29:13 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function renderEsiTag() on null in /html/shopware/var/cache/production_201710241020/templates/frontend_Meinestruempfe_de_DE_1_secure/4e/be/96/4ebe9627ca1a33d7194ba3405499a699228a5b83.snippet.box-minimal.tpl.php:294
Hat sich denn in der Einbindung der Widgets im Hinblick auf das Update von 5.2 auf 5.3 irgendwas entscheidendes geändert, dass der Fehler jetzt plötzlich auftaucht?
Meine Bootstrap.php sieht wie folgt aus:
$this->getVersion(),
'label' => $this->getLabel(),
'author' => 'Dreamride / Christian Bernhard',
'supplier' => 'Christian Bernhard',
'description' => 'Findet alle Kategorien zu einem Artikel',
'support' => 'Hersteller',
'link' => 'http://www.dreamride.de'
);
}
/**
* Get (nice) name for plugin manager list
* @return string
*/
public function getLabel()
{
return 'Ausgabe Kategorien zu jedem Artikel';
}
/**
* Standard plugin install method to register all required components.
* @throws \Exception
* @return bool success
*/
public function install()
{
$this->subscribeEvents();
$this->createConfigForm();
return true;
}
/**
* @return bool
*/
public function update()
{
return true;
}
/**
* Creates the configuration form for the plugin
*
* @protected
* @return void
*/
protected function createConfigForm()
{
$form = $this->Form();
$form->setElement('text', 'compareCategory',
array(
'label' => 'Kategorie:',
'description' => 'Bitte tragen Sie ein, welche Kategorie verglichen werden soll'
)
);
}
/**
* Registers all necessary events and hooks.
*/
private function subscribeEvents()
{
$this->subscribeEvent(
'Enlight_Controller_Dispatcher_ControllerPath_Widgets_CbeCategoriesInfo',
'onGetWidgetController'
);
}
/**
* Event listener function which returns the controller path of the plugin widget controller.
* @param Enlight_Event_EventArgs $arguments
*
* @return string
*/
public function onGetWidgetController(Enlight_Event_EventArgs $arguments) {
$this->Application()->Template()->addTemplateDir(
$this->Path() . 'Views/'
);
return $this->Path(). 'Controllers/Widgets/CbeCategoriesInfo.php';
}
/**
* Event listener function which called over the Enlight_Controller_Action_PostDispatch_Frontend_Index event.
*
* @param Enlight_Event_EventArgs $arguments
*/
public function onPostDispatchFrontend(Enlight_Event_EventArgs $arguments)
{
$controller = $arguments->getSubject();
$view = $controller->View();
$request = $controller->Request();
$controllerName = $request->getControllerName();
$config = Shopware()->Plugins()->Frontend()->CbeCategoriesInfo()->Config();
$pattern = array_map('trim', explode(',', $config->allowedController));
if(!in_array($controllerName, $pattern)) {
return;
}
}
}
Vielleicht habt Ihr ja eine Idee!
LG und Dankeschön,
Chris