Přihlášení v AdminModule – Best Practice

Dvory59
Člen | 40
+
0
-

Zdravím,
mám trochu dilema, jak nejlépe vyřešit následující situaci.
Mám dva moduly, Admin a Front, kdy v Admin mám BasePresenter, kde řeším přihlášení a pokud přihlášen není, zavolám SignPresenter. Jenže tenhle presenter je umístěn v modulu Admin, takže jeho šablona se vykreslí do AdminLayout. Ale v tomhle layoutu vypisuji menu, hlavičku, atd, který bych nechtěl zobrazovat.

Jak by se tahle situace měla nejlépe vyřešit? Mám vytvořit speciální modul pro Sign s vlastním layoutem? Nebo třeba nějak vypodmínkovat konkrétní bloky v layoutu?

Díky za tipy!

Jan Endel
Člen | 1016
+
+1
-

Může to být klidně v modulu Admin, stačí ti v rámci render metody v Sign Presenteru zavolat:

$this->template->setLayout(NULL);

a pak máš šablonu úplně bez layoutu.

Petr Parolek
Člen | 455
+
0
-

nebo já vynechávám v šabloně

{block content}
jAkErCZ
Člen | 322
+
-2
-

ppar napsal(a):

nebo já vynechávám v šabloně

{block content}

To si myslím že budeš mít problém že ti to bude házet chybu.

duke
Člen | 650
+
+1
-

Můžeš to řešit také přímo v šabloně makrem extends, resp. layout (obojí dělá totéž). Např.:

{extends @loginLayout.latte}

… či renderování šablony bez layoutu (což je totéž, co doporučoval @JanEndel, jen přes makro šablony):

{extends none}
TonnyVlcek
Člen | 31
+
0
-

Já to mám udělané tak, že pro Admin:Login presenter mám udělaný nový @layout:

├── Modules
    ├── Admin
        ├── templates
            ├── Login
                ├── @layout.latte
                ├── default.latte
                ├── passwordReset.latte
                └── verify.latte
			├── ... other templates
            └── @layout.latte
    └── Front

Navíc k tomu mám dva abstraktní Presentery: BaseAdminPresenter (extends from BasePresenter) a PrivateAdminPresenter (extends from BaseAdminPresenter) [Secured… by možná bylo lepší jméno]. Tím pádem můj LoginPresenter (případně další které nevyžadují login dědí od BaseAdminPresenter a všechny presentery, které mají ověřovat uživatele dědí od PrivateAdminPresenter, který deleguje logiku ověření uživatele.