Quiero cambiar el modo de vista del nodo mediante programación. Usé hook_preprocess_node(&$vars)
y configuré el modo de vista:
function moduleName_preprocess_node(&$vars) {
// if conditions to apply particular view mode
$vars['view_mode'] = 'teaser';
$vars['elements']['#view_mode'] = 'teaser';
}
Pero esto no está funcionando como se esperaba. ¿Me estoy perdiendo de algo?
Respuestas:
La alteración del modo de vista en la función de preproceso lo hace demasiado tarde.
La forma correcta de alterar el módulo de vista es implementar hook_entity_view_mode_alter () , que se llama antes de que se represente el contenido de la entidad. Por ejemplo, en node_view () , ese gancho se invoca desde node_build_content () , que es la primera función llamada desde
node_view()
.fuente
Si necesita cambiarlo para ciertas páginas, le sugiero que vea la página del modo de visualización . Es bastante práctico y fácil de usar.
fuente