Como processar programaticamente o teaser de um nó usando a camada de tema?

10

Como processar programaticamente o teaser de um nó usando a camada de tema?

Lester Peabody
fonte

Respostas:

20

node_view() é a função padrão para renderizar nós, por exemplo

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

Há um nodetema definido pelo módulo do nó (in node_theme()), mas eu nunca o vi realmente usado.

Clive
fonte
1
Não é node_theme () o que permite que o sistema temático use um arquivo .tpl.php para o elemento e também permita funções de pré-processamento?
mpdonadio
Sim, estou preocupado em contornar a camada do tema. Se eu fizesse isso, outros módulos que desejassem fazer o chip não seriam capazes. Pelo menos, acho que está correto?
Lester Peabody
1
Ao analisar api.drupal.org/api/drupal/modules%21node%21node.module/function/… se você visualizar o código de implementação, onde está escrito $build += array(, ele tem um #themeatributo lá que, suponho, diz ao Drupal para usar o sistema de temas. Corrija-me se eu estiver errado. Eu estou apenas começando a 'ficar' a API Drupal :)
Lester Peabody
@MPD Sim, eu não expliquei isso muito bem, só queria dizer que nunca tinha visto uma ligação como theme('node', ...antes. Na verdade, isso nem funcionaria porque se define como tendo um em render elementvez de variables.
Clive
@Lester no local, há 2 maneiras de chamar funções temáticos, a maneira 'normal' ( theme('theme_name', $args)e usando os chamados render elements. Os hook_theme()docs explicá-lo muito bem, não é 100% intuitivo, mas uma vez que você sabe, é realmente útil. Usando node_view()vontade nunca ignore a camada do tema para ficar bem :)
Clive