Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Hozzászólások

(#1) SupaCow


SupaCow
tag

jó cikk. munkahelyen is smarty-val dolgozom.
várom a folytatást.

f: @geboleather

(#2) cucka


cucka
addikt

még soha nem használtam smarty-t, de így elsőre megmondom őszintén, nagyon nem vágom, mi olyan nagyszerű benne..

(#3) DArchAngel válasza cucka (#2) üzenetére


DArchAngel
tag

Nem mindenkinek jön be még sokadik látásra sem.
Valóban nem érdemes használni, ha nem szeretnéd az programlogikát és a megjelenítést különválasztani. Én már jó pár éve programozok PHP-t, és sokkal könnyebbnek és logikusabbnak találom, ha van valamilyen sablon-motor az alkalmazás alatt. De persze ez is ízlés dolga. Megfelelő függvényekkel hasonló hatást lehet elérni, mint Smarty-val, de ez legalább már kész, ráadásul elég elterjedt.

''Hand of fate is moving, and the finger points to You...''

(#4) tbs válasza cucka (#2) üzenetére


tbs
addikt

Hmmm... Én pl. a html felületet 99%-ban egy php-t sem ugató, de jól html gépészkedő csajszival gyártatom, kopipészt szmarti kódrészeket tetetek bele vele. Eredménye: elfogadható (csinos) userfelület, amivel nem nekem kell szívni... Ő dumál a felületböködővel, őt "szivatják" a "kicsit lilásabbra szeretném", meg "nem ennyi hírt akarok egyszerre" jellegű kívánságokkal.

(#5) cucka válasza DArchAngel (#3) üzenetére


cucka
addikt

igazából arra gondoltam, hogy az alkalmazáslogika és a megjelenítés különválasztása fontos dolog, de ezt ugyanilyen hatékonyan meg lehet php-val is oldani. pl. a smarty foreach-e helyett pont ugyanazt meg lehet php-ban is írni, ugyanolyan végeredménnyel, ugyanúgy tele lesz szemetelve a html kód, csak a smarty-s cuccok helyett php-s cuccokkal, egykutya.

ismétlem, nem foglalkoztam template rendszerekkel, tehát ha valaki tud ellenérveket, azt szeretettel várom.

tbs - hű de nagyon örülnék, ha nálunk is lenne ilyen ember aki html-t, css-t faragja, a weboldal barkácsolós szakmában ezt szeretem legkevésbé.

[ Szerkesztve ]

(#6) DArchAngel


DArchAngel
tag

Sok helyen külön van választva a html és PHP, ahogy tbs írta.
Abban igazad van, hogy mindent meg lehet csinlni Smarty nélkül. Ha folytatom a témát, akkor talán majd látsz olyan példákat, amik felkeltik az érdeklődésed.
Személy szerint én jobban szeretem, ha a PHP kódban csak az adatok kinyerése, manipulálása stb. van, tisztán, átláthatóan, és nem a HTML elemek közül kell kimazsoláznom, hogy akkor most mi, merre, hány méter.

''Hand of fate is moving, and the finger points to You...''

(#7) burgatshow válasza cucka (#5) üzenetére


burgatshow
veterán

De például nem mindegy, hogy a sablon fájlban kell áttúrnod a kódot mert valamit meg kell változtatni (mondjuk design csere alkalmán) vagy egy PHP-HTML kombóval feltöltött fájlt.

(#8) SYS64738 válasza cucka (#5) üzenetére


SYS64738
csendes tag

Pontosan ezt akartam leírni, amikor elolvastam a cikket.
A tiszta php-s sablonok épp olyan jók mint a smarty-val készítettek, sőt, gyorsabbak, és könnyebb testreszabni őket szerintem.

Hogy a php-ben nem járatos designer vajon a smarty vagy a php sablonelemeket érti meg jobban nem tudom, ezzel kapcsolatban nincsenek tapasztalataim, de nem látom be, hogy a php-t miért lenne nehezebb.

Ha pedig valóban komoly sablonrendszert akar az ember akkor inkább XSLT.

(#9) DArchAngel válasza SYS64738 (#8) üzenetére


DArchAngel
tag

Az XSLT-t nem ismerem, majd ha lesz időm, ránézek.
Egyszer szeretnék egy összehasonlítást csinálni a Smarty és a "tiszta" PHP között, de sajnos elég kevés időm van. Ez a téma pedig engem is nagyon érdekel. Ha kérhetem, ide várnék teszt eseteket...

[ Szerkesztve ]

''Hand of fate is moving, and the finger points to You...''

(#10) SYS64738 válasza DArchAngel (#9) üzenetére


SYS64738
csendes tag

Mivel a Smarty php fájlt hoz létre, és azt futtatja le a php értelmezőn, semmiképp nem lehet gyorsabb, mint a tiszta php. Kivéve pesze, ha a fordítóhoz nem használnak gyorstárat, ugyanis a Smarty alapból tartalmazza.

A Smartynak ezzel együtt igen komoly létjogosultsága van akkor, ha a webdesigner nem teljesen megbízható! Ha ugyanis php kódú a template, akkor onnantól rosszindulatú kódot is elhelyezhet akár az oldalon.
Ha viszont a designer belsős és feltehetően az is marad, úgy vélem nem szükséges a Samrty.

Az XSLT egy W3C aljánlás. Voltaképp egy XML alapú sablonnyelv rendkívül széleskörű felhasználhatósággal. Bonyolultabb, viszont sokkal sokoldalúbb mint a Smarty. A bonyolultsága a hátránya is, programozásban képzetlen designer esetén felejtős, márpedig ők rendszerint azok...
Az XSLT előnye, hogy az IE, a FF és az Opera is támogatja, tehát akár egy dinamikus adat és egy statikus sablonfile esetén a böngésző is képes összefésülni. Bár az igazat megvallva még sosem láttam kliens XSLT-re épülő portált. :)
Inkább az AJAX-ot preferálják.

(#11) mad1234


mad1234
csendes tag

ok... smarty vs php szerintem:
még nem volt hozzá szerencsém, de ha jól értem: :W

class tpl {

private $file;

public function tpl($file) {
$this->file = $file;
}

public function disply() {
$vars = get_object_vars($this)
foreach ($vars as $key => $val) {
$key = $val;
}
include($this->file);
}

}

és akkor most csináltam egy egyszerü smarty-t???!! :F

$t = new tpl("template/ecet.php");
$t->szoveg = "hahoo vilag!";
$t->disply();

ahol az ecet.php:

<html>
<body>
<?echo $szoveg;?>
</body>
</html>

ha ennel többrôl van szó pls. valaki jelezze, mert ha a smarty tényleg csak ennyi (elvben), akkor nem nagy cucc... :D

iu: a kodot csak példaértékkel, a megértés kedvéért irtam... (lehet benne hiba is!)

mad

(#12) DArchAngel válasza mad1234 (#11) üzenetére


DArchAngel
tag

Húha, nem gondoltam volna, hogy ide még ír valaki.
A Smarty ennél sokkal többre képes, ha gondolod, nézz utána.

Kódot hirtelen ezt találtam, ez egy foreach a Smartyban, aminek a php oldalon elég egy tömböt megadni, hogy végigmenjen rajta:

<smarty: foreach from=$sablonok item=egysablon :>
<tr>
<td class="color" style="border-bottom-color: white; border-bottom-width: 1px; border-bottom-style: solid;">
<input class="input" type="text" name="leiras[<smarty: $egysablon.sablon_id :>]" size="50" value="<smarty: $egysablon.leiras :>" <smarty: if $egysablon.ervenyes == "f" :> readonly <smarty: /if:>/>
</td>
</tr>
<smarty: /foreach :>

Igen, van benne egy if is. Természetesen ezeket mind megírhatod Te is PHP-ben, de ez már készen van : :)

''Hand of fate is moving, and the finger points to You...''

Copyright © 2000-2024 PROHARDVER Informatikai Kft.