Главная
Новости
Статьи и обзоры
Горожанин
Обнинск в Internet
Web Design
Hardware
Software
Безопасность
Серфинг
Игродром
Relax
Технологии
Web-обзор
Интернет-ликбез
Опросник
УП-Технологии
ART.net
Ссылки
Архив
О нас
Контакты
Форумы
Основатель: К.Николаенко
Главный Редактор: С.Коротков
Web Design: Neutron
|
|
= Web-Дизайн =
ВЕБ-САЙТ: СБОРКА ПО КИРПИЧИКАМ
Матвей Хорошилов lightnet@obninsk.ru
взято с www.iworld.ru
продолжение: начало в ## 9(121), 10(122)
ВАРИАНТ 3. Единый темплейт для всего сайта
Задача - полностью разделить дизайн, скрипты и содержание страниц.
До сих пор мы исходили из того, что структура страницы может быть описана как набор последовательно идущих информационных блоков, которые можно просто вставить в файл командой include. Надо ли говорить, что на практике все обстоит гораздо сложнее? Тем не менее, для большинства веб-сайтов можно выделить с одной стороны неизменнные HTML-конструкции, которые повторяются на всех страницах и описывают их структуру и дизайн, а с другой, варьирующиеся тексты, которые, собственно, и составляют информационное наполнение.
То, что останется, если всю переменную информацию выкинуть, - это и есть ТЕМПЛЕЙТ СТРАНИЦЫ. Для создания темплейтного сайта надо просто научиться вставлять информационные блоки внутрь темплейта. На практике темплейты бывают довольно сложными, в них используются нетривиальные приемы верстки и дизайна, однако в конце концов остается просто добавить в темплейт текст. Мы не будем загромождать статью сложными примерами и рассмотрим предельно упрощенный темплейт:
<? require("func.php"); ?>
<HTML><HEAD>
<TITLE>Template Site</TITLE>
</HEAD><BODY>
<!-- здесь может быть любой HTML-код, задающий верстку и дизайн сайта -->
<? menu(); ?>
<!-- HTML-код продолжается -->
<? text(); ?>
<!-- HTML-код продолжается -->
<? news(); ?>
<!-- HTML-код продолжается -->
</HTML></BODY>
Поместим код темплейта в файл index.php. Он полностью описывает структуру нашей страницы, если не считать того, что вместо основного текста в нем содержится вызов функции text, вместо меню - вызов функции menu, а вместо блока кратких новостей - вызов функции news. Код этих функций размещен в файле func.php, который подключается директивой require в начале темплейта.
Каждая функция, обращаясь к переменной $page, может определить, какую именно информацию нужно вывести в формируемом ею информационном блоке. Напрмер, функция menu может исключать из меню ссылку на отображаемую в данный момент страницу.
Другой пример динамического блока - функция news. Обычно она просто помещает в отведенное ей место темплейта сводку кратких новостей сайта из файла shortnews.txt. Однако это не имеет смысла, если мы находимся на основной странице новостей. В этом случае вызывается функция banner, которая вместо новостей вставляет рекламный баннер.
Как видите, наш сайт уже обретает динамику. Дополнительные возможности дает добавление в начало файла func.php различных переменных - параметров, значения которых используются в коде, формирующем информационные блоки. Вы можете добавить и новые функции, которые в дальнейшем будут активно применяться при формировании страниц.
Какие достоинства есть у этого решения? Во-первых, простота и чистота кода. Все скрипты собраны в одном файле, описание верстки и дизайна страницы - в другом, который можно редактировать любым HTML-редактором, а содержательная информация - в остальных файлах. Еще один плюс раздельного хранения информационных блоков - в том, что легко можно соорудить несложный веб-интерфейс для обновления данных прямо в тех файлах, где они хранятся. Наконец, ничто не мешает нам при необходимости написать сколь угодно хитрые функции для заполнения информационных блоков.
Единственный минус заключается в том, что когда будет написано множество функций, вы начнете в них путаться. Если это случилось, значит сайт уже нельзя назвать небольшим и несложным. Пора подумать о ПОЛНОЦЕННОМ МНОГОФУНКЦИОНАЛЬНОМ ДВИЖКЕ.
Продолжение следует.
|
|