Warning: fopen(blogs/shablon.dat): failed to open stream: Permission denied in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 347

Warning: flock() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 348

Warning: ftruncate() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 349

Warning: fputs() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 350

Warning: fflush() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 351

Warning: flock() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 352

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/user382/data/www/kalitkas.ru/blog/index.php on line 353
Как сделать шаблон для сайта?

Как сделать шаблон своему сайту?

Шаблон сайта нужен для того, чтобы максимально отделить логику сайта от его дизайна. Здесь я расскажу, как я делаю шаблоны для своих сайтов.

В ходе написания движка для сайта AviaHel Engine мне стало не удобно в каждом файле .php писать один и тот же код по подключению мета тегов, шапки страницы, левой колонки и подвала страницы. Тем более стало трудно отследить все открытые таблицы, блоки, параграфы. В итоге я решил сделать один html шаблон для всех страниц и в последующем подключать только его.

Преимущества такого подхода очевидны:

  • Нет нужды переписывать один и тот же код по включению меню, шапки, левой и правой колонки, подвала со счетчиками. Все это заменяет одна строчка с подключением шаблона.
  • Нет нужды заботится о закрытии открытых тегов в верхней части шаблона и случайном закрытии их в теле страницы.
  • Нет нужды в оформлении частей текста страницы, все оформление выведено в CSS.
  • Нет нужды в заботе о преждевременном начале вывода текста перед посылкой заголовков в браузер, работой с сессиями и cookis'ами. Весь вывод происходит в шаблоне.

Преимуществ я насчитал множество, а что же можно сказать о недостатках? А недостатков я особо и не нашел. Дело в том, что если для некоторых страниц определенного типа один шаблон не подходит, можно с легкостью написать другой шаблон и подключить его к нужным страницам. Теперь поговорим о том, как же нам сделать этот шаблон.

Для начала нам надо изготовить .html файл с самим шаблоном, обозначить в нем места вставки наших PHP переменных с текстом, инициализировать эти переменные в PHP коде и подключить шаблон в самом конце PHP файла.

Делаем такой HTML файл:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $stitle;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta http-equiv="Content-Language" content="ru" />
<meta name="Description" content="<?php print $sdescription;?>" />
<meta name="Keywords" content="<?php print $skeywords;?>" />
<link rel="Shortcut icon" href="/images/favicon.ico" />
<link rel="StyleSheet" href="/images/screen.css" type="text/css" media="all" />
</head>
<body>
<div class="div_menu"><?php echo $site_menu;?></div>
<?php if ($htitle!="") print "<h1>$htitle</h1>";?>
.......
<?php if ($error!="") print "<p class='error'>$error</p>";?>
</body>
</html>

Везде, где у нас идет изменяющийся текст, заголовок, блок и так далее, обозначаем этот участок переменной и вставляем код на PHP для вывода этой переменной на экран. Итак, в среднем у нас должны получиться примерно такие переменные:

  • $stitle - заголовок страницы
  • $sdescription - описание страницы
  • $skeywords - ключевые слова
  • $site_menu - меню сайта
  • $left_text - текст левой колонки
  • $htitle - зоголовок H1 страницы
  • $error - переменная для вывода ошибок
  • $main_text - основной текст страницы
  • $dop_text - дополнительный текст

Этих переменных может быть больше, в зависимости от ваших потребностей.

Следующим шагом нам надо создать служебный .php файл, в котором мы первым делом инициализируем переменные, используемые в шаблоне. Если этого не сделать, то когда-нибудь возникнет ситуация, когда шаблон будет пытаться вывести на экран переменную, которая у нас ни где не определена. Далее в этом служебном файле мы проводим работу с сессиями, куками, определяем частоиспользуемые формы, списки, меню, определяем имя зарегистрированных пользователей и так далее.

<?php //dop_file.php
$stitle=$sdescription=$skeywords=$htitle=$error=$main_text=$left_text=&dop_text="";
session_start();
$site_menu="<ul><li><a href='/about.php' title='О сайте'>О нас</a><ul>";
.......
?>

Теперь нам остается только писать код страниц сайта и не задумываться особо о выводе и ошибках. Вся основная работа ведется в дополнительном файле, все формы входа, авторизация находится тоже там. Поэтому нам остается только включать вначале всех страниц служебный файл, а в конце файл шаблона.

<?php //about.php
include("dop_file.php");
$stitle="О нашем сайте";
$htitle="Наш крутейший сайт!";
$main_text="<p>Мы создали наш крутейший сайт специально для вас.</p>";
.......
include("shablon.html");
?>

Как видите работать с шаблонами сайта довольно легко. Они избавляют от многочисленных ошибок и повторного копирования частоповторяющихся строк кода. Нам остается только следить, чтоб у нас не было вывода текстов ни где, кроме шаблона, а весь текст собирался в переменных шаблона.

Добавьте комментарий!

Ваше имя

HTML и BB код не поддерживается, пишите только текст.



© Kalitkas.ru/blog/ - 2011г.
.