Hallo, ich möchte die IndexAction des Shopware_Controllers_Frontend_Listing Controllers überschreiben/erweitern. Ich hab das Forum durchsucht, aber leider nichts wirklich passendes gefunden. Daher habe ich ein Plugin geschrieben mit folgenden Dateien: Bootstrap [code] <?php class Shopware_Plugins_Frontend_BehindyouCategorylisting_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function getVersion(){
return ‘0.1’;
}
public function getLabel(){
return 'Unterkategiorielisting in Kategorien';
}
public function install()
{
$this->subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'onPostDispatchListing' ); $this-\>subscribeEvent( 'Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_BehindyouCategoryListing', 'onGetControllerPath' ); return true; } public function onPostDispatchListing(Enlight\_Event\_EventArgs $args){ $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if(!$request-\>isDispatched()||$response-\>isException()) { return; } return $this-\>onGetControllerPath(); } public function onGetControllerPath(Enlight\_Event\_EventArgs $args){ return $this-\>Path().'Controllers/Categorylisting.php'; } }[/code] Categorylisting.php [code]<?php class Shopware_Controllers_Frontend_Categorylisting extends Enlight_Controller_Action
{
public function init()
{
$this->View()->addTemplateDir(dirname(__FILE__) . “/…/Views/”); } /** * Index action method * Wir überschreiben die IndexAction des Lsiting Controllers um hier * Kinder der Jeweiligen Kategorie dem Template übergeben und dort ausgeben zu können */ public function indexAction(){ * Anpassungen der Shopware_Controllers_Frontend_Listing IndexAction() * die(‘Test’); } } }[/code] Meine Ordnerstruktur gliedert sich wie folgt: Frontend BehindyouCategoryListing Controllers Categorylisting.php Bootstrap.php
Wenn ich nun aber ein Artikellisting aufrufe, so werden meine Änderungen nicht übernommen (ich will Variablen dem Template zuweisen, diese sind aber NULL) Die Installmethode in der Bootstrap läuft soweit ganz gut - würde ich den Code direkt darein schreiben, würde es sicher auch gehen, ich möchte ihn aber lieber in eine extra Controller-Datei auslagern. Geht es eventuell auch über Hooks? Aber auch das bekomme ich irgendwie nicht gebacken. Ich hoffe, ihr könnt mir einen Tipp geben, wieso es nicht geht. Dannke