我正在使用Page Manager和Panels,为自定义节点面板提供按类型的选择规则(例如,文章的一个面板变体,博客内容类型的一个面板变体)。到目前为止,该工具运行平稳,样式也很整洁。但是,如何获得更多的元素渲染能力?
呈现特定元素的方式有多种:添加字段,使用令牌,使用自定义视图仅呈现特定字段,使用具有视图模式的呈现节点实体。使用带有占位符等的自定义面板内容
最好的方法是什么?能够添加可以在* .tpl.php中设置样式的自定义(内容)窗格元素非常好。
我当前的方法是使用显示套件,为不同的部件/面板区域创建视图模式,并使用主题挂钩建议为每种视图模式添加自定义node.tpl.php。它不需要调用视图,这几乎是一个过大的杀手?!渲染,其他查询...),并且可以使用已经缓存的实体。
function mytheme_preprocess_node(&$vars) {
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_left') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_left';
}
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_right') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_right';
}
}
我不确定这将被缓存得多么好,它将消耗多少资源。任何建议将不胜感激。