Шаблон сайта нужен для того, чтобы максимально отделить логику сайта от его дизайна. Здесь я расскажу, как я делаю шаблоны для своих сайтов.
В ходе написания движка для сайта AviaHel Engine мне стало не удобно в каждом файле .php писать один и тот же код по подключению мета тегов, шапки страницы, левой колонки и подвала страницы. Тем более стало трудно отследить все открытые таблицы, блоки, параграфы. В итоге я решил сделать один html шаблон для всех страниц и в последующем подключать только его.
Преимущества такого подхода очевидны:
Преимуществ я насчитал множество, а что же можно сказать о недостатках? А недостатков я особо и не нашел. Дело в том, что если для некоторых страниц определенного типа один шаблон не подходит, можно с легкостью написать другой шаблон и подключить его к нужным страницам. Теперь поговорим о том, как же нам сделать этот шаблон.
Для начала нам надо изготовить .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 для вывода этой переменной на экран. Итак, в среднем у нас должны получиться примерно такие переменные:
Этих переменных может быть больше, в зависимости от ваших потребностей.
Следующим шагом нам надо создать служебный .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"); ?>
Как видите работать с шаблонами сайта довольно легко. Они избавляют от многочисленных ошибок и повторного копирования частоповторяющихся строк кода. Нам остается только следить, чтоб у нас не было вывода текстов ни где, кроме шаблона, а весь текст собирался в переменных шаблона.
Добавьте комментарий!