Създаване на темплейт система без MySQL
Автор: jooorooo
Ето един урок, как лесно да създадем темплейт система без MySQL. От сега ще кажа, че трябва да сте поне на средно ниво в php за да имате представа какво ще правите. Обикновенно темплейт системите се сестоят от 3 файла.
template.php - в него са настройките за темплейт системата, задават се име на темплеит, функция за замяна на таговете и други.
index.php - това ни е индекса в него подреждаме таговете и заместителите им.
template.html - ето го и темплейтчето ни. аз съм го задал с разширение html, но вие можете да го направите каквото си пожелаете. Въпроса е да го покажете в template.php и index.php.
Ако имате повече от 1 страница, тоест index.php, не е нужно да създавате на всяка итделен template.php, а просто допълвате в съществуващия, като за всеки темплейт променливата трябва да е различна. в нашия случай е $page. Еми започваме с файловете, има и коментари в тях.
template.php намира се в папка lib, демек lib/template.php<?php
//създаваме функция за темплейт с променлива $page
class Page
{
var $page;
function Page($template = "template.html") { //задаваме името на темплейта
if (file_exists($template)) //проверяваме дали имаме наличен този файл
$this->page = join("", file($template));
else
die("Файл $template не беше намерен."); //ако го нямаме наличен, ще покаже съобщение, че липсва
}
function parse($file) {
ob_start();
include($file);
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
function replace_tags($tags = array()) { //функция за замяна на таговете
if (sizeof($tags) > 0)
foreach ($tags as $tag => $data) {
$data = (file_exists($data)) ? $this->parse($data) : $data;
$this->page = eregi_replace("{" . $tag . "}", $data, //задаваме разделители за таговете { и }
$this->page);
}
else
die("Няма избрани тагове за промяна!"); //ако не сме задали тагове ще върне съобщение.
}
function output() {
echo $this->page;
}
}
?>продължаваме с template.html, той се намира в папка themes/default/template.html
В него няма какво да обяснявам, той е стандартен HTML код с тагове {tag} в него.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={charset}">
<title>{title}</title>
</head>
<body>
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="800px">
<tr>
<td colspan="3" width="100%" height="65">{logo}</td>
</tr>
<tr>
<td valign="top" width="160px" height="100">{left}</td>
<td valign="top" width="480px" height="100">{main}
<br>
<br>
{promenliva}
<br>
<br>
{link}
<br>
<br></td>
<td valign="top" width="160px" height="100">{right}</td>
</tr>
<tr>
<td align="center" colspan="3" width="100%" height="25">{footer}</td>
</tr>
</table>ето го и последния ни файл. index.php, той се намира в главната ни директория.
<?php
require_once("lib/template.php"); //инклудваме функцията за темплейта
$page = new Page("themes/default/template.html"); задаваме път до темплейта под променлива $page
$promenliva = "Може и с променливи да се прави, вече е въпрос на вкус.";
//заменяме таговете от темплейта
$page->replace_tags(array(
"charset" => "windows-1251",
"logo" => "Лого",
"title" => "Тест",
"link" => "<a href=\"http://web-tourist.net\" target=\"_new\">Web-Tourist</a>",
"promenliva" => "$promenliva",
"main" => "Това е централната част",
"left" => "Лява част",
"right" => "Дясна част",
"footer" => "Copyright © 2007 - Web-Tourist Tutorial"
));
$page->output(); //затваряме темплейта. ако искаме да има втори го отваряме отново под друга променлива
// в момента е под $page
?>това е всичко.
Това е най-лесния начин за сигурна темплейт система.
При проблеми и въпроси.. намерете ме из сайта или форума 🙂


