drupal7 - classes_array在drupal7 template.php中的用途是什么?


drupal 7 - what is the use of classes_array in drupal7 template.php

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