Формирование страницы

Одним из ярких и неоспоримых преимуществ системы «Управсайт» является полная виртуализация вашего сайта.

Все данные для сборки страницы, включая шаблоны и динамическое содержимое, хранятся в базе данных. Исключение составляют лишь статические файлы (таблицы стилей CSS, клиентские скрипты JavaScript, изображения и другие файлы категории «медиа»).

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

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

В соответствии с определённым типом контента подключается библиотека нужного модуля, которой и передаётся управление.

Если данные, соответствующие запросу найдены, посетитель получит страницу, сформированную в соответствии с форматом, заданным шаблонами. В противном случае будет сгенерирована страница с ошибкой.

«Шапка» документа создаётся автоматически, поэтому основной шаблон сайта должен содержать только данные, размещённые в «теле» страницы (внутри тега <body>).

В «шапку» включается строка, определяющая тип документа, который задаётся в разделе «Сайт — Настройки» панели управления.

При отличии текущего домена от основного добавляется тег <base>, указывающий полный путь к данной странице на главном домене.

Система использует кодировку «utf-8», информация о которой в виде мета-тега также включается в документ.

Если в локальных настройках страницы определена опция «запретить индексирование», в документ будет вставлен мета-тег «robots», содержащий значение «noindex».

Значение мета-тегов «description» и «keywords» задаётся индивидуально при добавлении или редактировании соответствующих объектов. В локальных шаблонах возможно переопределение параметра для вывода. Например, краткое описание для роботов может формироваться из названия товара, производителя и цены. Теги не будут выводиться при отсутствии текста. Допустимо использование произвольных мета-тегов, автоматически переносимых в тег <head> на данном этапе (исключение составляют теги, снабжённые атрибутом «itemprop»).

Если сайт использует модуль «Новости», ссылка на RSS-ленту будет добавлена автоматически. То же самое относится и к ленте афиш сайта.

Затем, при наличии, подключается основная каскадная таблица стилей сайта (если не задана отложенная загрузка), после этого в <head> перемещаются обнаруженные теги <link rel="stylesheet"> и <style>, позволяя переопределять базовые стили главного файла.

Наступает очередь переноса остальных тегов <link>, при этом сохраняется исходная последовательность их нахождения в документе. Теги <link>, имеющие атрибут «itemprop», не переносятся.

Основной сценарий JavaScript может подключаться напрямую или через функцию отложенной загрузки (выбирается в настройках сайта). Если используется прямое подключение, оно происходит сейчас. После этого в «шапку» отправляются остальные теги <script>, не оснащённые атрибутом «donotmove».

Пришла пора осуществить отложенную загрузку основной каскадной таблицы стилей и сценария JavaScript. Для этого вставляется тег <script>, содержащий функции, именованные «dynCSS» и «dynJS» соответственно.

Содержимое полученной страницы обрабатывается функцией «Типограф» (настройка типографа осуществляется в разделе «Сайт — Настройки» панели администрирования).

Далее код собирается в одну строку для уменьшения его размера (чтобы спасти пробел от вырезания, например, в начале или конце строки, используйте тег <space>) и отправляется посетителю. Настоятельно рекомендуем использовать сжатие, существенно ускоряющее загрузку страниц и уменьшающее потребление интернет-трафика.