Šablony – podmíněný výpis – helper, makro, něco jiného?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jiří Nápravník
Člen | 710
+
0
-

Mám dva datumy v šabloně, pokud budou ty datumy z jednoho dne, chci je nějak označit a vypsat s označením DNES, když jsou o jeden den, tak označit zase jinak a vypsat k tomu zítra. Pokud není ani jedna podmínka splněna, tak se nic nevypíše?

Jak to řešit? Je to vhodné na vlastní makro či helper? Kdy vlastně se má použít helper a kdy makro?

Helper taky často jenom přeformátuje to co dostane na vstupu. Může vubec vzít a někdy nevrátit nic, někdy zase trochu toho „html balastu“.

Jinak ano, jde to vzít a opodmínkovat to přímo v latte, ale myslím, že je lepší to oddělit někam, už jenom kvůli znovupoužitelnosti.

Majkl578
Moderator | 1364
+
0
-

Myslím, že se na to moc nehodí ani jedno, spíš bych si udělal nějakou třídu s metodou, která to dokáže zjistit. Buď vracet nějaký set stavů nebo různé metody pro různé varianty (isDaySame apod.).

Jinak co se maker a helperů týče. Helpery slouží spíš k formátování výstupu, je to jedna prostá metoda někde. Naopak makra jsou spíš komplexní compile-time transformace vstupu na nějaký PHP/HTML snippet.

Mesiah
Člen | 240
+
0
-

Jiří Nápravník napsal(a):

Výborná otázka!

Majkl578 napsal(a):

Výborná odpověď!

Šel bych cestou makra. :) Když se člověk zamyslí i nad zápisem, už na pohled mu přijde více zvláštní zápis {$dateOne|compareDateHelper:$dateTwo} oproti {compareDateMakro $dateOne, $dateTwo}, mimoto {control abc}, {form xyz} ve výsletku taky generují PHP+HTML fragmenty…

Editoval Mesiah (22. 1. 2014 1:41)