ugrás a tartalomhoz

XSLTAL: Sablonok egyszerűen

Hojtsy Gábor · 2005. Júl. 23. (Szo), 08.14
Amint a sablonrendszerekre terelődik a téma valamilyen társaságban, nem szoktam véka alá rejteni, hogy nem örülök a Smarty kvázi-szabvány létének, amikor valamilyen kész rendszert kell választani, nem is a Smarty sablonokat használó megoldásokat szoktam előnyben részesíteni. A Smarty egy önkényesen definiált nyelvet ad, aminek következésképpen saját feldolgozót kellett építeni, speciális eszközökkel. Mi lenne, ha meglévő megoldásokat hasznosítanánk újra? Itt jön a képbe az XSLTAL.

A TAL (Template Attribute Language) a Zope sablonnyelve, mint neve is mutatja, attribútumokkal dolgozik. Ahelyett, hogy valamilyen teljesen egyedi szintakszist erőltetne a felhasználóra, az XML névterek és az XPath jelentik az alapját, ugyanakkor sokkal egyszerűbb a használata, mint például az XSLT transzformációs ajánlásé.

Korábban is létezett TAL megvalósítás PHP-hez, PHPTAL néven. Christian Stocker azonban az idei ApacheCon Europe konferencián bemutatta az XSLTAL-t, amelynek ugyan PHP megvalósításával foglalkozott, megközelítése lehetővé teszi, hogy szinte bármely nyelvhez illesszék, hiszen a TAL sablonokból XSLT segítségével újabb XSLT sablonokat hoz létre, és aztán azokat futtatja a beérkező adatokon. A megvalósítás PHP 5 forráskódja így egy képernyőbe is belefér.

Ez a megközelítés lehetővé teszi, hogy a hétköznapi feladatokhoz TAL sablonokat használhassunk, a bonyolultabb problémákat viszont XSLT szerkezetekkel oldjuk meg.
 
1

Érdekes

dtaylor · 2005. Júl. 23. (Szo), 13.26
A koncepció mindenesetre érdekes.

Én csak annyit nem láttam, hogy hogy a bánatban lesz a php-mbol egy html lap.

Hogy iratok ki valamit: $a='valami';
Hogy kerül be a valami a végleges html-be.

Végignéztem a slide-okat, az oldalakat. Mindenütt ugyanaz az egy demo file van.
De hogy működik? Ezt nem értem. Egy url elég lenne, ahol látom. thx.

--
[ Dönci ]
2

megvalósítástól függ

Hojtsy Gábor · 2005. Júl. 23. (Szo), 13.50
Nos, a PHPTal egy egészen Smarty szerű felületet ad a PHP felé, tehát kell példányosítani, és hozzá lehet rendelni változókat a sablonhoz, amelyeket aztán abban használhatsz. Az XSLTAL pedig azt mondja, hogy az adatok XML forrásból jönnek, ás a sablon azokat veszi elő (lásd a fóliákon az XML adatfájlt, amit a PHP példa a végső transzformációban felhasznál). Namost ezt az XML forrást elég egyszerűen elő lehet állítani DOM appendChild() hívásokkal (vö. Smarty assign()), vagy ha bonyolultabb struktúrád van, akkor PEAR XML_Serializer.

Ami a TAL sablont illeti, az többek között arra az alapgondolatra épít, hogy a sablonnak önmagában bemutathatónak kell lennie, tehát egy hír így nézhet ki:

<h2 tal:content="hircim">XSLTAL: Sablonok egyszerűen</h2>
<div class="newsitem" tal:content="szoveg">Sok érdekes sablon eszköz létezik a piacon...</div>
Namost ha ezt megnézed DW-vel mondjuk, akkor egy normál híroldalt látsz, míg ha feldolgozod PHPTAL vagy XSLTAL segítségével, akkor a konkrét hírcím és hírszöveg kerül azokra a helyekre. Ez ki van találva ismétlésekhez is, stb.
3

Végig kell néznem

dtaylor · 2005. Júl. 23. (Szo), 14.15
Thx! Nem értek igazándiból az xml-hez (még nem). Nekem a phptal-os példákat kellett volna megnézegetnem. Beleásom magam egy kicsit, most már menni fog.

--
[ Dönci ]
4

phptal website

dtaylor · 2005. Júl. 23. (Szo), 14.36
Ez a site egész jó, érthető a doksi rendesen.
Ha nagyon kell, a smarty-t nem túl nehéz kiváltani, ha valaki cserélni akarja. :)

--
[ Dönci ]