Adresy jako v Link i v makru Include
- Filip Procházka
- Moderator | 4668
Zdravím,
napadlo mě, že by se nám líným dala ještě víc zpříjemnit práce, kdyby
se dalo místo
{include '../../../templates/@nejaka.sdilena.sablona.phtml'}
napsat něco jako
{include ':Front#/nejaka.sdilena.sablona.phtml'}
{include 'akce#nejaka.sdilena.sablona.phtml'}
{include 'presenter:akce#nejaka.sdilena.sablona.phtml'}
{include ':modul:presenter:akce#nejaka.sdilena.sablona.phtml'}
Zkrátka, stejně jako se zapisují odkazy.
Imho by se zvýšila přenositelnost a čitelnost kódu, jenom se mi nelíbí
vniklá závislost na odkazech.
Jenom teď přemýšlím, jaký by byl dobrý znak, pro oddělení cesty ve
stromu modulů a cesty k templatě, ale #
je imho
nejvhodnější.
Když si večer vzpomenu tak to zkusím implementovat
Líbilo by se to někomu? nebo je to překombinované?
- _Martin_
- Generous Backer | 679
Nelíbilo=)
Ale ne, vážně: přijde mi to překombinované = právě ta nutná závislost na presenteru a místy skřípající syntaxe, viz:
{include ':modul:presenter:akce#nejaka.sdilena.sablona.phtml'} <!-- u odkazu má "akce" smysl, ale u šablony? když akce je sama o sobě šablonou -->
Já vím, jsem takový konzervativec=) Kdyby se přeci jen mělo něco takového realizovat, pak konstruktivně doporučuji zachovat možnost obou způsobů (tj. vkládat soubory cestou i zápisem odkazu).
- Filip Procházka
- Moderator | 4668
_Martin_: samozřejmě jsem měl na mysli zachovat obě možnosti :)
žádnou závislost na presenteru přece nenaznačuju, viz první příspěvek
{include ':Front#/nejaka.sdilena.sablona.phtml'}
:Front
je zde jasný modul čili cesta by vedla na
app/FrontModule/templates/
,
kdežto za :Front:Prihlaseni:
by mohlo vest na
app/FrontModule/templates/Prihlaseni/
,
je to jenom o tom vymyslet konvenci, je tu pár variant, které odkazování
v Nette nepoužívá, ale to se dá všecko vymyslet :)
mkoubik: ale samozřejmě že existuje, máš přece
stromovou strukturu modulů a ta má dost jasnou konvenci, stačí aplikovat
konvenci tvoření url a místo url by se to jen převádělo na cestu
k templatám modulu. A nastuduj si třídu
\Nette\Application\PresenterLoader
, nějaký ->link() vůbec
nepotřebuji ;-)