Jump to content
php.lv forumi

templates


Klez

Recommended Posts

Varbūt kaads var pastaastiit mazliet par template

kaa vinjas straadaa, kaa izmantot, kaa pielietot.

buutu labi ja arii kaadu mazinju paraudzinju paraadiitu, taadu pavisam vienkaarshu...

paldiess jau ieprieksh

Link to comment
Share on other sites

Varbūt kaads var pastaastiit mazliet par template

kaa vinjas straadaa, kaa izmantot, kaa pielietot.

buutu labi ja arii kaadu mazinju paraudzinju paraadiitu, taadu pavisam vienkaarshu...

paldiess jau ieprieksh

12445[/snapback]

 

 

ko tur daudz?

teplates ir laba lieta, kad jāatdala PHP no HTML.

ir html template faili kuri satur tīru html kodu + komandas, saprotamas tikai template parserim.

piemēram

<html>
<title>{title}</title>
<body>
{teksts}
</body>
</html>

 

kad parsēsi ar kādu template enginu to failu un definēsi ka {title} ir piemēram "Mana mājas lapa" un {teksts} ir "Sveiki manā mājaslapā" tad izvadīsies ārā:

<html>
<title>Mana mājas lapa</title>
<body>
Sveiki manā mājaslapā
</body>
</html>

 

tāds primitīvs piemērs, bet ceru ka saprati ;)

Link to comment
Share on other sites

Vispaar jau laikam neiebraucu. kaa taa parseeshana notiek?

Kaa jamo definee?

define("{title}", "Mana lapa");

tip taa?

 

caur PHP? vai kaa?

 

buutu jauki ja to visu ar PHP paraadiiu. kaa un kas.

Kaa nodefineet un kaa pie vinja griezties

Edited by Klez
Link to comment
Share on other sites

Negribu saakt ticiibu / flame karus (ir jau bijushi ne vien vienu reizi :) ), bet, manupraat, ar templateem ljoti aizrauties nevajag.

 

Proti mineeto piemeeru

 

<html>
<title>{title}</title>
<body>
{teksts}
</body>
</html>

 

Var aizstaat ar

<html>
<title><? echo $title; ?></title>
<body>
<? echo $teksts; ?>
</body>
</html>

 

Kas principaa arii ir ir php koda nodaliishana no html .. Pie kam ja aizstaaj echo ar <? =$title ?> tad veeljovairaak (vizuaali).

 

Tai pashaa laikaa otrais variants stradaas krietni aatraak jo nav jaaielasa papildus templates fails nav jaameklee kur tajaa ir kaut kaadi ieprieksh predefineeti tagi utt.

Vieniigaa jeedziigaa vieta vareetu buut wysiwyg editoros, jo <? ?> ir tagi liidz ar to preteeji {} tas netiek paraadiits. Nekorekti darbojoties var ieviesties sintakses kljuuda kas template gadijumaa var tikt noveersta.

Link to comment
Share on other sites

neesu straadajis ar template un zinu ka tas naf nekas praatiix. manupraat - lieka laika teereeshana. un kaa jau Roze rextiij - tad taa arii diezgan labi var straadaat.

es parasti visu salieku pa funkcijaam, vai piem forumam vienu faulu uztaisu un tad tik kaa vajag, tad pamaina izkaartojumu un lieta dariita ....

Link to comment
Share on other sites

Negribu saakt ticiibu / flame karus (ir jau bijushi ne vien vienu reizi :) ), bet, manupraat, ar templateem ljoti aizrauties nevajag.

 

Proti mineeto piemeeru

 

<html>
<title>{title}</title>
<body>
{teksts}
</body>
</html>

 

Var aizstaat ar

<html>
<title><? echo $title; ?></title>
<body>
<? echo $teksts; ?>
</body>
</html>

 

Kas principaa arii ir ir php koda nodaliishana no html .. Pie kam ja aizstaaj echo ar <? =$title ?> tad veeljovairaak (vizuaali).

 

Tai pashaa laikaa otrais variants stradaas krietni aatraak jo nav jaaielasa papildus templates fails nav jaameklee kur tajaa ir kaut kaadi ieprieksh predefineeti tagi utt.

Vieniigaa jeedziigaa vieta vareetu buut wysiwyg editoros, jo <? ?> ir tagi liidz ar to preteeji {} tas netiek paraadiits. Nekorekti darbojoties var ieviesties sintakses kljuuda kas template gadijumaa var tikt noveersta.

12481[/snapback]

 

:) TIk un taa palieku pie taa, ka templates ir veerts lietot, ja:

