Динамические страницы

Общие сведения

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

Место хранения страниц: /sites/[код сайта]-[постфикс сайта]/dynpages/[код страницы]-[постфикс страницы]/
В этом каталоге находятся скрипты:

  • parameters.php - скрипт генерации параметров страницы
  • page.php - скрипт генерации контента
  • uri.php - скрипт генерации ссылки раздела
  • map.uri - скрипт генерации полной карты ссылок раздела

Их можно редактировать как непосредственно на диске, так и в панели управления.

Внимание! Если вы вручную измените uri.php, то вам будет необходимо обновить кэш ссылок в управлении структуры сайта

Страницу можно скопировать. В этом случае будет создана новая динамическая страница и в неё будут скопированы все скрипты старой.

Настройка параметров

Скрипт настройки параметров предназначен для создания и заполнения массива $parametersList:

Массив должен содержать объекты класса Parameter. Конструктор объекта принимает следующие переменные:

Parameter::__construct ($code, $name, $type, $default, $values=null);

  1. $code - Код параметра. К нему привязывается значение, назначенное в разделах, и по этому коду параметр будет доступен при формировании страницы.
  2. $name - Название параметра, будет отображаться при редактировании раздела
  3. $type - Тип параметра. Доступны следующие типы:

    local - локализованная строка
    string - строка
    number - чиcло
    mail - e-mail
    tel - телефон
    password - пароль
    date - дата
    time - время
    color - выбор цвета
    text - текстовое поле
    rich - текстовое поле с WYSIWYG редактором
    code - текстовое поле с подсветкой синтаксиса
    checkbox - флажок
    list - список
    combo - выпадающий список

  4. $default - значение по-умолчанию
  5. $values - список значений, применяется при типе параметра "list" и "combo", должен быть массивом виде ["ключ объекта" => "название объекта", ...] или ["название группы" => ["ключ объекта" => "название объекта", ...], ... ]

В примере на скриншоте для страницы определены 5 параметров:

  • Текст - как выпадающий список из текстов сайта с кодом $textKey
  • SEOTitle, SEOKeywords, SEODescription - как названия локализованных констант (в случае, если не установлен модуль локализации, они работают как обычные строки)
  • SEORef - строка, определяющая адрес раздела

Редактирование страницы

В дальнейшем все настроенные при редактировании раздела параметры будут доступны в коде динамической страницы через массив $this->parameters :

Выше на скриншоте вы можете видеть, что параметр "textKey" используется динамической страницей для получения объекта Text, а параметры "SEOTitle", "SEOKeywords" и "SEODescription" - для установки соответстующих тэгов шаблона.

Дополнительно в массиве находится параметр "pathTail" - это остаток пути страницы, не определённый роутером при обходе разделов. Его можно применять, например, при формировании пагинации новостей, или при создании динамической страницы списка ссылок на статьи категории. В данном примере страница формирует только текст, поэтому при получении непустого pathTail выводится страница 404.

Формирование адреса раздела

Точно так же параметры доступны в скрипте uri.php - это позволяет сформировать путь к разделу динамически, в зависимости от выбранных в разделе параметров:

В этом примере видно, что параметр "SEORef" используется для формирования пути к странице с текстом.