¿Cómo renderizar mediante programación el avance de un nodo usando la capa de tema?

10

¿Cómo renderizo mediante programación el reclamo de un nodo usando la capa de tema?

Lester Peabody
fuente

Respuestas:

20

node_view() es la función estándar para representar nodos, p. ej.

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

Hay un nodetema definido por el módulo de nodo (in node_theme()) pero nunca lo he visto utilizado.

Clive
fuente
1
¿No es node_theme () lo que permite que el sistema de temas use un archivo .tpl.php para el elemento y también permite funciones de preproceso?
mpdonadio
Sí, me preocupa pasar por alto la capa del tema. Si hiciera eso, entonces otros módulos que quieran ingresar no podrían hacerlo. Al menos, creo que es correcto?
Lester Peabody
1
Al analizar api.drupal.org/api/drupal/modules%21node%21node.module/function/… si ve el código de implementación, donde dice $build += array(, tiene un #themeatributo que supongo le dice a Drupal que use El sistema de temas. Corrígeme si me equivoco. Ahora estoy empezando a 'obtener' la API de Drupal :)
Lester Peabody
@MPD Sí, no lo expliqué muy bien, solo quería decir que nunca había visto una llamada como theme('node', ...antes. De hecho, eso ni siquiera funcionaría porque se define a sí mismo como tener un en render elementlugar de variables.
Clive
@Lester el clavo, hay 2 formas de llamar a funciones de temas, la forma 'normal' ( theme('theme_name', $args)y mediante el uso de los llamados render elements. Los hook_theme()documentos explican bastante bien, no es 100% intuitivo, pero una vez que sabes, es realmente útil. Usando node_view()voluntad nunca omita la capa del tema, así que debería estar bien :)
Clive