Psát v dokumentaci {block #name} nebo {block name}

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8218
+
0
-

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

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}.

nanuqcz
Člen | 822
+
0
-

Z {include} to podle mě odstranit nepůjde, makro by pak nemělo jak poznat, jestli jde o blok, nebo o název souboru (co když s tímto názvem bude existovat i soubor, i blok?). Já jsem pro # všude.

Pavel Kouřil
Člen | 128
+
0
-

Rozhodně konzistence, tzn. # psát. :)

JakubJarabica
Gold Partner | 184
+
0
-

Tiež súhlasím s písaním mriežky, sám to začínam v projektoch doplňovať.

Tharos
Člen | 1030
+
0
-

A já jsem se tu mřížku pracně odnaučil psát, protože mi přišlo, že oficiální zdroje (examples, skeleton…) ji používají čím dál méně a chtěl jsem být kompatibilní :). Ale samozřejmě jsem pro konzistentní zápis, takže za mě +1 pro mřížku.

22
Člen | 1478
+
0
-

když jsou všichni pro „mřížku“, možná by ani framework neměl umožňovat zápis bez ní tedy :-)

Editoval 22 (18. 6. 2011 14:17)

Filip Procházka
Moderator | 4668
+
0
-

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.

Ondřej Mirtes
Člen | 1536
+
0
-

Určitě pro mřížku, jsem pro sjednocení.

hrach
Člen | 1838
+
0
-

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.

Jan Tvrdík
Nette guru | 2595
+
0
-

Jen doplním, že pro mřížku je i PetrP, který kdysi prosazoval její volitelnost :) Bavili jsme se o tom na poslední Poslední sobotě.

westrem
Člen | 398
+
0
-

Pro mriezku

grey
Člen | 94
+
0
-

Jsem pro psaní mřížky. Kdysi už tu byl topic, že by se zápis bez mřížky zakázal úplně…

Honza Marek
Člen | 1664
+
0
-

Proti :)

studna
Člen | 181
+
0
-

Rozhodně pro #.

Petr Stribny
Člen | 16
+
0
-

Sjednotit.

Vyki
Člen | 388
+
0
-

Pro mřížku

srigi
Nette Blogger | 558
+
0
-

Osobne sa mi zapis {block #nejeky_blok} nepaci. Ale ked sa na to pozriem z perspektivy nette-zaciatocnika, nekonzistencia by neprospela.

Richard Jedlička
Člen | 51
+
0
-

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

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

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

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 :))

22
Člen | 1478
+
0
-

+1 Cifro: to bych tam určitěl dal jako berličku, že mrižka je v podstatě ID jak v css a lze tu znacku vynechat, tim snad je to jasné. V doc bych asi vsude naridil pouzivat mrizku, kde ji pouzit lze.

Editoval 22 (20. 6. 2011 10:29)

David Grudl
Nette Core | 8218
+
0
-

Docela bych ocenil, kdyby šlo v HTML psát volitelně i id="#content" ;-)

hrach
Člen | 1838
+
0
-

kravčo napsal(a):
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ť…

To nebyl argument na to, že chci psát mřížku, pouze konstatování.

Patrik Votoček
Člen | 2221
+
0
-

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 :-)

mkoubik
Člen | 728
+
0
-

Teď jsem to zkoušel a normálně to funguje:

<div id="#test">kotva</div>
<a href="##test">link</a>

:-)

bojovyletoun
Člen | 667
+
0
-

# true

David Grudl
Nette Core | 8218
+
0
-

A co zavést {include block} bez mřížky?

uestla
Backer | 799
+
0
-

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

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

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)

mkoubik
Člen | 728
+
0
-

A co testovat, jestli $foo končí na .latte, .phtml, nebo .php? Používá někdo jinou příponu pro šablony?

nanuqcz
Člen | 822
+
0
-

@mkoubik: To už by se pak nemohlo říkat, že Nette nikomu nic nevnucuje (vnucovalo by přípony souborů). A taky by pak už nebylo možné realizovat můj feature request (o příspěvek výše) :-)

Honza Marek
Člen | 1664
+
0
-

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

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

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

V názvu bloku nemůže být tečka.

nanuqcz
Člen | 822
+
0
-

Sry že se s tím pořád vnucuju, ale mám pocit, že si toho nikdo nevšiml :-) Takže pokud se zruší mřížka, můj nápad

{include page.latte#head}  <!-- načetl by blok #head ze souboru page.latte -->

už realizovat nepůjde? Tímhle se mřížka podle mě ospravedlňuje.

David Grudl
Nette Core | 8218
+
0
-

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.

nanuqcz
Člen | 822
+
0
-

Ahaa, makro {includeblock} jsem doteď nechápal, teď už ano, díky :)