Jak správně řešit to či ono…

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Patrik Votoček
Člen | 2221
+
0
-

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í

  1. Používat bloky {extends …} + {block …}{/block}
  2. 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í.

  1. Základní administrace – Změna oprávnění, změna hesla, změna e-mailu atd. (Prostě to co je všude úplně stejné)
  2. Moduly – články, galerie, novinky atd. (Prostě to co se dá libovolně odebírat a přidávat)
  3. Čá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
+
0
-

vrtak-cz napsal(a):

Šablonování

  1. Používat bloky {extends …} + {block …}{/block}
  2. 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
+
0
-

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
+
0
-

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.