
Если говорить про удобство сборки страницы сайта из составных частей, то простота управления однотипными и повторяющимися частями — это главный балл в пользу перехода с обычной вёрстки на систему управления сайтом (CSM). Когда даже самый простой сайт-визитка с неполным десятком HTML-страниц не редко требует внесения изменения в шапку или подвал сайта, рабочий процесс тем сложнее, чем больше страниц и изменений нужно внести. HTML-кодер в такие моменты проклинает статические файлы и мечтает: «...эх, если бы в одном месте поменял, и кругом применилось...». А если изменение оказалось не полным, либо выполнено с ошибкой? Или заменить нужно не просто один текст в пол года, а вносить изменения каждый день? Пусть даже раз неделю. Верстальщик выкуривает лишнюю сигарету, закатывает глаза, стискивает зубы и перебирает каждую страницу заново. Болезненной является и ситуация создания новых страниц — это и создание копии из шаблонных элементов и разрастание поля редактирования при внесении изменений в будущем. В плане простоты управления повторяющимися частями, слежения и управления структурой сайта — приоритетный плюс CMS.
С усложнением самого сайта, вёрстки, вводом новых сервисов работы прибавляется. А если нужны различные вёрстки для различных разделов? Например: общий раздел и персональный кабинет пользователя должны по задуму дизайнера иметь разные внешние виды. А если в одной и той же вёрстке определённые части страницы должны появляться по различным правилам, например: в левой колонке для обычных пользователей отображаются последние новости, а для пользователей партнёров — новости от диллеров и поставщиков? И к шапке свои требования, и в подвале сайта свои правила. Настройками програмного кода (компонентов) не перекрыть все ситуации. На помощь приходят включаемые области.
При проектировании основного каркаса сайта — будь-то двохколонник с шапкой и подвалом или трёхколонник — всегда найдутся части страницы, к которым особое требование. Классический пример: копирайт-данные в подвале сайта. Они должны отображаться на всех страницах, автоматически создаваться в новых разделах и страницах, редактироваться одной операцией с отображением изменений на всех страницах сайта. В данном случае в каркасе (шаблоне) сайта предусматривается включаемая область. При сборке страницы в данном месте подключается указанный в настройках файл. Каждая новая страница, собираемая на том же шаблоне, автоматически наследует данное правило и опять же подключает в указанное место нужный файл. Таким образом, мы приходим к ситуации, когда страниц много, а файл, содержащий копирайт-данные — один. Соответственно, и при редактировании данных: достаточно в этом файле внести изменения и при последующей сборке любой из страниц сайта, изменения отобразятся в публичном разделе.
Используется для ситуаций, когда определённый текст или сегмент програмного кода нужно отображать только для определённого файла (страницы). Возьмём в качестве примера раздел новостей. Список анонсов новостей отображает индексный файл раздела: index.php. А новость детально — detail.php. Стоит задача: для страницы с подробным текстом новости в левой колонке сайта отображать последние анонсы (чтобы не возвращаться каждый раз на список новостей). Здесь и подойдёт включаемая область для файла. Настроить её следует на файл detail.php, тогда при отображении файла index.php текст отображаться не будет.
Исходя из определения, данная включаемая область действует для всех страниц в разделе. В том числе и для всех внутренних страниц раздела, если для них не определена индивидуальная включаемая область. В качестве примера рассмотрим действие включаемой области на сайте в случае просмотра главной страницы, раздела новостей и разделы вакансий. Внимание фокусируем на левой колонке. Задача состоит в том, чтобы на главной странице публиковать анонсы новостей и анонсы вакансий, в разделе вакансий давать анонсы новостей, а в разделе новостей давать анонсы вакансий. В этом случае создаётся три различные включаемые области. Одна помещается в главную папку сайта, вторая в раздел новостей и третья в раздел вакансий. Редактируя включаемую область для каждого раздела, мы добиваемся индивидуальности отображаемой информации.
Преимущество включаемых областей для разделов перед включаемыми областями для страниц в том, что они поддерживают рекурсию: если в шаблоне сайта содержится команда подключить включаемую область для раздела, а при отображении страницы сайта програмный код не нашёл включаемой области в конкретном разделе, она ищет её в родительском разделе и так далее до главной страницы, пока не найдёт необходимый файл. Если вся структура была проверена и файл не найден — команда подключить включаемую область пропускается. То есть: если на сайте, описанном в примере выше, создать новый раздел, например: контактная информация, но не создать для него индивидуальную включаемую область, програмный код будет искать файл, который нужно подключить, в родительском разделе и в результате будет подключена включаемая область, размещённая в главной папке каталога: отображение анонсов новостей и анонсов вакансий.
Организационный момент, на который мы обращаем внимание: при сдаче проекта рекомендуется запрашивать у разработчика карту включаемых областей. Это позволит сэкономить время администраторам заказчика, потраченное на понимание каркаса структуры сайта.