xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Создание дополнительных настроек темы

Опубликовано в

У каждой темы есть страница с настройками, на которой можно изменить захардкоденные опции, такие например как — показывать лого/нет, показывать меню/нет и т.д.:

Настройки темы Bartik

Чтобы добавить на эту страницу свои опции, нужно:

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;">
Написанное актуально для Drupal 7.x
Похожие записи

Комментарии RSS

Супер! Теперь понятно как рокетфем делают настройки темы.

Спасибо, познавательно!

Интересно, а для шестой версии, есть похожие элегантные способы?

http://drupal.org/node/177868

Спасибо!

интересно для 6ки сильно будет отличаться?

это офигенно))
а я ток через год увидел

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании