Estoy usando Page Manager y Panels , proporcionando paneles de nodo personalizados con reglas de selección por tipo (por ejemplo, una variante de panel para artículo, una variante de panel para tipo de contenido de blog). Esto funciona sin problemas hasta ahora, el estilo también es ordenado. Pero, ¿cómo puedo obtener más poder sobre la representación de elementos?
Hay varias formas de representar elementos específicos: agregar campos, usar token, usar una vista personalizada solo representar campos específicos, usar entidad de nodo renderizada con modo de vista. utilizando contenido de panel personalizado con marcadores de posición, etc.
¿Cuál es el mejor enfoque aquí? Sería genial tener la capacidad de agregar un elemento de panel personalizado (algo) que se pueda diseñar en un * .tpl.php.
Mi enfoque actual sería usar el conjunto de pantallas, crear modos de vista para diferentes partes / regiones de panel y usar sugerencias de enlace de tema para agregar node.tpl.php personalizado para cada modo de vista. ¡No necesitaría invocar vistas, lo cual es una exageración! renderizado, consultas adicionales ...) y puede usar entidades ya almacenadas en caché.
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';
}
}
No estoy seguro de qué tan bien se almacenará en caché y cuántos recursos consumirá. Cualquier consejo sería agradecido.