Формирование страницы
Одним из ярких и неоспоримых преимуществ системы «Управсайт» является полная виртуализация вашего сайта.
Все данные для сборки страницы, включая шаблоны и динамическое содержимое, хранятся в базе данных. Исключение составляют лишь статические файлы (таблицы стилей CSS, клиентские скрипты JavaScript, изображения и другие файлы категории «медиа»).
Это позволяет существенно повысить скорость формирования страниц, не прибегая к считыванию лишних физических файлов на сервере и виртуализировать путь к странице, который становится ясным и интуитивно понятным, простым для запоминания человеком и индексирования поисковым роботом.
Изначально в процесс подключается только одна, главная библиотека функций, которой передаются все параметры запроса посетителя. Она определяет, что требуется отобразить: страницу, новость, или, например, товар из каталога.
В соответствии с определённым типом контента подключается библиотека нужного модуля, которой и передаётся управление.
Если данные, соответствующие запросу найдены, посетитель получит страницу, сформированную в соответствии с форматом, заданным шаблонами. В противном случае будет сгенерирована страница с ошибкой.
«Шапка» документа создаётся автоматически, поэтому основной шаблон сайта должен содержать только данные, размещённые в «теле» страницы (внутри тега <body>
).
В «шапку» включается строка, определяющая тип документа, который задаётся в разделе «Сайт — Настройки» панели управления.
При отличии текущего домена от основного добавляется тег <base>
, указывающий полный путь к данной странице на главном домене.
Система использует кодировку «utf-8», информация о которой в виде мета-тега также включается в документ.
Если в локальных настройках страницы определена опция «запретить индексирование», в документ будет вставлен мета-тег «robots», содержащий значение «noindex».
Значение мета-тегов «description» и «keywords» задаётся индивидуально при добавлении или редактировании соответствующих объектов. В локальных шаблонах возможно переопределение параметра для вывода. Например, краткое описание для роботов может формироваться из названия товара, производителя и цены. При превышении длины в 255 символов активируется функция интеллектуального сокращения. Теги не будут выводиться при отсутствии текста. Допустимо использование произвольных мета-тегов, автоматически переносимых в тег <head>
на данном этапе (исключение составляют теги, снабжённые атрибутом «itemprop»).
Если сайт использует модуль «Новости», ссылка на RSS-ленту будет добавлена автоматически. То же самое относится и к ленте афиш сайта.
Затем, при наличии, подключается основная каскадная таблица стилей сайта (если не задана отложенная загрузка), после этого в <head>
перемещаются обнаруженные теги <link rel="stylesheet">
и <style>
, позволяя переопределять базовые стили главного файла.
Наступает очередь переноса остальных тегов <link>
, при этом сохраняется исходная последовательность их нахождения в документе. Теги <link>
, имеющие атрибут «itemprop», не переносятся.
Основной сценарий JavaScript может подключаться напрямую или через функцию отложенной загрузки (выбирается в настройках сайта). Если используется прямое подключение, оно происходит сейчас. После этого в «шапку» отправляются остальные теги <script>
, не оснащённые атрибутом «donotmove».
Пришла пора осуществить отложенную загрузку основной каскадной таблицы стилей и сценария JavaScript. Для этого вставляется тег <script>
, содержащий функции, именованные «dynCSS» и «dynJS» соответственно.
Содержимое полученной страницы обрабатывается функцией «Типограф» (настройка типографа осуществляется в разделе «Сайт — Настройки» панели администрирования).
Далее код собирается в одну строку для уменьшения его размера (чтобы спасти пробел от вырезания, например, в начале или конце строки, используйте тег <space>
) и отправляется посетителю. Настоятельно рекомендуем использовать сжатие, существенно ускоряющее загрузку страниц и уменьшающее потребление интернет-трафика.