Block wird nicht ersetzt.. ?

Hallo,

habe eben versucht eine „kleine“ Änderung vorzunehmen, aber irgendwie funktioniert das (mal wieder) nicht ganz so wie gedacht…
Shopware installiert zwar das geschriebene Plugin, da hört es aber auch schon auf…

Bootstrap unter „engine/shopware/plugins/local/backend/MeinBackendTitler“:
 

subscribeEvent(
	                'Enlight_Controller_Action_PreDispatch_Backend_Index', 'preparePlugin'
                        );

	    return true;
	}

	public function preparePlugin($args) {

	$subject = $args->get('subject');
        $view = $subject->View();
        $view->addTemplateDir($this->Path() . '/Views/');

	}
}

Unter Views liegt „backend/index/header.tpl“ mit testweise vereinfachter Darstellung…

{extends file='parent:backend/header/parent.tpl'}

{block name="backend/base/header/title"}
	Goddamnit!
{/block}

Jemand ne Idee woran es hakt?..

 

Das Backend besteht nicht aus TPL-Dateien, sondern aus ExtJS - da kannst du das nicht so wie im Frontend machen. Hier ist bspw. ein Beispiel wie du das im Backend machst: Custom Risk Rules

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍: Das ist nicht ganz korrekt. Die Index-Datei (dort wo die eigentliche Basis-HTML Struktur gespeichert ist) ist weiterhin eine .tpl Datei. Da funktioniert das 1:1 wie im Frontend. 

@PStadtfeld‍: Kannst du testweise mal das Event Enlight_Controller_Action_PreDispatch_Backend oder Enlight_Controller_Action_PreDispatch_Backend_Base verwenden? Klappt es damit? Cache nicht vergessen :wink:

Viele Grüße

@simkli schrieb:

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍: Das ist nicht ganz korrekt. Die Index-Datei (dort wo die eigentliche Basis-HTML Struktur gespeichert ist) ist weiterhin eine .tpl Datei. Da funktioniert das 1:1 wie im Frontend. 

Da hast du natürlich recht.

Aber der extends in der Templatedatei macht keinen Sinn - es gibt wohl eine parent.tpl in /backend/index/ aber nicht in backend/header/.
 

@simkli schrieb:

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍: Das ist nicht ganz korrekt. Die Index-Datei (dort wo die eigentliche Basis-HTML Struktur gespeichert ist) ist weiterhin eine .tpl Datei. Da funktioniert das 1:1 wie im Frontend. 

@PStadtfeld‍: Kannst du testweise mal das Event Enlight_Controller_Action_PreDispatch_Backend oder Enlight_Controller_Action_PreDispatch_Backend_Base verwenden? Klappt es damit? Cache nicht vergessen ;)

Viele Grüße

 

Okay, dass hatte ich mir eigentlich auch gedacht, als ich gesehen hatte, dass es sich um tpl-Dateien handelt…

Ich habe es nun einmal probiert mit beiden Events, es gab aber auch hier keine sichtlichen Änderungen/Erfolge.
Den extend-Pfad hatte ich testweise einmal umgestellt auf „{extends file=„parent:backend/index/header.tpl“}“ und „{extends file=„parent:backend/index/parent.tpl“}“, das hat aber auch nicht funktioniert…

In der Datei parent.tpl unter backend/index gibt es noch folgenden Block „{s name=‚IndexTitle‘}{/s}“, aber wo man auch den Textbaustein abspeichert, gezogen wird der scheinbar nie…

So, ich habe jetzt nach insgesamt ca. 7 Stunden das Plugin aus „engine/Shopware/Plugins/Local/Backend“ wieder rausgeschmissen und unter „custom/Plugins“ gepackt…
Es funktioniert zwar noch immer kein Stück, aber es lässt sich nun zumindest installieren, ohne die komplette Seite zu killen mit den tollen Shopware-Compiler-Fehlern…

custom/Plugins/MyPluginName/MyPluginName.php:

 'preparePlugin',
        ];
    }

    public function preparePlugin(\Enlight_Event_EventArgs $arguments) {
        $controller = $arguments->getSubject();
        $view = $controller->View();

        // $this funktioniert hier wieder nicht!
        $pluginPath = Shopware()->Container()->getParameter('my_plugin_name.plugin_dir');

        $view->addTemplateDir($pluginPath . 'Views/');
        //$view->extendsTemplate('backend/index/digero_backend_titler/header.tpl');
    }
}

Und dann noch "custom/Plugins/MyPluginName/Views/backend/index/header.tpl:

{extends file="parent:backend/index/header.tpl"}


{block name="backend/base/header/title"}Test{/block}

 

Abgesehen davon, dass man so etwas in die Grundeinstellungen hätte packen können finde ich es unmöglich, wie bereits so ein simpler Prozess in Shopware zu einer Tagesaufgabe mutiert…

Hat noch irgendjemand eine Idee woran es hängen könnte?

Ansonsten schreib ich den Mist gleich im Bare verzeichnis um und sichere mir die Files bis zum nächsten Update irgendwo hin…