在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";
}
答案 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']
等等目的,所以你应该检查你的主题文档,找出适合你的情况。