Odvajanje html_a od php_a

Pozdrav!

Šta misli te dali valja vako odvajati dizajn od php:

Napravim folder tema i u folder tema datoteku predlozak.php i u tu datoteku dodam vrh (header) i dno (foter) stranice.

e sad napravim još jednu datoteku login_predlozak.php u folderu tema

i to je npr. dizajn

e sad php kod:

u root napravim datoteku include.php i u nju includam predlozke iz tema

i kad sam to napravio radim stranicu za login (login.php)

Šta mislite dali valja vako odvajati dizajn od php_a ?

Pa generalno to je skoro pa nemoguce :slight_smile:

Bilo kako da odvojis template uvijek ces morati nesto sa php-om ili sa jezikom template enginea da pises u njemu. Ali odvojiti u smislu da ti logika nije skupa sa prezentacijom to da. Ima smisla, valja, vrijedi :slight_smile:

Pogledaj za pocetak Smarty template engine:
http://www.smarty.net/

ako ti nesto ne bude jasno ili sl. pitaj ili salji PM

kako je nemoguće, može se sve odvojiti, u dizajnu (html) kodu od php_a samo će biti funkcije if i varijablje.

citaj sta sam napisao

Dali mi možete reći, kad se odvaja prikaz od logike sajta sta se smje u prikazu (html) kodu ubacivati od php_a?

dali valja ovako odvajanje htmla:
[HTML]
/Funkcija mysql greške predložak/
function mysql_greske_predlozak()
{
global $u,$r1;
?>


		<div class="tabla2">
			<div class="tabla2_vrh_lijeva">
				<div class="tabla2_vrh_desna">
					<table width="100%" cellpadding="5" cellspacing="5" border="0">
						<tr>
							<td><b>» Mysql greške</b></td>
						</tr>
					</table>
				</div>
			</div>
		</div>
<?php while($p=mysql_fetch_array($u)) { ?>
		<div class="tabla">
			<div class="tabla_vrh_lijeva">
				<div class="tabla_vrh_desna">

					<table width="100%" cellpadding="5" cellspacing="5" border="0">
						<tr>
							<td width="90%"><?php echo $p['mysql_greska'] ?>

Datum: <?php echo datum_stvaranja_mysql_greske($p['id_mysql_greske']); ?>

<?php //Provjerava dali je poslata stranica. if(isset($_GET['stranica'])) { ?>
								<a href="mysql_greske.php?stranica=<?php echo $_GET['stranica'] ?>&izbrisi=<?php echo $p['id_mysql_greske'] ?>"><img src="tema/slike/tipke/izbrisi.gif" title="Izbriši" alt="" /> Izbriši</a>
<?php }else { ?>
								<a href="mysql_greske.php?izbrisi=<?php echo $p['id_mysql_greske'] ?>"><img src="tema/slike/tipke/izbrisi.gif" title="Izbriši" alt="" /> Izbriši</a>
<?php } ?>
							</td>
						</tr>
					</table>

				</div>
			</div>
		</div>
<?php } ?>
		<div class="tabla2">
			<div class="tabla2_vrh_lijeva">
				<div class="tabla2_vrh_desna">
					<table width="100%" cellpadding="5" cellspacing="5" border="0">
						<tr>
							<td class="mali_text"><a href="mysql_greske.php?izbrisi_sve"><img src="tema/slike/tipke/izbrisi.gif" title="Izbriši sve" alt="" /> Izbriši sve</a></td>
<?php //Ako ima mysql greški više od 20 prikazuje paginaciju. if($r1>20) { ?>
							<td align="right">
<?php paginacija($r1,20,'mysql_greske.php?'); //Pokreće paginaciju. ?>
							</td>
<?php } ?>
						</tr>
					</table>
				</div>
			</div>
		</div>

	</td>
</tr>
<?php } ?> [/HTML]

Ja sam za MVC način bez template engine-a, znači onako kako preporučaju u CI-u imaš model i controller tamo imaš sav “kod”, a u view-u čisti html sa <?=$varijabla?> i par petlji za stvari koje nemožeš riješiti u controlleru.

Pozdrav!

Evo ti template engine [ATTACH]1868[/ATTACH]

Ovaj engine se sastoji od 3 datoteke i puno je jednostavniji od smarty :D.

index.php

lib/template.php

templates/default/template.html

Alo … gdje su ti petlje, upiti i sl… mislim je jednostavniji ali definitivno nije kompletan.

Pa nek se snađe :smiley:

Serverski jezik se može odvojiti od Front-enda, kako je Kečko rekao, postoji MVC (model-view-controller), to je jako korisna stvar, naročito kad na projektu rade zajedno programeri i dizajneri.

auuuu padobranac! jes jes MVC je jako korisna stvar… bravoooo

Jao, pa nemam pojma čemu preporučate bilo kakve template libraries kad je sam PHP na početku bio zamišljen kao template library.

Autoru thred-a preporučio bih da u html kodu drži što manje PHP-a i da koristi samo najosnovnije petlje foreach i while, te uvjete if, if-else, if-elseif-else. Sve ostalo da sprema u posebne PHP datoteke koje će po potrebi pozivati ili koristiti. Ako ti u index.php, primjer, ne treba neka funkcija koja je u function.php datoteci, ne includaj tu datoteku u index.php.

Za sve ostalo progooglaj s Bingom po internetu. Eevo jedan link za početak

http://www.bing.com/search?q=php+template+engine+tutorial&go=&form=QBRE&qs=n&sk=&sc=1-28

U cemu je problem sa templejt enginima? Sto ih toliko ne volite. Da cujem razloge

Prvo i osnovno nema potrebe za njima, drugo i osnovno kao što rekoh u postu ranije PHP sam po sebi je vrsta template engina i tu svaka priča prestaje.

ne znam koja je svrha ovoga( pseudo kod u primjeru ):

template.php

file = novi TemplateEngine();

file->učitajFile();
file->dodajVarijablu(varijabla);
file->ispišiFile();
-----------------------
index.html

<html>
<body>
<h1> ovo je neka {varijabla}</h1>

kada ide jedno pet puta brže

index.php

<?php include 'template.php'; ?>
<html>
<body>
<h1> ovo je neka <?=$varijabla; ?></h1>

-------------------------
template.php
$varijabla = "varijabl";

nema učitavanja klasa, nema dodatnog parsiranja teksta, nema opterečivanja procesora i memorije, sporijeg učitavanja stranice itd. itd.

evo tu jedno dobro objašnjenje.
http://www.phppatterns.com/docs/design/templates_and_template_engines

[quote=""]Not alot of people know this but PHP is in fact a templating system itself. If you go back to it’s roots, as a collection of C code on Rasmus Lehrdorf’s hard disk, you’ll find that was it’s original intention.

Here we show why templating using PHP natively can be a good idea but how template engines, like Smarty and patTemplate are not worth the text their written in.[/quote]

Dobra argumentacija na onom linku.

Svaki jezik za predloške se u konačnici pretvori u programski jezik četvrte generacije (s if, loop i sl. konstruktima). Da se bar pretvori u jezik poput SQL-a.

Možemo reći da je PHP jezik predložaka koji se dovoljno dugo razvijao da je napravio puni krug.

U PHP-u se može generirati HTML (ili XML ili tekst ili bilo što treće) bez da se u kodu ijednom navede išta od toga što se ispisuje – samo ga treba koristiti kao što bi se koristio bilo koji drugi programski jezik i izbjegavati fiksne ispisne sadržaje držati u statičkim stringovima u kodu, već u vanjskim “resursnim” datotekama iz kojih se na vrijeme učitavaju.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja