Smarty - Основи
26-08-2010

В този урок ще ви покажа основите при работа с template engine-а Smarty,както и как да си инсталирате самата система.За тези,който не знаят template engine е система която се използва за създаване на уеб шаблони.По този начин се избягва при писането на даден PHP файл да се смесват HTML,Javascript,CSS с PHP.Чрез тази система PHP кодът е отделен от останалия ви код и по този начин всичко е по-нагледно.
Преди да започнете ще се нуждаете от следното:
1.Сървър с инсталирано PHP
2.Smarty
Уроци как да си инсталирате можете да намерите тук и тук - За Windows
За Linux:тук
Smarty може да бъде изтеглен от официалния сайт.Препоръчвам ви също така да си изтеглите документацията.
I.Инсталация
След като сте си изтеглили архивът ще видите че в него има 2 папки(demo и libs) + няколко файла.На нас ще ни е нужно само съдържанието на папката libs.Разархивирайте папката в директорията на сървърът(за XAMPP-htdocs;Apserv-www;Linux-/var/www.
След това трябва да си създадем 2 папки-templates и templates_c.В първата папка ще се намират нашите tpl файлове(template),а във втората-компилираните template файлове.
II.Вмъкване на енджинът и извикване на template
След като вече успешно сме инсталирали файловете сега може да започнем със същинската работа.
Първоначално във папкта template създайте файл с името index.tpl и във този файл напишете следното съдържание:

<html>
<head>
<title>Smarty работи</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>
<h1>Smarty бе инсталирано успешно</h1>
</body>
</html>

Съдържанието на този файл естествено можете да си го промените на каквото желаете,посоченото от мен е просто за пример.След това в основната директория създайте един php файл с име index.php и в него напишете следния код:

<?php
//извикваме Smarty библеотеката
require "libs/Smarty.class.php";
//създаваме нова инстанция с име smarty
$smarty = new Smarty();
//С това име ние ще се обръщаме към Smarty.
//С този ред ще визуализираме преди малко създадения от нас template.Той трябва да се намира в края на вашия PHP код.
$smarty->display("index.tpl");
?>

Не е нужно двата файла да са с еднакви имена.За да проверите дали всичко е успешно сега стартирайте вашия сървър след което влезте в http://localhost/index.php или върху който файл сте работили до сега.Ако всичко е успешно би трябвало да видите tpl файла,който сте създали преди малко.
III.Променливи в Smarty
Тук първо се налага да "назначите" дадена променлива в php файла.Това става по следния начин:
$username = "administrator"
$smarty->assign("potrebitel", $username);

Тоест назначихме на променливата potrebitel стойноста на $username.Сега за да визуализираме тази променлива в tpl файлът просто напишете следния код :
{$potrebitel}

Тоест използваме първата стойност от функцията assign.
IV.Условни изрази
Благодарение на Smarty синтаксиса може да проверяваме дали определена променлива има дадена стойност.След като сме създали променлива(както е показано в предишната точка може да проверим в tpl файла дали тя има дадена стойност по следния начин:

{if $potrebitel == "administrator"}
<a href="admin/index.php">Админ панел</a>
{else}
Моля въведете вашето потребителско име и парола.
{/if}

Синтаксисът е почти еднакъв с този,познат на повечето от вас от PHP.Разликата е, че else се пише в самата if проверка,както е показано в примерът.Също така може да ползвате elseif за проверка(отново познато ни от PHP).
V.Вмъкване на файлове в template-а
Това е доста полезно ако например имате отделни файлове за header и footer и не желаете във всеки tpl файл да пишете въпросното съдържание отново и отново.Вмъкването става по следния начин:
{include file='header.tpl'}

Пътят до файла трябва да е в съответствие с файлът в който инклудвате.Но ако например добавяте картинка чрез <img> таг то тя трябва да е в съответствие с php файла, в който сте извикали въпросния tpl файл.

Това са основите.Ако искате да научите нещо повече можете да прочетете в официалния сайт на Smarty или в документацията.Ако имате въпроси можете да пишете във форумът или тук в коментарите.Успех!

Урокът е писан специално за Web-Tourist и копирането е абсолютно забранено!



/ Трябва да сте регистриран за да напишете коментар /
От: MaLa_NocHe
0:10 03-09-2010
Братле ти ме вдъхнови да започна да уча смарти :) пиши още уроци братто евала
От: slideR
9:33 05-09-2010
Евалата btw. Smarty = smardy :D
От: Zion
20:04 28-11-2010
Да поясня само, че при Линукс трябва да зададете пълни права на папките templates и templates_c
От: embaka
1:56 21-04-2011
Zion, не е точно така
1