Estou usando o Page Manager and Panels , fornecendo painéis de nós personalizados com regras de seleção por tipo (por exemplo, uma variante de painel para artigo - e uma variante de painel para tipo de conteúdo de blog). Até agora, isso funciona sem problemas, o estilo também é elegante. Mas como posso obter mais poder sobre a renderização de elementos?
Existem várias maneiras de renderizar elementos específicos: adicionar campos, usar token, usar uma exibição personalizada, renderizar apenas campos específicos, usar entidade de nó renderizada com modo de exibição. usando o conteúdo do painel personalizado com espaços reservados etc.
Qual é a melhor abordagem aqui? Seria ótimo ter a capacidade de adicionar um elemento de painel personalizado (algo) que pode ser estilizado em um * .tpl.php.
Minha abordagem atual seria usar o conjunto de exibição, criar modos de exibição para diferentes regiões de peças / painéis e usar sugestões de gancho de tema para adicionar node.tpl.php personalizado para cada modo de exibição. Não seria necessário invocar visualizações, o que é um exagero ?! processamento, consultas adicionais ...) e pode usar entidades já armazenadas em cache.
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';
}
}
Não tenho certeza de quão bem isso será armazenado em cache e quantos recursos consumirá. Qualquer conselho seria grato.