Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


dev:templates:options

Создание опций шаблона

Создание формы

Каждый шаблон при необходимости может иметь набор опций. Предположим, что название вашего шаблона «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>];

При использовании опций шаблона вне самого шаблона, вы должны точно знать, что делаете.


К оглавлению раздела

dev/templates/options.txt · Последнее изменение: 20.11.2017 00:56 — fuze