【问题标题】:How to find the current theme in any page of Drupal 7如何在 Drupal 7 的任何页面中找到当前主题
【发布时间】:2017-07-24 04:28:36
【问题描述】:

正如标题所说,

我需要知道在任何 drupal 页面中使用的主题的名称。

例如,我们基本上可以为我们的 drupal 站点设置默认主题和管理主题。现在让我们只考虑这一部分,不要进入用户特定的主题。

因此,在上述情况下,主页将使用 default_theme 加载,当您对任何管理页面执行此操作时,它们将在 admin_theme(seven/bartik) 中加载。

现在我的问题是,当我导航到网站的任何页面时,我需要知道正在加载什么主题。可以是 node/add 或 node/edit 或 admin/* 或 page/* 或任何页面。

当我转到任何页面时,我应该知道该页面中使用的主题名称以及我可以在哪个钩子中编写我的条件。

基于此,我想做一些改变。

我尝试使用全局变量 $theme、path_to_theme、drupal_get_path 等

当我使用它们时,它们总是返回默认主题名称,而不是特定页面中使用的主题。

我在 hook_preprocess_html 中为 $variables 编写了退出语句,它仅在页面是普通用户页面时才通过退出返回值。但不在站点名称/管理员/内容等管理页面中,

任何可以提供帮助的人。

提前致谢

【问题讨论】:

    标签: drupal drupal-7


    【解决方案1】:

    创建一个自定义模块,并将您的代码放在 .module 中的 function hook_init(){} 中。

    没有参数。

    function example_init() {
        global $theme; 
        print $theme.'<br />';  // current theme name 
    
        print $GLOBALS['theme'].'<br />';   // current theme name 
    
        $theme_path = drupal_get_path('theme', $GLOBALS['theme']); 
        print $theme_path.'<br />'; // path to current theme
    }
    

    【讨论】:

    • 感谢您的回复。请你简单介绍一下。 hook_init 没有要传入函数的参数。我可以打印哪些变量来验证?一定有一些全局变量来获取它们。你能告诉我一些吗?
    • 更新了上面的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多