Создание опций шаблона
Создание формы
Каждый шаблон при необходимости может иметь набор опций. Предположим, что название вашего шаблона «my_best_template». Для создания формы опций необходимо:
- Создать php файл
/templates/my_best_template/options.form.php
; - В нем определить класс для формы опций с названием по принципу
formНазваниеШаблонаTemplateOptions
, в нашем случае это будет formMyBestTemplateTemplateOptions; - Описать поля формы.
После создания формы, ссылка на страницу настроек автоматически появится в общих настройках сайта во вкладке «Интерфейс».
Обратите внимание! Для версий InstantCMS 2.4.0 и ниже класс формы должен быть всегда определен какformTemplateOptions
. Т.е. название одинаково для всех шаблонов.
Также в своем шаблоне вы можете (это необязательно) описать свой шаблон вывода формы. В случае с нашим названием шаблона «my_best_template» файл необходимо создать по пути /templates/my_best_template/controllers/admin/settings_theme.tpl.php
.
Минимальное его содержимое может выглядеть так:
<h1><?php echo LANG_CP_SETTINGS_TEMPLATE_OPTIONS; ?>: <span><?php echo $template_name; ?></span></h1> <?php $this->setPageTitle(LANG_CP_SETTINGS_TEMPLATE_OPTIONS); $this->addBreadcrumb(LANG_CP_SECTION_SETTINGS, $this->href_to('settings')); $this->addBreadcrumb(LANG_CP_SETTINGS_TEMPLATE_OPTIONS); ?> <?php $this->renderForm($form, $options, array( 'action' => '', 'method' => 'post' ), $errors); ?>
Все настройки шаблона сохраняются в YAML формате в файле по пути /system/config/theme_НАЗВАНИЕ-ШАБЛОНА.yml
, т.е. в нашем случае это будет файл /system/config/theme_my_best_template.yml
.
Крайне рекомендуется поставлять этот файл в комплекте с пакетом шаблона. Т.е. вы создали форму опций, зайдите в неё, выставьте параметры по умолчанию и сохраните. Движок создаст указанный файл. При создании пакета шаблона вложите этот файл в том числе.
Получение значений
в шаблоне:
$this->options[<OPTION_NAME>];
в любом месте кода движка:
$template_options = cmsTemplate::getInstance()->getOptions(); $template_options[<OPTION_NAME>];
При использовании опций шаблона вне самого шаблона, вы должны точно знать, что делаете.