Autor Zpráva
tark
Profil
Dělám na svém redakčním systému, který bude samozřejmě psán v šablonách. Nicméně bych se chtěl zeptat. Jak byste udělali šablony? Přes nějaký (schopnější) šablonovací systém nebo přímo přes PHP?

To znamená třeba tohle:


<h1>{$title}</h1>
<div id='text'>{$text}</div>
<div id='comments'>
{section name=cmts loop=$cmt}
{$cmt[cmts].name} // {$cmt[cmts].text}
{/section}
</div>


vs


<h1><?php $t->title() ?></h1>
<div id='text'><?php $t->text() ?></div>
<div id='comments'>
<?php
foreach($t->comments() as $cmt) {
echo $cmt['name'];
echo ' // ';
echo $cmt['text'];
}
?>
</div>


UPDATE 15:38 - Ještě třetí varianta!


<h1><?php echo $t->title (či jen $title, to už je jedno) ?></h1>
<div id='text'><?php echo $t->text ?></div>
<div id='comments'>
<?php
foreach($t->comments as $cmt) {
echo $cmt['name'];
echo ' // ';
echo $cmt['text'];
}
?>
</div>


Furt se nemůžu rozhodnout, u PHP bych se určitě tolik nenadřel a volání pluginů v šablonách by bylo mnohem jednodušší.

<?php $t->plugin('Ankety',1) ?>


Kdybyste byli klienti, která varianta by se vám víc líbila? Byly by to šablony v PHP nebo Smarty? (zkuste kdyžtak navrhnout i jiný systém, ovšem v LGPL licenci).

Předem díky za všechny odpovědi!
error414
Profil
tark
ja pouziva templatepower
tark
Profil
error414: jo, ten taky pouzivam v jednom projektu, nicmene mi nejak moc nevyhovuje... (potrebuju volat pluginy s parametry) :/
xixli
Profil
Keby som bol klient, tak by som si rozhodne vybral Smarty - väčšina klientov ti bude argumentovať, že sa nechcú učiť prog. jazyk. Smarty im príde jednoduchšie.

Výhoda Smarty je vlastne tá, že ten template kód prevedie do php - tým sa extrémne zvýši rýchlosť oproti tým systémom, ktoré to robia pri každej požiadavke.
Na to, aby sa ale Smarty použilo, je treba ho riadne osekať, lebo samotné mi prišlo dosť pomalé - po mojej prerábke a vynechaní toho, čo som považoval za nepodstatné sa rýchlosť zvýšila asi 10x.

Keď som sa pozeral na iné template systémy, tak mi prišli dosť málo komplexné, takže by sa asi do nich ťažko zapracovávala podpora pluginov. Navyše, Smarty prešiel niektorými mojimi "skúškami bezpečnosti" a výsledky boli viac než uspokojivé ;-)

Úplne najideálnejšie by bolo nechať možnosť editovať ako template kód, tak aj php kód - každý robí v tom čo mu je bližšie. Nie vždy je to však možné, preto by sa hodilo aj nastavenie práv alebo niečo podobné - nech nám užívateľ s nedostatočnými právami nerobí v php "bordel".
tark
Profil
xixli: je to pravda, i když u té sekce to taky není tak jednoduchý. smarty co jsem testoval, tak se dalo a nebylo zase tak pomalý, i když by se dalo ještě osekat. 60kB je moc, a to ještě nevím, jestli se do toho něco nepřidává.

Dvojí šablony nejsou IMHO dobrej nápad - to by byla práce na implementaci jak prase a ještě by se u toho muselo přemýšlet (jsem šprýmař) :-D
xixli
Profil
tark> no smarty je na môj vkus dosť pomalé, som zvyknutý testovať skripty na pomalom počítači (166 MHz) a na svojom (2 GHz) som nervózny keď je niečo pomalšie ako 0.1 sekundy ;-)

Implementácia 2 šablón by až taký problém nebol, ale keď sa niekomu nechce...
Ja by som do toho asi investoval, aj keď záleží dosť na type projektu no... Pre klienta rozhodne bude lepšie Smarty (ak to nie je zrovna programátor, ale ten by si ten projekt spravil sám ;-)
tark
Profil
xixli: takhle pomalý počítač teda k dispozici nemám :-) nicméně jsem na tom podobně. když to jde nad 0.1, tak se mi to nelíbí (Pentium M 1500). Jinak jak bys v tom případě udělal dvojitý šablony? Já jaksi moc nápadů nemám... :/
tark
Profil
Teda vlastně nemám vůbec žádnej.. :)
error414-
Profil *
tark
O smarty jsem uvazoval ale zdalo se mi tezkopadne. Na templatepower se me libi ze je primocary,
je pravda ze nepotrebuji nacitat pluginy s parametry.
Leo
Profil
Volani pluginu s parametry? Nejaky jednoduchy priklad (abych to pochopil i ja) by nebyl? Leo
tark
Profil
error414: ale jo, říkám, není tak špatnej, ale .. nevyhovuje :-)

leo: třeba tohle:

function plugin($name, $data) {...}


a v praxi

$t->plugin('Anketa',12); // 12 = id...

$t->plugin('PoslednichX',20); // kolik poslednich?
apod...
xixli
Profil
Leo>

<?php
function smarty_function_foo($params, &$smarty) {
// ...
}
?>

Smarty:
html {foo param="value" param2="value2"} html


tark>
Ja som šablóny strčil do databáze a aj ich "kompilovanú" verziu. Cez admin je možné upraviť oboje.
Nemusí sa zisťovať, či je treba šablóny znovu kompilovať - vždy sa skompilujú pri úprave Smarty verzie šablóny.
radimh
Profil
Používám Template Power a chválím ho všude kudy chodím, viz. http://templatepower.codocad.com/download.php
tark
Profil
Aha :-))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0