Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Nette Framework: Chytré šablony

Mastodont
Mastodont (neregistrovaný) 85.132.159.---
7. 4. 2009 7:06

Syntaxe

... Pokud by proměnná obsahovala HTML kód a chtěli bychom ji vypsat bez jakékoliv trasformace, stačí přidat vykřičník: {!$item->name}. ...

Tipnul bych si, že většina programátorů si pod tímto zápisem představí úplně něco jiného než vypnuté escapování. A to je IMHO největší problém u D.G. - on naprosto kašle na logiku syntaxe, viz Texy, která je totálním galymatyášem nejrůznějších typů závorek apod.

Co třeba noescape($item->name) .. nebo filtr @@$item->name | noescape@ ..
v6ak aura:72
7. 4. 2009 7:35

Re: Syntaxe

Toto je dost sporná věc. Už proto, že kdo používá CBF, ten bude většinou chtít vypisovat obsah proměnných a ne negovat boolean a vypisovat v surovém stavu (bez převodu na ano/ne apod.).
Ale je pravda, třeba taková dvojtečka (to mě tak letmo napadlo) by byla asi lepší.
RuDa
RuDa (neregistrovaný) ---.znojmo.cz
7. 4. 2009 8:33

Re: Syntaxe

Já zase docela chápu, proč je tam ten vykřičník. Když udělám šablonu pro šéfa, který si ji třeba později chce upravit k obrazu svému, tak on pochopitelně nic neví o nějaké negaci, pro něj vykřičník znamená "pozor, (potenciálně) nebezpečná akce" (a přesně to jsem mu také řekl).
Tzn. v (pod)šabloně může přesouvat, přidávat nebo ubírat vyjmenované parametry (např. {$zbozi->popis} ), jejichž seznam dostal, ale případné vykřičníky musí napřed konzultovat. :-)
Peter Helcmanovsky aura:80
7. 4. 2009 9:07

Re: Syntaxe

Ja myslim ze idealni sablony nemaji mit s programovanim nic spolecneho (proc, kdyz jde jenom o formu zobrazeni?). Takze ten vykricnik mi v tomhle kontextu nevadi, spis mi vadi ze jako linemu programatorovi se mi nechce ucit dalsi "jazyk" sablon, co znamena ze idealni sablony by meli mit i minimalni syntax (ktera samozrejme umoznuje maximum moznosti).

Z tohohle letmeho pohledu na sablony Netty to vypada ze se k tomu idealu blizi alespon tak jako jine sablonovaci systemy, i kdyz neni nad zkusenosti z velkeho projektu, tam se teprv ukaze.


Co by mne osobne zajimalo mnohem vic je reseni podpory prekladu, jak by se pan tvurce Netty vyporadal s touhle ulohou tak aby to bylo pokud mozno efektivni na vsech urovnich, t.j. zatez serveru, srozumitelnost kodu a moznost nechat prekladat stranky lidi kteri o programovani nic nevi a veci jako escapovani & nebo jmena promennych jim nic nerikaji. (ze je naucim neprekladat jmena promennych, s tim se pocita, ale vysvetlovat jim kompletni zaludnosti syntaxe ruznych specialnich znaku nelze, takze idealni system prekladu tyhle veci pred nimi ukryje natolik, aby nemohli nic pokazit)

Osobne si myslim ze sablony jsou jakymsi prvym krokem k tomuhle idealu, ale zajimalo by mne jak by resil konkretni implementaci takoveho systemu, kdy si uzivatel nastavi ve svem profilu svuj jazyk a pak se mu web zobrazuje ve zvolenem jazyce.
romansklenar
romansklenar (neregistrovaný) ---.net.upc.cz
7. 4. 2009 17:11

Re: Syntaxe

Podpora pro překlady je v Nette taky, volá se zápisem: {_'text to translate'} či {!_'text to translate'}. Co dělá vykřičník, to už asi uhádnete ;)

