šablona – vypis článků
- MzK
- Člen | 127
Potřeboval bych udělat šablonu na výpis články, ale asi to zkouším
blbě.
v šablonách bych chtěl využívat foreach, ale myslím, že s ní to
nepůjde.
Prostě klasika:
<div class="post">
<h2><a href="{$clanek[url]}">{$clanek[name]}</a></h2>
<p>{$clanek[popis]}</p>
</div>
Tedy 3 a více proměnných. Bez frameworku jsem to dělal se šablonama (ale vlastníma) a vypadalo to asi takle:
Jak se toto nejlépe řeší pomocí nette šablon?
- Ondřej Mirtes
- Člen | 1536
Řešení alá MVP (Nette):
Model:
/app/models/ArticleModel.php
(Doporučuji nastudovat článek MVC paradox, DibiDataSource je hodně praktická věc. Pro jednoduchost ho ale v tomto příkladu nepoužiji.)
Presenter:
/app/presenters/DefaultPresenter.php
Šablona:
/app/templates/Default.default.phtml
Využívá makro {link}
pro tvorbu dotazů pomocí Nette.
Doporučuji k nastudování seriál o Nette na Zdrojáku, je to dobré čtení :)
Editoval LastHunter (27. 10. 2009 17:52)
- MzK
- Člen | 127
Díky za nakopnutí správným směrem..
Ale to MVC mi prostě nějak nesedí. Vystačím si, když oddělím HTML a
PHP.
Objektově programuji (cache, template, mysql…) ale ty pohledy nechápu ani po
přečtení zdrojáku či po webexpové přednášce Davida.
Asi v tom hledám něco co tam není nebo nenacházím něco co tam je :)
Takže, jak uvedený problém vyřeším, když budu používat jenom šablony .?
Bez pohledů.. Chci se nejprve naučit šablony a pak přidat třeba něco
dalšího (MVC pohledy).
- Honza Marek
- Člen | 1664
zacatecnik: Webexpová přednáška znalost MVC už řek bych vyžadovala. Kdybych znal dobrý zdroj, tak odkážu. Články na zdrojáku jsou poměrně dobré, ale stručností a přehledností neoplývají.
LastHunter: https://forum.dibiphp.com/…urce-a-mysql
- Ondřej Mirtes
- Člen | 1536
Jak použít čistě šablony máš v tom linku, jak jsi odkázal. Použiješ tam něco jako:
Pokud ti ale mohu poradit, prostuduj si dokumentaci (a seriál na Zdrojáku)
a využij „celé Nette“, tzn. Application, Presenter, Route apod., zkrátka
MVP. A s tím i dibi (nebo nějaký jiný
databázový layer), protože volání mysql_*
funkcí z PHP
skutečně není správná cesta.
Přinese ti to jen samé výhody, framework za tebe řeší spoustu věcí a ty se můžeš soustředit jen na samotnou logiku aplikace (výběr dat z DB, co se kde má zobrazit a jak to má fungovat). O bezpečnost a volání toho, co je potřeba, se ti postará Nette.
Honza M.: O tom problému vím, ale skutečně mě nevzrušuje :)
Editoval LastHunter (27. 10. 2009 19:02)
- MzK
- Člen | 127
No já jsem si představoval něco takového:
V šabloně bude označen blok kódu, který se bude opakovat (x krát)
{foreach $articles as $article}
<div class="post">
<h2><a href="{$clanek[url]}">{$clanek[name]}</a></h2>
<p>{$clanek[popis]}</p>
</div>
{/foreach}
A v PHP by bylo
kazdopadne dik za rychle reakce a material ke studovani..
- David Grudl
- Nette Core | 8254
zacatecnik napsal(a):
Díky za nakopnutí správným směrem..
Ale to MVC mi prostě nějak nesedí. Vystačím si, když oddělím HTML a PHP.
Klidně si spoj model a presenter, jak jej ukazoval LastHunter, do jednoho, tj. použe odděl šablonu od PHP. Ničemu to nevadí. Plné MVC můžeš začít používat, až sám objevíš jeho výhody.