Comment rendre par programmation l'accroche d'un nœud en utilisant la couche de thème?

10

Comment puis-je afficher par programme l'accroche d'un nœud à l'aide de la couche de thème?

Lester Peabody
la source

Réponses:

20

node_view() est la fonction standard pour le rendu des nœuds, par exemple

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

Il y a un nodethème défini par le module node (in node_theme()) mais je ne l'ai jamais vu utilisé.

Clive
la source
1
Node_theme () ne permet-il pas au système de thème d'utiliser un fichier .tpl.php pour l'élément et d'autoriser également les fonctions de prétraitement?
mpdonadio
Oui, je suis préoccupé par le contournement de la couche de thème. Si je le faisais, alors les autres modules voulant s'intégrer ne pourraient pas. Du moins, je pense que c'est exact?
Lester Peabody
1
Lors de l'analyse de api.drupal.org/api/drupal/modules%21node%21node.module/function/… si vous affichez le code d'implémentation, où il est indiqué $build += array(, il contient un #themeattribut qui, je suppose, indique à Drupal d'utiliser le système de thème. Corrige moi si je me trompe. Je commence tout juste à `` obtenir '' l'API Drupal :)
Lester Peabody
@MPD Oui, je n'ai pas très bien expliqué cela, je voulais juste dire que je n'avais jamais vu un appel comme theme('node', ...avant. En fait, cela ne fonctionnerait même pas car il se définit comme ayant un render elementau lieu de variables.
Clive
@Lester sur place, il y a 2 façons d'appeler des fonctions à thème, comme « normale » ( theme('theme_name', $args)et en utilisant ce qu'on appelle l' render elementart. Les hook_theme()documents expliquent assez bien, ce n'est pas 100% intuitif , mais une fois que vous le savez, il est vraiment utile. L' utilisation node_view()volonté ne contournez jamais la couche de thème, donc ça devrait aller :)
Clive