Создание, продвижение сайтов
40-33-54

Собственные настройки темы в Друпал 7

19 января 2017

Для создания дополнительных настроек темы оформления сайта в Drupal 7 необходимо в папке с темой создать файл theme-settings.php и в нем с помощью хука hook_form_FORM_ID_alter() в форму настроек темы добавить свои поля. Следующий код добавляет в настройки темы ссылки на социальные сети:

<?php

/**
 * Implements hook_form_FORM_ID_alter().
 */
function THEME_form_system_theme_settings_alter(&$form, &$form_state) {

  $form['THEME'] = array(
    '#type' => 'fieldset',
    '#title' => t('THEME Theme Settings'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
  );
  $form['THEME']['socialicon'] = array(
    '#type' => 'fieldset',
    '#title' => t('Social Icons'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $form['THEME']['socialicon']['socialicon_display'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show Social Icon'),
    '#default_value' => theme_get_setting('socialicon_display', 'THEME'),
    '#description'   => t("Check this option to show Social Icons. Uncheck to hide."),
  );
  $form['THEME']['socialicon']['facebook_url'] = array(
    '#type' => 'textfield',
    '#title' => t('Facebook Profile URL'),
    '#default_value' => theme_get_setting('facebook_url', 'THEME'),
    '#description'   => t("Enter your Facebook Profile URL. Leave blank to hide."),
  );
  $form['THEME']['socialicon']['vk_url'] = array(
    '#type' => 'textfield',
    '#title' => t('Vkontakte Profile URL'),
    '#default_value' => theme_get_setting('vk_url', 'THEME'),
    '#description'   => t("Enter your Vkontakte Profile URL. Leave blank to hide."),
  );
  $form['THEME']['socialicon']['twitter_url'] = array(
    '#type' => 'textfield',
    '#title' => t('Twitter Profile URL'),
    '#default_value' => theme_get_setting('twitter_url', 'THEME'),
    '#description'   => t("Enter your Twitter Profile URL. Leave blank to hide."),
  );
}

Тогда вывести ссылки в нужном месте шаблона page.tpl.php (или любого другого шаблона темы) можно с помощью следующего кода:

  <?php if (theme_get_setting('socialicon_display', 'THEME')): ?>
      <?php 
        $facebook_url = check_plain(theme_get_setting('facebook_url', 'THEME')); 
        $vk_url = check_plain(theme_get_setting('vk_url', 'THEME'));
        $twitter_url = check_plain(theme_get_setting('twitter_url', 'THEME'));  
        $theme_path_social = base_path() . drupal_get_path('theme', 'THEME');
      ?>
        <ul class="social-icons">
          <?php if ($facebook_url): ?>
            <li>
              <a href="<?php print $facebook_url; ?>" target="_blank">
                <img src="<?php print $theme_path_social; ?>/images/facebook-icon.png">
              </a> 
            </li> 
          <?php endif; ?>
          <?php if ($vk_url): ?>
            <li>
              <a href="<?php print $vk_url; ?>" target="_blank">
                <img src="<?php print $theme_path_social; ?>/images/vk-icon.png">
              </a> 
            </li> 
          <?php endif; ?>
          <?php if ($twitter_url): ?>
            <li>
              <a href="<?php print $twitter_url; ?>" target="_blank">
                <img src="<?php print $theme_path_social; ?>/images/twitter-icon.png">
              </a> 
            </li> 
          <?php endif; ?>
        </ul>
    <?php endif; ?>

Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.