Помимо описанных выше возможностей макеты дизайна в NetCat поддерживают возможность настройки их отображения пользователем. Если один макет используется на разных сайтах и разделах, он может настраиваться в каждом конкретном случае. Для этого разработчик макета должен:
• Описать настройки в специальном поле формы редактирования макета
• Внести изменения в макет в соответствие с этими настройками
Настройки «видны» в хедере и футере макета в виде элементов массива $template_settings. Например, необходимо дать пользователю возможности:
• Выбрать вариант выравнивания какого-то блока, например, логотипа
• Редактировать короткий текст, например, слоган
• Определять, будет ли выводиться какой-то блок, например, последние новости
Для этого в поле «Настройки отображения макета в разделе» описываем эти настройки:
Эти настройки пользователь сможет изменять в форме редактирования настроек раздела или сайта, для которого определен данный макет.
Как видно из показанного выше примера, настройки отображения макета описываются в многомерном массиве $settings_array. Каждый элемент массива соответствует с одной стороны полю ввода (для пользователя), а с другой – элементу массива $template_settings[], доступному в макете.
Элементы массива:
• type: тип поля ввода. Варианты значений: string (строка), checkbox (независимый переключатель), select (выпадающий список) , textarea (текстовое поле), divider (разделитель для облегчения восприятия больших объемов настроек, подразумевается его использование в административной части сайта)
• default_value: значение по умолчанию (для checkbox следует всегда указывать false, т.к. при установке этого значения в true – нельзя будет установить значение false)
• caption: название поля для пользователя
• values: список значений для типа select, задается в виде массива array('ключ' => 'описание', ...)
• size: размер поля ввода. Для типа string – значение size html-элемента input; для типа textarea – значение rows html-элемента textarea
• validate_regexp: регулярное выражение для проверки корректности введённых данных. Применяется для типов string и textarea. Например значение /^\d+$/ будет означать ввод только цифровых символов. Подробнее о синтаксисе регулярных выражений можно ознакомиться в официальной документации к PHP.
• validate_error: сообщение об ошибках, выдаваемое при вводе данных не соответствующих регулярному выражению описанному в validate_regexp
Примеры записи массива настроек с различными типами полей:
Обязательные для указания элементы массива - type и caption, для типа select также values.
Чтобы использовать введеные настройки в макете, следует обращаться к ним через массив $template_settings. Для приведеного выше примера, обращение к настройкам можно описать следующим образом: