Problem mit Block "Append" und Überschreibung

Hallo,

Ich habe 2 Plugins, Pugin 1 heißt Shop Master Ultimate und überschreibt ein Block so:

{block name="frontend_index_footer"} 

// new content

{/block}

Und der zweite Plugin is bei mir programmiert und macht APPEND zum selben Block:

{block name="frontend_index_footer" append} 

// append to new content

{/block}

Und die event Funktion sieht so aus:

$this->subscribeEvent(
     'Enlight_Controller_Action_PostDispatchSecure_Frontend',
     'onFrontendPostDispatch'
);

Das problem ist nach die installazion von Plugin 2 (meins) der inhalt ist nicht APPENDED und man kann nur das Neue inhalt von Plugin 1 sehen. Wie kann ich APPEND auf ein uberschreibenes Block machen? Beide Plugins greifen auf das selbe Block; Plugin 1 überschreibt und Plugin 2 macht APPEND. Viellen dank für die Hilfe.

Hallo,

wenn beide Funktionen den gleichen Block nutzen (wollen), kann nur ein Plugin gewinnen und dessen Inhalt wird dann angezeigt. Hier könnte man eventuell versuchen, einfach einen übergeordneten Block zu nutzen, wenn man den Block des anderen Plugins überschreiben möchte.

Beste Grüße

Sebastian

Hallo Vergil21,

versuche mal in deinem Plugin folgendes:

{block name="frontend_index_footer"}

{$smarty.block.parent}

// append to new content

{/block}

Dadurch hast du den selben Effekt, benutzt aber nicht mehr append. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

2 „Gefällt mir“

Hallo an alle!

Danke die antworten. Ich habe es versicht mit  {$smarty.block.parent} aber funktioniert nicht.

Und ich kann ich ein parent benutzen weil ich muss meinen HTML in den Footer dringen hinzufügen.

Hi,

wie sieht denn deine Callback Methode von deinem Event aus?

Viele Grüße aus Schöppingen

cool Michael Telgmann

Dann greift wohl erst dein Plug-In und dann das des anderen Herstellers.

Du kannst deinem Plug-In eine höheren subscribe-Punkt als dritten optionalen Parameter mitgeben.

Versuch mal sowas:

$this->subscribeEvent(
     'Enlight_Controller_Action_PostDispatchSecure_Frontend',
     'onFrontendPostDispatch',
10
);

 

Hallo meine call back Funktion sieht so aus:

    public function onFrontendPostDispatch(Enlight_Event_EventArgs $args){
        /** @var \Enlight_Controller_Action $controller */
        $controller = $args->get('subject');
        $view = $controller->View();

        $view->addTemplateDir( __DIR__. '/Views');
        // view variables}

Und ich habe versucht subscribe-Punkt (10)  als dritten Parameter hinzufügen aber hat nicht fonktioniert :confused:

Keine Ahnung. Du machst irgendwas falsch.

Bei neuen/geänderten subscribes: Plug-In neu installieren und aktivieren.

Nach Änderungen alle caches löschen, bei theme-änderungen theme neu kompilieren.

per

echo ': ';
				print_r();
				echo '';
				die('');

debug meldungen absetzen num zu gucken bis zu welcher code-stelle alles einwandfrei läuft

im theme debug-meldungen absetzen

fehler suchen