Content Management Framework. Easy. Convenient. Free.
Навигация
Новости
Новая версия PHPC!
Очередной стабильный релиз с новыми возможностями.
12 декабря 2010 | Подробнее...
Документация!
Солидное пополнение.
28 октября 2010 | Подробнее...
Обновление документации
Онлайн-руководство начинает потихонечку обновляться.
15 октября 2010 | Подробнее...
Новая версия PHPC!
Вышла новая версия, 2.5.1, с набором полезных изменений.
12 октября 2010 | Подробнее...
DLTFM!
Отныне документация доступна и в формате для скачивания.
30 января 2010 | Подробнее...
Новая документация
Первые разделы Руководства уже на сайте.
20 января 2010 | Подробнее...
Онлайн-поддержка
Теперь вы можете задать свои вопросы через ICQ.
11 января 2010 | Подробнее...

Наследование шаблонов

Самая распространенная задача, с которой сталкиваешься при создании сайта − сделать так, чтобы у всех страниц было одинаковое оформление. Возьмем для примера дизайн этого сайта. Шапка, подвал, левая и правая колонки, полоса навигации в шапке − все это должно выглядеть одинаково на всех страницах сайта, которых не менее десятка. Как же быть? Копировать один и тот же HTML-код в десять мест − недопустимо. Если вы захотите через неделю что-то изменить в дизайне сайта, а еще через неделю − что-то добавить, вы очень быстро заметите, что все ваши страницы начали выглядеть по-разному. :)

Типичное решение, которым пользуются в таких случаях − это использовать для хранения оформления сайта два дополнительных шаблона, которым обычно дают названия "header" и "footer". Первый − для хранения шапки сайта, второй − для хранения подвала. Код страниц в этом случае выглядит примерно так:

<!-- Вставка общей шапки -->
{insert header}

<!-- Центральная часть страницы располагается между шаблонами header и footer -->
Добро пожаловать на сайт!

<!-- Вставка общего подвала -->
{insert footer}

Шаблон header:

<html>
<body>

<!-- Здесь можно вставить шапку сайта и навигацию -->

Шаблон footer:

<!-- Здесь можно вставить подвал сайта -->

</body>
</html>

Увы, но такой вариант не является полноценным решением. Дело в том, что весь дизайн оказывается разнесенным по двум шаблонам, без учета парности структур и тегов, грубо говоря − все открывающие теги у вас окажутся в шаблоне header, все закрывающие − в шаблоне footer. В нашем случае еще и левая колонка окажется в конце шаблона header, правая − в начале шаблона footer. Оформление центральной части страницы (если оно есть) также окажется разорванным на две части и разбросанным по двум шаблонам. Это неудобно.

PHPC предлагает совершенно новый способ решения проблем однотипного оформления страниц: вместо того, чтобы "выдергивать" из страницы повторяющиеся фрагменты и выносить их в отдельные шаблоны, он предлагает механизм наследования шаблонов.

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

В PHPC эта схема работает аналогичым образом: вы пишете базовый шаблон, в котором содержится только основное оформление страницы (шапка сайта, подвал, колонки, навигация, в общем, все, кроме центральной части), затем пишете шаблон страницы, или производный шаблон, в котором содержится только центральная часть страницы.

Базовый шаблон (обычно называется general):

<html>
<body>

<!-- Здесь можно вставить шапку сайта и навигацию -->
<div>Шапка сайта</div>

<!-- А здесь в производных шаблонах будет центральная часть страницы. -->
<!-- Чтобы PHPC знал, куда ее подставлять, помечаем область особым тегом -->
<area:content/>

<!-- Здесь можно вставить подвал сайта -->
<div>Подвал сайта</div>

</body>
</html>

Шаблон страницы:

<!-- Производный шаблон состоит только из центральной части... и все! -->
<area:content>

Добро пожаловать на сайт!

</area:content>

Как видите, отныне весь дизайн вашего сайта находится в одном месте, без нарушения парности тегов, без выкрутасов типа "голова отдельно, ноги отдельно". Если вам необходимо изменить дизайн сайта − вы просто правите базовый шаблон, и изменения входят в силу сразу на всех страницах вашего сайта. В то же время шаблоны страниц оказываются полностью очищенными от базового оформления. Все, о чем надо помнить − это всегда помечать тегами <area:content>...</area:content> центральную часть страницы, а также указывать имя базового шаблона в свойствах шаблона производного, чтобы движок знал, что от чего наследовать.

Документация
Лучшие сайты на PHPC
Наши друзья
Другие интересные CMF
Помогите проекту!
WMZ: Z829076217306
WMR: R735042680488
Онлайн-поддержка
Техподдержка сайтов,
Разработка модулей
ICQ: 564226396