Psát v dokumentaci {block #name} nebo {block name}
- David Grudl
- Nette Core | 8218
Ačkoliv fungují obě varianty, v dokumentaci i příkladech musí být
používána jen jedna. Pro variantu bez mřížky hovoří skutečnost, že je
kratší a nenutí uživatele chápat a pamatovat si nový speciální znak.
Proti zase hovoří to, že v {include}
a {isset}
je
třeba mřížku použít, což může být matoucí.
Kterou verzi použijeme?
- Proki
- Člen | 66
Vzhledem k tomu, že v {ifset}
a {include}
je
nutné tu mřížku psát, tak já osobně jsem se ji naučil používat i u
{block}
. Asi bych se proto držel konvence psát mřížku
u všech těchto maker, ať je to konzistentní a začátečníky to nemate.
Další možností by mohlo být pokusit se časem tu mřížku odstranit
i z maker {ifset}
a {include}
.
- JakubJarabica
- Gold Partner | 184
Tiež súhlasím s písaním mriežky, sám to začínam v projektoch doplňovať.
- Filip Procházka
- Moderator | 4668
Jsem pro mřížku, protože člověk si pak lépe zapamatuje, že jde o označení blocku a když to uvidí u include, nebo isset, pak mu bude opět jasné, že jde o block.
- Jan Tvrdík
- Nette guru | 2595
Jen doplním, že pro mřížku je i PetrP, který kdysi prosazoval její volitelnost :) Bavili jsme se o tom na poslední Poslední sobotě.
- Richard Jedlička
- Člen | 51
{block nějaký_blok} je prostě „deklarace“ bloku. U použití {include …}, tak stačí mít v dokumentaci uvedeno (což tam je), že normálně vkládá soubory a pokud chci vloži blok, což je něco speciálního, tak dám před název #, {include #nějaký_blok}. Podle mě je to i pro začátečníka maximálně srozumitelný (pokud je začátečník tupý, tak mu ani # nepomůže :-) ). Ty deklarace bloku bych teda sjednotil bez #, což podle mě vypadá líp a include bych nechal jak je.
- kravčo
- Člen | 721
hrach napsal(a):
Psát mřížku. Mj. tu někdo kdysi napsal zajimavou nápovědu – pracovat s tim jako s kotvama. Do id mřížku nepíšete, do odkazu ano.
Nie je to protirečivé? Do id
mriežku nepíšeme a náš
ekvivalent je predsa definícia {block name}
, čiže ani tam by sme
ju nemali písať…
Keď sa použije rozumné vysvetlenie (kotvy), tak by to síce mohlo byť aj bez, ale pre začiatočníkov bude určite lepšie ak budú mať natvrdo, že meno bloku vždy začína mriežkou. A hard-core Nette estéti si môžu v definícii bloku mriežku vynechať.
- Richard Jedlička
- Člen | 51
Já si nemůžu pomóct, ale „Kdo je to ten začátečník?“ Podle toho co by se pro něj mělo dělat, je to buď tupý negramot nebo tříleté dítě, které si není schopné zapamatovat jednoduché pravidlo. Podle mě oba případi nějsou vůbec schopni se nette naučit, takže nějaký # je už nespasí.
Ta analogie s atributem id
je dobrá. Ostatně už jsem to psal
výše. Blok deklarujeme bez #, protože uvádíme jeho název a když chceme na
blok odkazovat (např. v include) dáme před název #. Tohle musí pochopit
každý, kdo má alespoň trochu rozumu.
PS: to tříleté dítě, možná podceňuji :D
Editoval uiii (20. 6. 2011 9:25)
- Cifro
- Člen | 245
uiii napsal(a):
Ta analogie s atributem
id
je dobrá. Blok deklarujeme bez #, protože uvádíme jeho název a když chceme na blok odkazovat (např. v include) dáme před název #. Tohle musí pochopit každý, kdo má alespoň trochu rozumu.
Ten kto má aspoň trochu rozumu a základy HTML. Tiež už som kde si tu na
fóre niekomu písal, ako je to s tou mriežkou.
<div id="content">
…
<a href="#content">
…
Zjednotiť zápis v docs jednoznačne treba. A takto to vyzerá že to bude
{block #name}
. A mne je to v podstate fuk ako to bude :))
- David Grudl
- Nette Core | 8218
Docela bych ocenil, kdyby šlo v HTML psát volitelně i
id="#content"
;-)
- Patrik Votoček
- Člen | 2221
Po X dnech přemýšlení pořád nevím co bych si vybral. Ale argument s vysvětlením pomocí kotvy a id se mě líbí.
David Grudl napsal(a):
Docela bych ocenil, kdyby šlo v HTML psát volitelně i
id="#content"
;-)
Jo to by se mě taky líbilo :-)
- uestla
- Backer | 799
No já osobně doteď používám při definici {block name}
,
ale při vkládání vždy {include #name}
.
Když ale vkládám šablonu ze souboru, píši
{include 'template.latte'}
.
Čili já nevím :-) Ale sympatičtější je mi definice bez mřížky, u vkládání pak s mřížkou (pro odlišení). A nebo tedy bez mřížky, ale u vkládání šablony si vynutit apostrofky (= apostrofy / uvozovky).
- Filip Procházka
- Moderator | 4668
Když já mám mřížku rád :)
Jakože by byla volitelná u include, nebo že by se zrušila úplně?
- nanuqcz
- Člen | 822
uestla napsal(a):
A nebo tedy bez mřížky, ale u vkládání šablony si vynutit apostrofky.
To by podle mě bylo nejhezčí :-) Vlastně jsem si i kdysi říkal, proč už to tak dávno není. Ale napadá mě jeden logický problém:
{var foo = 'bar'}
{include $foo} <!-- includuju soubor, nebo blok? -->
Totiž pokud bych chtěl použít proměnnou, místo stringu (jako parametr
pro makro {include}
), vznikla by nejednoznačnost.
EDIT: Díky tomuhle vláknu mě napadl jeden Feature request, který by používání mřížky opodstatnil a více využil:
{include page.latte} <!-- načte soubor page.latte -->
{include #head} <!-- načte blok #head (soubor se najde automaticky) -->
{include page.latte#head} <!-- načetl by blok #head ze souboru page.latte -->
Editoval xxxObiWan (22. 6. 2011 3:02)
- Honza Marek
- Člen | 1664
David Grudl napsal(a):
A co zavést
{include block}
bez mřížky?
Já jsem pro. Beztak je #
divnej znak, kterej maj lidi rádi jen
proto, že si na něj před lety zvykli. Asi by mi nevadilo ani vlastní makro
{includeblock block}
.
- hrach
- Člen | 1838
Panebože. Co jsou to zase za nápady zrušit mřížku? Jako proč? jakože BFU ji neumí psát, nebo to zbytečně zvětšuje velikost latte? Ne, určitě nerušit. Je to jako kdybyste chtěli z rgb barev odstranit mřížku. Dyť není nic těžkýho ověřit, jestli XXYYZZ je ve spravným 16kovým tvaru, žeano.
- Mikulas Dite
- Člen | 756
Klidně může být include bez mřížky. Není problém dát tam nějakou kaskádu, například nejdřív blok, potom soubor atp. Stejně má soubor příponu, kterou se může od bloků odlišit. Proč to není tak snadné?
- David Grudl
- Nette Core | 8218
V tuto chvíli existuje
{includeblock 'page.latte'}
{include #head}
... a treba ... {include #footer}
Tento zápis je sice o něco delší, ale je z něj zřejmé, že se soubor inkluduje jen jednou a načítají se přitom všechny bloky.