drupal版本是6.只想知道那些$ body_classes来自哪里。
我在template_preprocess_page中知道,有一个名为'body_classes'的变量。
但我的问题是,并非所有的body_classes都来自预处理页面。
例如:
我有一个名为'活动和景点'的术语,然后在我的page.tpl.php中,有一个班级 我的标签中的“页面活动和景点”。看起来像分类模块生成一个body_class,但我可以在搜索分类模块的源代码之后找到它。
答案 0 :(得分:2)
模块(例如分类法)通常不会覆盖页面模板变量。虽然可以通过在hook_theme_registry_alter()中提供自定义预处理函数来完成。 (例如,参见context module)
课程'page-activities-and-attractions'很可能来自1894行的includes / theme.inc中的template_preprocess_page()
$body_classes[] = preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', 'page-'. form_clean_id(drupal_strtolower(arg(0))));
这为drupal路径的第一部分添加了一个body类 例如,路径“node / 1”将具有body类“page-node”,路径“taxonomy / term / 1”将具有body类“page-taxonomy”。
如果您有“活动和景点”的路径(可能来自视图的页面显示?)那么您将获得一个身体类“页面活动和景点”。
注意:这使用内部Drupal路径而不是url别名。别名“content / mypage”在内部可能真的是“node / 12”,因此body类将是“page-node”而不是“page-content”。