Drupal 7:为主题配置添加新选项

时间:2018-03-19 10:57:51

标签: php drupal drupal-7

所以我创建了一个subtheme女巫,他的父母是Drupal Bootstrap主题。我想添加一个选项,在页面中共享第二个徽标(我已经谷歌搜索但我什么也没找到)。

enter image description here

正如您在图片中看到的那样,我想在红色线位于“logotip”和“Nom del lloc”之间添加选项,并创建一个变量来访问第二个徽标,如$ second_logo。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

  • 转到您的主题
  • 创建新文件 theme-setting.php
  • 实现以下钩子" hook_form_system_theme_settings_alter "

    function <theme_name>_form_system_theme_settings_alter(&$form, &$form_state, $form_id = NULL) {
    
        //add your variable field        
        $form['theme_settings']['second_logo'] = array(
            '#type' => 'checkbox',
            '#title' => t('Use the second logo'),
            '#default_value' => theme_get_setting('second_logo'),
        );
    }
    

答案 1 :(得分:1)

我会再次编辑我的答案,让你知道上传第二个徽标的完整示例,因为这是正确的方法 在自定义主题中创建此文件:

<强>主题的settings.php

使用customthemename_form_system_theme_settings_alter(&amp; $ form,$ form_state)hook

例如:

 $( document ).ready(function() {

    var path = window.location.pathname;
    var page = path.split("/").pop();

    var t1 = document.getElementById("t1");
    var t2 = document.getElementById("t2");
    var t3 = document.getElementById("t3");

    t1.classList.remove("focus");
    t2.classList.remove("focus");
    t3.classList.remove("focus");

     switch(page) {
            case 'Default.aspx':
                t1.classList.add("focus");
                break;
            case 'Default2.aspx':
                t2.classList.add("focus");
                break;
            case 'Default3.aspx':
                t3.classList.add("focus");
                break;
        }

    });

将变量添加到youcustomtheme.info文件中,如下所示:

 function customthemename_form_system_theme_settings_alter(&$form, &$form_state, $form_id = NULL) {
        $form['second_logo'] = array(
        '#type' => 'checkbox',
        '#title' => t('Use the second logo'),
        '#default_value' => theme_get_setting('second_logo'),

    );

最后,您可以在/sites/all/themes/customthemename/templates/html.tpl.php中执行此操作:

settings[second_logo] = ''

就是这样。

请参阅文档: Theme settings D7