Für eine Erweiterung des Gutscheinmoduls würde ich gerne bei negativer Prüfung eine entsprechende Meldung ausgeben lassen nach dem abhandeln des Events Shopware_Modules_Basket_AddVoucher_Start. Leider gelingt mir das nicht. return array("sErrorFlag" =\> true, "sErrorMessages" =\> $sErrorMessages) $this-\>View()-\>assign(array( 'success' =\> false, 'error' =\> $e-\>getMessage() )); return array( 'success' =\> false, 'message' =\> 'FEHLERBESCHREIBUNG' );
Die Möglichkeiten habe ich bereits probiert - ohne Erfolg. Das Frontend bleibt einfach Stumm. Versuchen tue ich es auf der Checkout-Seite. Vielleicht hatte jemand schon mal das Gleiche Problem?
Etwas spät, aber ich habe diesen Faden recht weit oben bei den Suchmaschinenresultaten gefunden und er hätte mir helfen können. Für alle die dasselbe erreichen wollen, hier meine Lösung: Es gibt offenbar keinen Default Fehlermelder, du musst dir selbst ein Template basteln und es am richtigen Ort einbinden. Dazu erstmal im Controller in dem die Prüfung stattfindet: Shopware()-\>Session()-\>DeinNamespaceCheckBestanden = false; return $this-\>forward($actionAufDieDuZurueckwerfenWillst, $controller);
und in der Bootstrap.php: // wenn auf diese action geforwardet wird mal abfangen: public function subscribeEvents() { $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_Frontend\_[Controller]\_[ActionAufDieDuZurueckwerfenWillst]', 'onThrowbackAction' ); } // überprüfen ob der forward von uns kam public function onThrowbackAction(\Enlight\_Event\_EventArgs $args) { if (isset(Shopware()-\>Session()-\>DeinNamespaceCheckBestanden) && Shopware()-\>Session()-\>DeinNamespaceCheckBestanden === false) { $view = $args-\>getSubject()-\>View(); // deine Templates laden Shopware()-\>Template()-\>addTemplateDir($this-\>Path() . 'Views/'); // deine Snippets laden Shopware()-\>Snippets()-\>addConfigDir($this-\>Path() . 'Snippets/'); $view-\>assign('DeinNamespaceFehler', true); $view-\>extendsTemplate('pfad/zum/template/das/du/laden/willst.tpl'); unset(Shopware()-\>Session()-\>DeinNamespaceCheckBestanden); } }
Jetzt fehlen noch die Templates. Ich wollte die Fehlermeldung am selben Ort und mit denselben Styles wie die AGB Fehlermeldung haben, darum, in PFAD_ZUM_PLUGIN/Views/pfad/zum/template/das/du/laden/willst.tpl: [code]{block name=“frontend_index_content_top”} {* Hier überschreiben wir den Block “frontend_index_content_top” im file SHOP_ROOT/templates/_default/frontend/checkout/confirm.tpl. Append wär schöner, geht hier aber nicht, weil die Meldung innerhalb des div.grid_20.first sein soll. *}
{* Step box *} {include file=“frontend/register/steps.tpl” sStepActive=“finished”} {* AGB is not accepted by user *} {if $sAGBError}
{s name=‘ConfirmErrorAGB’}{/s}
{/if} {* meine Überprüfung ergab einen Fehler *} {if $DeinNamespaceFehler}
{* beim namspace wirklich nur den namen des files, ohne *.ini suffix *} {s namespace=‘pfad/zum/snippet/das/du/laden/willst’ name=‘nameDerFehlermeldung’}Diese Meldung wird ausgegeben, falls etwas mit den Snippets nicht geklappt hat.{/s}
{/if}
{/block}[/code] und in PFAD_ZUM_PLUGIN/Snippets/pfad/zum/snippet/das/du/laden/willst.ini [de\_DE] nameDerFehlermeldung = "Diese Fehlermeldung will ich ausgeben, falls der Kunde den Check nicht besteht."
Und das wäre eigentlich alles.