我们在开发Drupal8中,我们将一个Drupal网站分成多个频道,每个频道包含多个栏目和子栏目。
为了控制每个频道的样式,需要为html的body指定自己的class,经过研究可以使用hook_preprocess_html。
示例代码:
function mytheme_preprocess_html(&$variables) {
// Add node id to the body class.
$pindao_id = lanmu_get_current_pindao();
$pindao_mappings =[
1=> 'about',
2 => 'science-research',
3 => 'technology',
4 => 'services',
5 => 'cooperation',
6 => 'human-resources',
7 => 'dangjian',
8 => 'resource',
9 => 'contactus',
10 => 'news',
];
if(!empty($pindao_mappings[$pindao_id])) {
$variables['attributes']['class'][] = 'pindao';
$variables['attributes']['class'][] = 'pindao-' . $pindao_mappings[$pindao_id];
}
}这样就可以按照频道,给网站添加特定频道的class,对于每个频道特定的样式,我们可以单独指定。

