Функции и возможности будущей CMS. Разработка шаблонизатора 159
$tpl->set_value (¦ LAST ·, $LAST) ;
$tpl»>set_value(‘REG_DATE’,$REG_DATE);
$tpl»>set__value (‘MESSAGES ·, $MESSAGES) ;
$tpl->set_value (· PERSONAL1, $PERSONAL) ;
// Запускаем парсинг шаблона
$tpl->tpl_parse();
// Выводим HTML
echo $tpl->html;
Рис. 13.2. Шаблонизатор в действии
Вот теперь полный порядок — из PHP-файла исключен HTML-код. Для
открытия шаблона применяется метод get_tpl(), а для установки значения
Шаблона— set_value(). Первый параметр метода— это имя переменной в
Шаблоне, а второй — значение этой переменной. Метод tpiparse выполняет
парсинг нашего шаблона. Все, что нам остается сделать, — это вывести уже
готовый HTML-код (рис. 13.2).
160
Часть IV. Разработка собственной CMS
Осталось рассмотреть только сам файл template.php (листинг 13.3).
// Класс шаблона
class template__class
{
var $values
var $html;
= array ();
// Переменные шаблона
// HTML-код
// Функция загрузки шаблона
function get__tpl($tpl_name)
{
if (empty ($tpl__name) II ! f ile__exists ($tpl__name))
{
return false;
}
else
{
$this->html = join(»,file($tpl_name));
}
// Функция установки значения
function set__value ($key, $var)
{
$key = · {· . $key . ·} · ;
$this->values[$key] = $var;
}
// Парсинг шаблона
function tpl_parse()
{
foreach($this->values as $find => $replace)
{
Гпава 13. Функции и возможности будущей CMS. Разработка шаблонизатора 161
$this->html = str_replace($find, $replace, $this->html);
}
}
}
// Экземпляр класса
$tpl e new template__class;
?>
Как видите, наш шаблонизатор примитивен. Весь парсинг шаблона
заключается в обычной замене строк вида {название_переменной} переданными
значениями. Но тем не менее нужно отметить, что шаблонизатор работает, а
большего нам и не надо.
Примечание
Файл template.php вы найдете на прилагаемом компакт-диске в каталоге
Glava 13.
Глава 14
Реализация
основных функций CMS
14.1. Разработка TPL-шаблона
В предыдущей главе мы разработали собственный шаблонизатор. Теперь
пора создать TPL-шаблон, чтобы испытать шаблонизатор в действии. Мы
создадим очень простой шаблон, содержащий мало HTML-кода, чтобы не
усложнять нашу задачу его разбором. То есть фактически у нашего сайта
дизайна не будет. В реальных условиях вам (или вашему дизайнеру) нужно
будет разработать TPL-шаблон на базе какой-нибудь HTML-страницы.
Чтобы вам было легче, на компакт-диске в каталоге design вы найдете много
различных бесплатных HTML-шаблонов — вы можете использовать их по
своему усмотрению.
Наш шаблон мы назовем page.tpl — это будет единственный шаблон для всех
страниц сайта. Шаблон page.tpl представлен в листинге 14.1.
{DESCRIPTION}
Гпава 14. Реализация основных функций CMS 163
{MENU} | {PAGE} |
{INFO}
Как видите, шаблон очень прост — он выводит таблицу, содержащую меню
и содержимое страницы. Назначение переменных шаблона следующее:
д { title } — заголовок сайта;
О {description} — описание (краткая информация о сайте);
О { menu } — иерархическое меню сайта;
О { page } — содержимое текущей страницы;
О {info}— некоторая информация, например информация об авторских
правах.
Вы можете добавить в шаблон свои переменные, но пока не стоит этого делать.
14.2. Файл настроек
Прежде чем приступить к написанию кода CMS, нам нужно создать файл
настроек. В нем будут содержаться почти постоянные данные (константы, если
хотите), например: имя сервера MySQL, имя базы данных, имя пользователя,
пароль, информация о сайте. Согласитесь, данная информация очень редко
изменяется.
Файл настроек назовем config.php — потом мы его будем подключать к
нашей CMS. Код этого файла приведен в листинге 14.2.
$dbhost = ‘localhost’; // Имя сервера БД
$dbname = »db\· // Имя БД
$dbuser = •user’; // Имя пользователя БД
Sdbpasswd = ‘password’; // Пароль пользователя
164
Часть IV. Разработка собственной CMS
II Информация о сайте
$title = ‘CMS ??.01′;
$description = ‘Описание сайта’;
$info = ‘&сору Денис Колисниченко’;
?>
14.3.
5th Фев 2011
|
Теги:
|