Nette ale nikomu nenutí používát nějaké konkrétní translatory/adaptéry, vyžaduje jen, aby implementoval rozhraní ITranslator, takže se dost dobře dá použít i ten ze Zendu, příklady implementace se dají nalést ve fóru. Podpora pro překlady je i ve formulářích, které jsou zmíněny některém z předchozím dílu seriálu.
KLoK
KLoK (neregistrovaný) ---.kve.cz
7. 4. 2009 9:13

Re: Syntaxe

No to je prave dost vyhoda, protoze pro tvorbu sablon nepotrebujete programatora a staci Vam clovek se znalosti html a jednoducheho sablonovaciho jazyka. Pokud muzete plytvat programatorskym potencialem na tvorbu sablon, tak si toho luxusu uzivejte.

Navic velka cast programatoru je schopna delat ve vice jazycich a tohle jim urcite problem cinit nebude

A zaverem: neni problem vzit sablonovaci system pana Grudla a prepsat si jeho "CurlyBracketsFilter" na "DoubleAtFilterWithEscapeCalledByFunctionFilter"
Jarda
Jarda (neregistrovaný) ---.65.142.82.ip.b26.cz
7. 4. 2009 9:16

Re: Syntaxe

Ale vůbec ne, ta syntaxe je IMHO vynikající a naprosto snadno přejde do krve.
Mě osobně přijde podstatně hezčí a lepší než například syntaxe Smarty. Navíc se
dá CurlyBracketsFilter velice snadno rozšířit o další makra a filtry. Opravdu nevím, proč bych měl psát noescape($item->name) .. nebo filtr @@$item->name | noescape@ - to je úplně psycho :)
v6ak aura:72
7. 4. 2009 9:46

Re: Syntaxe

Ještě dodám, že noescape mi přijde jako nejhorší zde zmíněné řešení - vypadá to jako volání funkce, což není možné zde použít.
Jarda
Jarda (neregistrovaný) ---.65.142.82.ip.b26.cz
7. 4. 2009 10:03

Re: Syntaxe

No a co se týče Texy a údajného galimatiáše - svou matku jsem naučil psát Texy (potažmo tedy validní html/xhtml) během 10 minut (narozdíl od wordu nebo Wysivyg editorů) - a ta opravdu není kodér ni programátor :)
Mastodont
Mastodont (neregistrovaný) 85.132.159.---
8. 4. 2009 19:39

Re: Syntaxe

Super, matka jako universální argument :-)))) Tak se zkuste zamyslet, proč se světě rozšířily různé varianty BBCode namísto třeba Markdown - jestli to náhodou nebude tím, že mají jednoduchou a hlavně konsistentní syntaxi.
Jarda
Jarda (neregistrovaný) ---.65.142.82.ip.b26.cz
9. 4. 2009 9:46

Re: Syntaxe

Máma řikala, že BBCode stojí za prd. :-)

Ne, ale vážně, každý co potřebuje, ale mě přijde Texy syntaxe šitá
na míru BFU (a mě taky). Zase tolik pravidel tam není, ne? :)
uživatel si přál zůstat v anonymitě ---.net.upc.cz
8. 4. 2009 22:48

Re: Syntaxe

Jiste, mne se taky pise mnohem lip v ruznych wiki syntaxich, uz jen proto, ze onen Word skoro neovladam ...

Nicmene je fakt, ze Texy syntaxe je podle me docela zverstvo :/
kulda
kulda (neregistrovaný) ---.karneval.cz
2. 2. 2010 15:03

Re: Syntaxe

Naopak, Texy syntaxe je velmi elegantní. Sám jsem si dělal před pár lety vlastní wiki a vymýšlel vlastní syntaxy, aby byla co možná nejjednodušší… a když jsem pak viděl syntaxi Texy, byla mnohem jednodušší a intuitivnější něž ta moje.

Zasílat nově přidané příspěvky e-mailem