在template.php中他们多次使用classes_array..我不明白意思,为什么他们用…classes_array的目的是什么,什么时候需要在drupal7 .tpl.php
中使用它 example code:
if(in_array('administrator',array_values($variables['user']->roles)))
{
$variables['classes_array'][]="debug";
}
$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标签,如
<body class='debug [...OTHER CLASSES...]'>
为具有管理员角色的用户设置。
还可以将类添加到节点中,或者添加到可以使用预处理钩子的其他类型的元素中。例如,你可以写一个节点预处理函数:
function <YOUR THEME>_preprocess_node($variables) {
$classes_array[] = 'my-class';
}
如果你想添加'my-class'到你网站的每个节点
通常,您不会在tpl.php文件中定义的变量中找到$classes_array
。大多数情况下,您的主题将在$classes
变量中分解它们。然而,必须注意的是,随着时间的推移,出现了一种混乱,所以不同的主题可能会使用$classes_array
, $attribute_array
, $classes
, $attributes['class']
等相同的目的,所以你应该检查你的主题的文档,找出适合你的情况。