jak vložit {block #kus_title} do šablony z databáze?
- Jarda
- Člen | 25
Ahojte,
začal jsem používat nové šablony využívající bloky a jsem z nich
unešen. Dokud mám texty jednotlivých stránek/článků v souborech a
vytvářím je jako potomky base_šablony a layoutu, tak je to paráda. Ze
systému bloků jsem opravdu nadšen.
Potřeboval bych poradit nebo nasměrovat, jestli je možné nějakým způsobem zpracovat bloky načtené z databáze, aby mi probublaly až do layoutu.
Nyní funguji takto: mám layout stránky
{*@layout - klasický základ html stránky*}
<html>
<head>
<title>{block #title}Můj web{/block}</title>
<meta ...>
...
</head>
<body>
{include #content}
</body>
</html>
různé šablony kostry obsahu, která je potomkem layoutu
{* base_template_with_sidebar.phtml *}
{extends $layout}
{block #content}
{block | texy}
<div id="text_content">
{include #textcontent}
</div>
<div id="sidebar_content">
{block #sidebar}default sidebar content{/block}
</div>
{/block}
{/block}
šablonu článku, která je potomkem jedné z koster obsahu
{* index_article.phtml *}
{extends base_template_with_sidebar.phtml}
{block #title}{include #h1} | {include #parent}{/block}
{block #description}....{/block}
{block #keywords}...{/block}
{block #textcontent}
{block #h1}Nadpis, který mi probublá až do title layoutu{/block}
############################
text článku
{/block}
{block #sidebar}
Tady chci vlastní obsah sidebaru
=================================
- Lorem ipsum dolor sit amet
- consectetuer Sed Cum
- habitant Ut Suspendisse.
{/block}
Moc by mi usnadnilo práci, kdybych byl schopen obsah článků podobně jako je naznačeno v index_article.phtml uchovávat v databázi. Koumal jsem nad tím, ale zatím jsem nepřišel na nic funkčního.
- Jak aplikovat latte filtr na obsah načtený z databáze, aby si to zpracovalo alespoň bloky a ty problublaly k layoutu?
- Nabízí se otázka, jestli chtít krom zpracování bloků také eval() např. pro generování linků, cykly apod.
Ty popisované bloky by se daly přes dtb částečně obejít tím, že by se v dtb uchovávaly zvlášt title, description, keywords atd., ale pak nastává problém se zde naznačeným include #h1 z textu do title a např. se sidebarem, protože u každé stránky třeba sidebar nepotřebuju a u některých stránek chci title jiný než je H1 v textu.
Koňské řešení by bylo z databáze přesypat obsah do souborů jako jednotlivé šablony článků a fungovalo by to jako teď.
Co si o tom myslíte? Jakou cestu zvolit?
- Ondřej Mirtes
- Člen | 1536
„If eval() is the answer, you're almost certainly asking the wrong question“ :))
Systém bloků a jejich zpracování je rozparsován a předpřipraven v cachi, takže si myslím, že nějaké run-time operace, které by změnily zpracování bloků, možné nejsou.
A opět – jednalo by se o dost velkou zbraň pro uživatele CMS a útočníky.
- Ondřej Mirtes
- Člen | 1536
Přímé editování souborů v takovém případě je řešení :) Do databáze bych si akorát pro informaci ukládal jednotlivé revize, protože de facto edituješ zdrojáky své aplikace a nemít je verzované (např. Gitem) je také cesta do pekel :)