Hallo, ich versuche das Nachladen eines Templates über eine Variable zu steuern, aber das Plugin nimmt immer nur die erste TPL-Datei: public function onPostDispatchDetail(Enlight\_Event\_EventArgs $args) {$request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if(!$request-\>isDispatched()||$response-\>isException()||$request-\>getModuleName()!='frontend') {return;} $view-\>assign('UserSession', $this -\> getUserLogin()); $view-\>addTemplateDir($this-\>Path() . 'Views/'); /\*\* Das will nicht : \*/ if ($UserSession != "H"){ $view-\>extendsTemplate('frontend/plugins/pluginverzeichnis/nologin.tpl');} else {$view-\>extendsTemplate('frontend/plugins/pluginverzeichnis/islogin.tpl');} }
Wenn ich die Variable im Template abfrage, ist sie vorhanden und auch mit dem gesuchten Wert (H) gefüllt. Hat da noch jemand einen Tipp für mich?
wenns von da aus nicht geht (ggf. cache). dann mal vom template aus. $view-\>extendsTemplate('frontend/plugins/pluginverzeichnis/index.tpl');
in index.tpl {if $UserSession != 'H'} {include file='frontend/plugins/pluginverzeichnis/nologin.tpl'} {else} {include file='frontend/plugins/pluginverzeichnis/islogin.tpl'} {/if}
Das geht leider auch nicht. Es sollen die Artikeldetails komplett ausgebelndet werden, wenn kein Händlerlogin vorhanden ist. TPL 1 = mit Block ‘frontend_index_content’ TPL 2 = Block ‘frontend_index_content’=leer + Hinweis GELÖST: If Anweisungen funktionieren nur innerhalb eines Blocks: Plugin lädt plugin.tpl: [code] {extends file=parent:’…/emotion/detail/index’} {block name=‘frontend_index_content’} {if $UserSession <> “H”}
{s name=“DetailBlockTitel”}Detailansicht nur für registrierte Kunden{/s}
{s name=“DetailBlockDescription”} Bitte registrieren Sie sich erst als Händler, um auf die Artikeldetails zugreifen zu können:
Zum Formular {/s}
{/if} {if $UserSession == “H”} /* INHALT DER _EMOTION/DETAIL/INDEX.TPL , BLOCK “frontend_index_content” */ {/if} {/block} [/code]