traži:  
 php.com.hr > članci > Upotreba templatea

Upotreba templatea
 
27.02.2005.


Iako je velika prednost PHP-a njegova lagana integracija u HTML kod, ponekad kod izrade velikih projekata je potrebno da HTML bude u potpunosti odvojen od PHP koda.

Postoji više biblioteka klasa koje vam mogu poslužiti pri izradi aplikacija sa odvojenim HTML kodom od PHP-a, najpopularniji je svakako Smarty Template Engine.

Najveća prednost takvog programiranja je što vam dizajneri ne mogu spćkat programski kod kod izmjene dizajna.

Ona negativna ili pozitivna stvar, kako se uzme je objektno orijentirani način programiranja koji zahtjeva od vas upotreba template engine-a, tako da od vas zahtjeva posve drukčiji pristup programiranju.

IT-template je jednostavan za korištenje poput xtemplate engine-a, za razliku od popularnog Smarty engine-a koji od vas zahtjeva praktički toliko truda kao da učite novi programski jezik.

Priličan broj PHP klasa koje vam omogućuju izradu stranica pomoću templatea možete pronaći na stranicama phpclasses.org-a.



Primjer HTML stranice kod upotrebe IT-templatea:



<html>
<head></head>
<body>
<!-- this is a two-cell table
one cell is for the headlines
the second is for the links on the right -->
<table border="1">
<tr>
<td valign="top">
<h2>Latest Headlines</h2>

<!-- this block is for the headline and its summary -->
<!-- BEGIN item -->
<a href="fullstory.php?id={ID}">{naslov}</a>
<br />
{ukratko}
<p />
<!-- END item -->

</td>
<td valign="top">
<h2>Quick Links</h2>
<ul>

<!-- this block is for a category and its URL -->
<!-- BEGIN link -->
<li><a href="{CATEGORY_URL}">{CATEGORY_NAME}</a>
<!-- END link -->

</ul>
</td>
</tr>
</table>
</body>
</html>





Primjer PHP stranice:

<?php

// array linkova
$links = array(
    'Sports' => '/site/content/index.php?category=8584',
    'Entertainment' => '/site/content/index.php?category=364',
    'Finance' => '/site/content/index.php?category=1209',
    'Politics' => '/site/content/index.php?category=13',
    'Lifestyle' => '/site/content/index.php?category=1745'
);

// include class
require ('IT.php');

// kreiranje objekta
// postavke template direktorija
$template = new HTML_Template_IT(".");

// učitavanje template
$template->loadTemplateFile("index.tpl.htm");

//konekcija na bazu

$host = "localhost";
$user = "user";
$pass = "pass";
$db = "db";

// otvaranje konekcije na bazu
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!");

// odabir baze
mysql_select_db($db) or die ("Unable to select database!");

// kreiranje sql upita
$query = "SELECT * FROM tablica ORDER BY datum DESC LIMIT 0, 10";

// izvršavanje upita
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());

// ima li rezultata?
if (mysql_num_rows($result) > 0) {
 
    // ima
    // kreiramo listu novosti
    $template->setCurrentBlock("item");
    while($row = mysql_fetch_object($result)) {
        $template->setVariable("naslov", $row->naslov);
        $template->setVariable("ukratko", $row->ukratko);        
        $template->setVariable("ID", $row->id);        
        $template->parseCurrentBlock();        
   
    }
}
else {
    // nema
    // ispisujemo error poruku
    $template->setCurrentBlock("item");
    $template->setVariable("SUMMARY", "No data available");
    $template->parseCurrentBlock();        
}

// zatvaramo konekciju
mysql_close($connection);

// linkovi
$template->setCurrentBlock("link");

// ponavljamo array linkova
// postavljamo imena linkova i url
foreach ($links as $k => $v) {
    $template->setVariable("CATEGORY_NAME", $k);
    $template->setVariable("CATEGORY_URL", $v);        
    $template->parseCurrentBlock();        
}

// na kraju parsiramo blok i prikazujemo
$template->parse();
$template->show();

?>

 


članci
 
 © 2004 - 2008 php.com.hr