Okay verwende nun unten stehenden Code. Es überschreibt es aber leider immer noch nicht… das ist aber nur bei dem einen Kunden so… bei mir lokal kein Problem
$this->subscribeEvent(
'Theme_Inheritance_Template_Directories_Collected',
'onTemplateDirectoriesCollect',
1000
);
public function onTemplateDirectoriesCollect(\Enlight_Event_EventArgs $args)
{
$dirs = $args->getReturn();
$dirs[] = __DIR__. '/Views';
$args->setReturn($dirs);
}
In älteren Versionen von SwagEmotionAdvanced wird noch ein anderes Event verwendet: Enlight_Controller_Action_PostDispatchSecure_Widgets_Emotion
Könnte es sein, dass durch Updates des Plugins das Event Theme_Inheritance_Template_Directories_Collected hinzukommt und das alte noch bestehen bleibt, bis man das Plugin einmal neu installiert?
Ich kann mir nicht erklären, weshalb meine tpl-Dateien in diesem einen Fall nicht greifen.
//Edit: Gebe ich im SwagEmotionAdvanced in der betreffenden .tpl-Datei {$smarty.block.parent} ein, wird mein Kram geladen. Meine Tempalte Directories sind also vorhanden, werden aber wieder überschrieben…
Ich muss das hier leider noch einmal anstoßen, da es mir nicht möglich ist die Template-Dateien des Plugis EmotionAdvanced zu überschreiben. was könnte ich hier noch prüfen?
und einfach mit dem Theme injectBeforePlugins zu arbeiten wäre wohl keine Option? Das Flag einfach umkehren, sodass das Theme nach den Plugins geladen wird und schon sollte der eigene Smarty Block greifen. Dafür brauchts keine Events und kein gar nichts.
@mdsw Geht aber trotzdem. Ein Beispiel: Plugin legt smarty View mit dem Namen “frontend/index/meineview.tpl” an. Das Theme hat ebenfalls eine View mit dem Namen “frontend/index/meineview.tpl”. Welche View nun ausgegeben wird, bzw. welche View welche überschreibt hängt jetzt ganz davon ab, wie im Theme die Variable injectBeforePlugins konfiguriert ist. Ist es der boolsche Wert true, dann wird die Plugin View ausgegeben. Ist der Wert false, dann wird zuerst die Plugin View und danach die Theme View ausgegeben.
ich weiß, dass man themes auf beide weisen anlegen kann.
Hier geht es aber darum, dass ich das Plugin EmotionAdvanced überschreiben möchte, welches seine Template-Dateien über Theme_Inheritance_Template_Directories_Collected einfügt. Mein Plugin schafft es nicht die tpl-Dateien des Plugins zu überschreiben. Ein Theme spielt hierbei keine Rolle.
ich stehe gerade vor einem ähnlichem Problem. Und zwar würde ich gerne Pluginseitig gewisse Frontendanpassungen des swag Bonussystem Plugins überschreiben. Im genauen geht es um die Ausgabe der benütigten Bonuspunkte um den Artikel zu erwerben in den Artikelboxen der Product slider.
Ich habe sämtliche hier vorgeschlagenen Varianten getestet ohne Erfolg. Ausserdem habe ich verschiedenste Events getestet und auch per Priorisierung versucht diese “über” das Bonussystem zu positionieren. Auch die ganzen widget Events etc haben keine erfolg gebracht.
Auch wenn ich die Folders per subscriber/service einbinde schaffe ich es nicht die tpls aus dem bonus system zu überlagern.
Zwei Sachen verstehe ich im besonderen nicht:
wie schafft es das Bonussystem sich immer an eine übergeordnetet Stelle zu positionieren da hier ja nichts überschrieben wird.
Wie genau tickt dieser Priorisierungsparameter? Ich kenne diesen aus dem alten Plugin Stack, hier hat er teilweise auch abhilfe gebracht oder - wie im frontendcache plugin - zu problemen geführt. Im neuen Stack habe ich nun schon mehrfach mit dem Parameter experimientiert leider immer ohne jeden Erfolg. Damals war es glaube auch so das nur werte bis X gegriffen haben also ein Wert von 1000 hat dann keinen sinn gemacht wie ist das jetzt? Gefühlt greift hier garnichts egal was ich einstelle.