Создание дополнительных настроек темы в theme-settings.php
21 января 2017
У каждой темы есть страница с настройками, на которой можно изменить захардкоденные опции, такие например как — показывать лого/нет, показывать меню/нет и т.д.:
Чтобы добавить на эту страницу свои опции, нужно:
1. Добавить в .info файл темы, дефолтные значения ваших опций, в формате:
settings[themename_varname] = varvalue
Например, чтобы добавить в Bartik опцию Ширина страницы, нужно в bartik.info
прописать:
settings[bartik_width] = 960
2. Создать в папке с темой файл theme-settings.php
и реализовать в нём хук hook_form_FORM_ID_alter()
, в котором добавить в форму system_theme_settings
нужные элементы. Например:
<?php function bartik_form_system_theme_settings_alter(&$form, $form_state) { $form['advanced_settings'] = array( '#type' => 'fieldset', '#title' => t('Advanced settings'), ); $form['advanced_settings']['bartik_width'] = array( '#type' => 'textfield', '#title' => t('Page width'), '#field_suffix' => 'px', '#size' => 4, '#required' => TRUE, '#default_value' => theme_get_setting('bartik_width'), ); } ?>
3. Сбросить кэш.
После этого на странице настроек темы появится новый филдсет:
Получить доступ к настройкам можно с помощью фукнции theme_get_setting()
. Например в html.tpl.php:
<body style="width:<?php echo theme_get_setting('bartik_width'); ?>px;">