1) Aatrdarbiiba nav pats galvenais projekta sekmiibas kriteerijs (nu tieshaam, po tachu par to 50-200% aatrdarbiibas sabremzeejumu, ko izdara laba templeishu sisteema)

2) Projekts ir pietiekoshi kompliceets / dinamisks

3) Tam jaabuut viegli customizeejamam. (Lasaamiiba {TEKSTS} ieksh HTML juuklja tomeer ir izlasaams vieglaak nekaa <? echo $teksts; ?>)

4) Templates gribam nestot vienu otraa.

 

Un kaut kas interesants:

http://phpsavant.com/yawiki/

Link to comment
Share on other sites

piekritīšu des.

piemērs

<html>
<title><? =$title; ?></title>
<body>
</body>
</html>

ir tāds visai mānīgs, jo NAV html atdales no php. resp - lame users samet kaut kādas kreisās komandas un vsjo. nav vairāk templates :D

+ arī kad sākās nevis parastie echo, bet kaut kas komplicētāks (dati no klasēm, funkcijas)

neliks taču:

<title><? escape($cls->konv_src($title))

(funkcijas, mainīgie un klases ir izdomāti - NEPIESIETIES!!!! :) :) )

users, kuram iespējams būs tālāk jāmodificē īsti nesapratīs, ko no viņa grib, bet likt atsevišķi iekš to php definīcijas katram $title,$name,$text būtu vispār bezjēgā nahrenizatoriski nevajadzīgi.

 

un kā rāda pieredze - template klase nemaz tik daudz nebremzē neko. nu varbūt 0.005 - 0.01 sekundes uz normālas kastes (tie ir mani personiskie novērojumi). so nedomāju, ka tas ir liels zudums attiecībā pret smuku template klasi, kur viss smuki sadalīts pa plauktiņiem un html ir tiešām atdalīts no php :)

paldies.

Link to comment
Share on other sites

/me atkal te ar output bufferingu, resp. lai tik ir tas

<html>

<title>{title}</title>

<body>

{teksts}

</body>

</html>

bet ā) ne iekš mainīgā bē) case-sensitive

 

index.php jāizskatās šādi:

 

<?php

ob_start();

?>

<html>

<title>{title}</title>

<body>

{teksts}

<?php

include('cits.template');

?>

</body>

</html>

<?php

$htmls=ob_get_clean();

foreach($template_mainīgais as $indekss=>$vertiba)

$htmls=str_replace('{'.$indekss.'}',$vertiba,$htmls);

echo $htmls;

flush();

?>

 

bet vispā man tās templātsistēmas ne visai

 

NB: tēma tika plaši apspriesta, tāpēc vēlams apskatīt vismaz http://php.lv/f/index.php?showtopic=59 topiku (tur tālāk pa tēmu)

Link to comment
Share on other sites

ir tāds visai mānīgs, jo NAV html atdales no php. resp - lame users samet kaut kādas kreisās komandas un vsjo. nav vairāk templates

+ arī kad sākās nevis parastie echo, bet kaut kas komplicētāks (dati no klasēm, funkcijas)

neliks taču:

Nu redz te ir divas galeejibas "lame users" arii templati var sabojaat neieliekot teiksim korekti {} vai kaut ko citu :) Kaa jau rakstiiju, piekriitu, ka templeishu gadijumaa veel var meegjinaat kaut ko salabot..

 

<title><? escape($cls->konv_src($title)) <- shis nu noteikti nav vajadziigs un noteicoshais jo izvades mainiigos tu tikpat labi vari apstraadaat pirms izvadiishanas un templatee taksh ar neliksi kautko taadu ne?

 

un kā rāda pieredze - template klase nemaz tik daudz nebremzē neko. nu varbūt 0.005 - 0.01 sekundes uz normālas kastes

Nu tad tev viss veel ir priekshaa..

Jo mana peedejaa laika pieredze ir taada ka shaadas aatrdarbiibas izmainjas ir gandriiz fataalas :) saitam ar 3 ljimonu tiiriem php pieprasiijumiem dienaa un manupraat uz normaalas 4CPU kastes :)

Link to comment
Share on other sites

  • 3 weeks later...

Līdz šim nebiju domājis izmantot temlate sistēmu, bet nesen man bija šāds gadījums:

Visā lapā ir html elements BOXIŅŠ un un pēkšņi izdomāju, ka man vajag boksiņam izmainīt kodu! Un ko nu? Uz KDE ar FileReplace es varēju nomainīŧ atsevišķas rindas, bet tur kur teksts bija 2 rindās, man gan neizdevās nomainīt.

 

Bet tagad gan kaut kas būs jasāk domāt!

Link to comment
Share on other sites

×
×
  • Create New...