2009-03-25 11 views
1

Dans un de mes modules, j'aimerais sortir le teaser de noeud. Le noeud a des champs CCK, et je voudrais qu'ils soient affichés en fonction des paramètres de visibilité que vous pouvez choisir dans la zone d'administration des types de contenu/paramètres de champ.Drupal CCK: comment générer un teaser de noeud avec ses champs?

Mais quand je fais:

$html = theme('node', $n); 

le teaser résultant ne contiendra pas les champs CCK, seul titre et le corps.

Quelle autre fonction thématique dois-je appeler?

Le noeud contient des champs tels qu'une image et une référence de noeud. Je suppose que je pourrais écrire le code HTML manuellement, mais il me semble préférable d'utiliser les fonctions de thématisation fournies ...

Répondre

5

http://api.drupal.org/api/function/node_view/6

$node = node_load($n); 
$html = node_view($node,TRUE); 

Ensuite, vous pouvez sélectionner les champs à afficher sur le type de contenu > Affichage Les champs après cela, vous pouvez éditer le thème de ce teaser via contemplate module ou node-content_type.tpl.php sur le dossier de thème.

0

De plus en utilisant node_view à partir du code permet à un total de 4 modes de modèle de noeud.

node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE)

Pour les nœuds fous que j'ai eu mon modèle comme ça ...

<?php 
switch(true){ 
case($page && $teaser): ?> 

    <div class="content"> 
    <?=$content?> 
    </div> 

<?php 
break; 
case($page && !$teaser): ?> 

    <div class="content"> 
    <?=$content?> 
    </div> 

<?php 
break; 
case(!$page && $teaser): ?> 

    <div class="content"> 
    <?=$content?> 
    </div> 

<?php 
break; 
case(!$page && !$teaser): ?> 

    <div class="content"> 
    <?=$content?> 
    </div> 

<?php 
break; 
default: print 'this should never happen.'; 
}?> 
Questions connexes