Jak správně řešit to či ono…
- Patrik Votoček
- Člen | 2221
Již nějáký čas „oťukávám“ nette a nyní když už si myslím že ho poměrně dobře znám bych chtěl napsat neco doopravdy použitelného/pořádného (ne jenom jedno učelové aplikace jak tomu bylo do teď). Ale jelikož v nette se dá spousta věcí dělat několika způsoby z nichž nejsou všechny vždy správné/efektivní. Tak mám pár otázek jak co řešit
Šablonování
- Používat bloky {extends …} + {block …}{/block}
- Používat „klasiku“ @layout.phtml a {include $content} / {$content->render()}
U možnosti 1 by mě vyhovovalo kdyby se dala použít $layout pro extends (jinak než se používá v možnosti 2)
Oprávnění
Zatím toto řeším tak že mám Permissions napsané tak že resource = presenter(+modul – pokud je použit) a privilege = action . A pak mám v BasePresenteru pro všechny presentery které vyžadují přihlášení a autorizaci Environment::getUser()->isAllowed($presenter->getRequest()->getPresenterName(), $presenter->getView()). Ale je tu jeden problém u signálů musím uvnitř každého z nich toto volat manuálně. (Tím nedodržuji to co je v nette posvátné – nic nepsat 2x). Dědičnost rolý také zatím nevyužívám protože jsem zatím nezkoumal to jak na to napsat administraci.
Presentery a rozdělení do modulů
Řekněme že potřebju abych to měl rozdělené do tří částí.
- Základní administrace – Změna oprávnění, změna hesla, změna e-mailu atd. (Prostě to co je všude úplně stejné)
- Moduly – články, galerie, novinky atd. (Prostě to co se dá libovolně odebírat a přidávat)
- Části specifické pro danou aplikaci – např. konfigurátor počítače, auta, letadla (Prostě to co je specifické pro daný web)
A tak jsem si napsal vlastní presenter loader. Odělovat to potřebuju proto aby se to dalo jednoduše udržovat v SVNku.
Formuláře
Napsal jsem si vlastní továrničku na formuláře (AppForms) která předdefinovává wrappery
<?php
$renderer = $form->getRenderer();
$renderer->wrappers...
?>
Ale schází mě/nepřišel jsem na to jak by se dalo za libovolný prvek přidat odřádkování. (např. chci za každý input přidat <br />. Přišel jsem pouze na to jak měnit obalové prvky. (Možná to bude tím že jsem nikde nenašel docku k wrapperům – pokud existuje)
Přihlašování
Nevím proč ale pořád mě čím dál víc se mě v hlavě honí
možnost mít přímo v nette nástroj pro automatické
přihlašování.
To je asi všechno nic dalšího mě aktuálně nenapadá ale pokud na něco dalšího příjdu tak to sem hodím.
Editoval vrtak-cz (11. 4. 2009 4:22)
- David Grudl
- Nette Core | 8218
vrtak-cz napsal(a):
Šablonování
- Používat bloky {extends …} + {block …}{/block}
- Používat „klasiku“ @layout.phtml a {include $content} / {$content->render()}
Varianta 1) by se měla v budoucnu stát primární, ale ještě to bude stát dost vývoje.
U možnosti 1 by mě vyhovovalo kdyby se dala použít $layout pro extends (jinak než se používá v možnosti 2)
Nerozumím, jak to myslíš.
Oprávnění
…Ale je tu jeden problém u signálů musím uvnitř každého z nich toto volat manuálně.
Zkus využít metodu presenteru getSignal()
Přihlašování
Nevím proč ale pořád mě čím dál víc se mě v hlavě honí možnost mít přímo v nette nástroj pro automatické přihlašování.
Jak by takové automatické přihlašování mělo fungovat?
- romansklenar
- Člen | 655
vrtak-cz napsal(a):
Formuláře
Ale schází mě/nepřišel jsem na to jak by se dalo za libovolný prvek přidat odřádkování. (např. chci za každý input přidat <br />. Přišel jsem pouze na to jak měnit obalové prvky. (Možná to bude tím že jsem nikde nenašel docku k wrapperům – pokud existuje)
Třeba nějak takhle, možností je povícero.
- Patrik Votoček
- Člen | 2221
David Grudl napsal(a):
U možnosti 1 by mě vyhovovalo kdyby se dala použít $layout pro extends (jinak než se používá v možnosti 2)
Nerozumím, jak to myslíš.
Jde o to že podkud používám extends a chtěl bych u některých (věčina) šablon dědit nějákou layoutovou šablonu tak by se hodilo použít proměnou $layout ale ta aktualné nejde ovlivnit.
David Grudl napsal(a):
Přihlašování
Nevím proč ale pořád mě čím dál víc se mě v hlavě honí možnost mít přímo v nette nástroj pro automatické přihlašování.
Jak by takové automatické přihlašování mělo fungovat?
Je to blbost nevím jak mě to napadlo.