Mešanje PHPa i HTMLa

1123349577
... veliki no-no... Ali nekad se mora.

Svi dobro znamo da ne treba mešati PHP i HTML. Većina to i ne smatra normalnim PHP programiranjem. Ja imam velikih problema kad moram da mešam PHP i HTML, što je jako retko. Međutim, ima situacija:

  • Logika je suviše kompleksna da bi se lako odradila sa templateima. Tipa pageri... Mogu biti toliko složeni da je potreban blok od desetak redova koda da bi se prikazao kako hoćemo. A neki od složenijih primera gotovo da je i nemoguće uraditi pomoću templatea (a pritom biti zdravorazumno biće).
  • Potrebne su međuvrednosti da bi se nešto odradilo – ovo varira od slučaja do slučaja, ali činenica je da template engine retko kad podržavaju kreiranje promenljivih unutar samih templatea, a da se ne koristi neki workaround (tipa inserti u Smartyju sa globalnim ili statičkim promenljivima). Ispravite me ako grešim...
  • Rekurzije – koliko je meni poznato, sa čistim Smartyjem ih je nemoguće uraditi, za druge template ne znam, ali činjenica je da je rekrzijama uglavnom mesto u kodu koji može sa njima da izađe na kraj (u našem slučaju PHP).

Da li vi imate još neke primere u kojima je mešanje PHPa i HTMLa poželjno, često i nužno? Kako izlazite na kraj sa gore navedenim slučajevima?

Čitate arhivirani unos koji je napisao Ilija Studen.

Ovaj unos je originalno objavljen Aug 06. 2005.

Ovaj unos je objavljen sa sledećim labelama:

Komentari:

Gravatar

Данило je rekao/la:

Рекурзије и променљиве у Мудрици:

{* recurse.tpl: радимо са $elems *}
{assign var="oldelems" value=$elems}
{foreach key=id item=fields from=$elems}
{assign var="elems" value=$fields.children}
{include file="recurse.tpl"}
{/foreach}
Objavljeno Aug 09. 2005. #
Gravatar

Oliver je rekao/la:

Da to je i moj večiti problem. Da li postoji odgovor na ovo pitanje u obliku DA/NE? Jedno je sigurno: muka mi je od HTML-a.
Objavljeno Aug 09. 2005. #
Gravatar

korisnik je rekao/la:

Heh, i meni je muka od PHP-a, ali šta je tu je, i to je ipak programski jezik a nekad se baš to traži...

Sam Smarty jeste dovoljan da izađe na kraj i s rekurzijom, evo tu je данилов primer. Čak sam, u svom skromnom iskustvu, imao priliku da realizujem jednu rekurziju, nakon malo češanja, ali dokazah da je moguće :-)

Teško da se takve umotvorine mogu nazvati dizajnom (kako se naziva Smarty posao) ali im tu i jeste funkcionalno mesto - programiranje korisničkog interfejsa.

Nakon svega, nisam ubeđen da su to mesta gde je neophodno uplitanje HTML-a u PHP, jer ova mesta zahtevaju programerske zahvate izvodive u Smartiju, pitanje je samo može li dizajner izaći s njima na kraj.
Objavljeno Aug 10. 2005. #
Gravatar

Ilija Studen je rekao/la:

Da, video sam taj primer rekurzije na Smarty forumu (beše neka top tema). Moram priznati da je prilično zanimljivo i da sam skroz zaboravio na njega.

Sad kad malo bolje pogledam na celu priču, assign funkcija rešava mnoge probleme (do sada nisam imao potrebe da je koristim), uključujući i čuvanje međuvrednosti. Jedino pitanje koje se postavlja je koliko logike stvarno želimo da unesemo u template?

Da li smo odstupili od osnovne ideje ako template napravimo takvim da ih samo neko sa programerskim iskustvom može izmeniti?

Eto je tema za razmišljanje :) Odgovor varira od projekta do projekta to je sigurno, ali nekad je tako nešto jednostavno neprihvatljivo.
Objavljeno Aug 10. 2005. #

Izdvajam:

Blogovi:

Prijatelji:

Forumi:

Razvoj: