ugrás a tartalomhoz

Bízzuk a Smartyra?

toro · 2008. Már. 10. (H), 14.46
A Smartyval bogarászva jött elő egy dilema.

Egy szovegben BBcode-dal lementve kép hivatkozás van, amire, ha létezik nagyítható verziója, egy linket kellene rátenni, hivatkozva a nagy képre.

Van ugyan lehetőség arra, hogy ezt a Smarty részben megcsianálja, de amennyire én látom annak kitalálása, hogy a képhez tartozik-e nagyitás a php-ra marad. De ha ez igy van, akkor nem célszerűbb-e azonnal feldolgozni az egész dolgot php-ban. Valószínüleg célszerűbb, hiszen egy egyszerű függvénnyel megoldható az ügy, míg a Smarty interpretálja a html_image-et és még egy-két kapcsolódó feltételt, ami kevésbé hatékonynak tűnik.

De akkor sérül a html/php szétválasztás elve, hiszen html kódot kezdek a php-n belül generálni.

A kérdés nem életbevágó, de kíváncsi lennék a véleményetekre.
 
1

Bízd Smarty-ra

zila · 2008. Már. 10. (H), 15.14
Azt, hogy van-e egy képhez nagyobb verzió megállapítod a kódban és smarty-nak egy olyan struktúrát adsz át, amiben benne van a nagyobb kép elérési útvonala. Ebben az esetben a template csak egy feltételt vizsgál (van-e nagyobb kép útvonal a strukturában?) és ennek megfelelően tesz linket a képre vagy sem.
2

azt tennem, de...

toro · 2008. Már. 10. (H), 15.31
igen ez rendben van, amit irsz, de talan nem jott at rendesen, ami a gondom:
ha a atadom a nagyobb kep utvonalat, akkor ezzel az erovel az egesz linkelt cuccot is atadhatnam, kephivatkozassal egyutt es akkor a Smartynak ebbe nem kellene beleszolnia - ami ugye kevesbe hatekonyan lathatna el a feladatot a BBcode lecsereleseben es a link felrakasaban
3

Persze

zila · 2008. Már. 10. (H), 16.33
Ezen az alapon az egész smarty-ra nincs szükség, hiszen php is lehet a templated. Ha kész html darabot adsz át a smartynak, akkor összekevered a megjelenítést és az üzleti logikát, megteheted, csak nem szép... Mellesleg a smary lefordítja a template-t php-ra, tehát nem lesz kevésbé hatékony max. az első futáskor illetve template változtatáskor.
4

Interfész logika

Heilig Szabolcs · 2008. Már. 11. (K), 18.41
A dolog lényege nem az, hogy a megjelenítési rétegben nem lehet logika. Lehet. Megjelenítési logika.

A megjelenítő réteg megkapja a nyers adatokat, hogy van kis kép adott url-en és van/nincs nagy kép adott url-en. Eztán a megjelenítési logika (smarty féle if) eldönti, mit kezd ezekkel az adatokkal. Lehet, lesz egy webes és egy pda-s felületed is, amik alatt a motor ugyanaz, de a felületet más template-ből kapod. Az egyikben csak thumbnaileket teszel ki, a másikban pedig a thumbnailnek ha van nagy képe, ráteszed a nagyító ikont a sarkára és lightboxban mutatod a nagy verziót klikkre. Ez mind megjelenítési logika, ami az adott interfész megvalósítástól függ.

Hasonló példa még az, hogy egy listában a sorok váltakozó színűek-e azt a megjelenítési logika kell meghatározza. Talán így világosabb meghúzin a határvonalat, melyik kódot hova kell tenni.