Версия для печати. Взято с сайта phpsql.ru

На главную   Назад   Вперед

Smarty.

Давайте рассмотрим язык Smarty. Как ясно из файла smarty_initialize .php, представленного выше, шаблоны Smarty должны находиться в каталоге templates/html. Файлы шаблонов могут содержать HTML-, JavaScript-и CSS-код, а также все, что можно отправить в Web-браузер. Предположим, что у нас есть какой-то базовый шаблон basic. tpl. Чтобы Smarty отобразил этот шаблон, нужно использовать метод Smarty, как показано ниже:

<?php
require_once ("smarty__initialize.php") ; $smarty->display("basic.tpl")/
?>
Чтобы осознать всю мощь и гибкость Smarty, вам нужно поместить в шаблон данные, инициализируемые PHP-кодом. Чтобы добавить в шаблон вывод PHP-переменной, нужно заключить ее имя (вместе со знаком $) в фигурные скобки. Продемонстрируем сказанное на примере шаблона basic. tpl:
<HTML> <head>
<title>{$assigned_title}</title> </head> <body>
My name is  {$assigned_name}. </body>
Как видно из листинга, имеются две переменные - $assigned_title и $assigned_name. Для установки значений этих переменных нужно использовать метод assign ():
<?php
require_once("smarty_initialize.php"); $page_title = "The Smarty Template Test";
$page__name = "William Steinmetz";
$smarty->assign ("assigned_title", $page__title) ; $smarty->assign("assigned_name", $page_name);
$smarty->display("basic.tpl"); ?>
Вы можете присвоить переменной любую строку, вне зависимости от того, что она содержит - HTML-код, данные из базы данных MySQL, пользовательский ввод или что-либо еще. Если Smarty правильно установлен и настроен, вы увидите результат, подобный изображенному на рис. 1.1.

Что может быть не так? Если исключить банальную ошибку при указании пути к каталогам Smarty, одна из наиболее часто возникающих ошибок заключается в том, что Web-сервер не имеет права на запись в каталог, который вы выбрали для хранения компилируемых Smarty-шаблонов. В этом случае страница будет-таки отображена, но вместо данных будет выведено соответствующее предупреждение.

Также убедитесь, что вы присвоили значения всем переменным шаблона. Если вы этого не сделаете с помощью метода $smarty->assign (), Smarty присвоит значение по умолчанию (пустая строка). Это не ошибка, но ваша страница будет отображаться не совсем красиво, не говоря о том, что некоторые элементы не будут работать так, как запланировано вами.

Изучаем сценарий Вы должны знать о некоторых дополнительных возможностях Smarty. Например, вы можете использовать несколько шаблонов в одном сценарии:

<?php
// Инициализируем Smarty-файл require_once ("smarty__initialize.php") ;
// Показываем первый Smarty-шаблон $smarty->display("header.tpl");
echo "Middle stuff<br />";
// Показываем второй Smarty-шаблон $smarty->display("footer.tpl");
?>
Иногда возникает необходимость в сложных шаблонах, состоящих из нескольких частей. Например, если в шапке сайта планируется баннер, то вы можете подключить шаблон advertisement. tpl (шаблон баннера) к шаблону header. tpl (шаблон шапки сайта):
<tr><td><img src="logo.gif"></td> <td>
{include file="advertisement. tpl" }
</td>
</tr>
Шаблонизатор Smarty - очень мощный. Например, вы можете с его по-мощью форматировать целые таблицы путем назначения РНР-массива Smarty-переменной. Smarty поддерживает условный оператор if /then, возможности кэширования, фильтрации и многое другое. Теперь, когда вы знаете, что такое Smarty, самое время изучить онлайн-документацию по этому продукту.

 
Предыдущая   На главную   Следующая