drupal 7 template.php中classes数组的用途是什么

时间:2014-03-21 13:19:38

标签: php drupal-7

在template.php中很多次他们使用classes_array..am没有得到意义以及他们使用的原因,.. classes_array的目的是什么以及什么时候我们必须在drupal7 .tpl.php中使用它

    example code:
    if(in_array('administrator',array_values($variables['user']->roles)))
    {
     $variables['classes_array'][]="debug";
      }

1 个答案:

答案 0 :(得分:1)

$variables['classes_array']用于预处理函数。它添加了用于渲染要处理的元素的类。在您的示例中,名为" debug"的类将被添加到渲染元素的html容器中:如果实际代码是

function <YOUR THEME>_preprocess_html(&$variables) {
  if (in_array('administrator',array_values($variables['user']->roles))) {
    $variables['classes_array'][]="debug";
  }
}

你的主题会输出一个像

这样的正文标签
<body class='debug [...OTHER CLASSES...]'>

适用于具有管理员角色的用户。

您还可以向节点或其他可用预处理挂钩的元素添加类。例如。你可以写一个节点预处理函数:

function <YOUR THEME>_preprocess_node($variables) {
  $classes_array[] = 'my-class';
}

如果你想添加我的班级&#39;到您网站的每个节点。

通常,您不会在tpl.php文件中的已定义变量中找到$classes_array。大多数情况下,您的主题会在$classes变量中将其破坏。但必须注意的是,随着时间的推移出现了一种混乱,因此不同的主题可能会使用$classes_array$attribute_array$classes$attributes['class']等等目的,所以你应该检查你的主题文档,找出适合你的情况。