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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.