2011-03-09 2 views
2

J'essaie de faire en sorte que Drupal affiche le corps d'un type de contenu particulier dans la balise div avec un certain nom de classe. D'abord, j'ai essayé de surcharger node.tpl.php, mais j'ai découvert que la variable $ content contenait déjà du corps avec des champs cck personnalisés supplémentaires. Et ce que j'essaie de faire, c'est précisément de séparer le corps des autres champs. Après cela, j'ai regardé content-field.tpl.php et j'ai constaté qu'il était uniquement exécuté pour les champs cck personnalisés. Donc ça ne me va pas aussi.Corps de nœud de traitement dans Drupal 6

Alors ... comment thématiser un champ de corps de noeud?

Répondre

0

Si vous devez être très flexible, la meilleure façon pour moi est d'aller à cette page:

admin/contenu/nœud de type/[ContentType]/affichage/base

Et mettre tout vos champs supplémentaires à "caché".

Ensuite, la variable $content contiendra uniquement le corps du corps. L'inconvénient est que vous devez afficher tous les champs supplémentaires un par un. CCK fournir un moyen facile de le faire en fournissant une variable entièrement rendu pour chaque champ

print $field_FIELDNAME_rendered; 

En utilisant cela, vous pouvez vraiment personnaliser facilement la sortie pour un type de contenu.

2

Commencez par appeler

print_r($node); 

C'est ce que vous vous opposez noeud contenant - et vous pouvez utiliser l'un de ses membres directement au lieu d'imprimer uniquement le contenu. Analyser cela et vous saurez quoi appeler exactement;)

Dans le cas du corps, le contenu non mis en forme est accessible avec:

$node->content['body']['#value'] 

Pour d'autres domaines, vous:

$node->field_name[0]['view'] 

(où [0] est l'index de l'élément dans le tableau - utile pour ImageField lorsque vous pouvez télécharger de nombreuses images).

Par exemple, voici le contenu de mon node-event.tpl.php, afficher les détails d'un événement:

<div class="event clear-block"> 
<?php 
    $class = (convert_datetime($node->field_event_date[0]['value']) < time()) ? 'past' : 'future'; 
    echo "<h3 class='header'>When?</h3><p class='$class'>".$node->field_event_date[0]['view']."</p>"; 
    echo "<h3 class='header'>Where?</h3><p>".$node->field_event_place[0]['view']."</p>"; 
    echo "<h3 class='header'>What?</h3>".$node->content['body']['#value']; 
    echo "<h3 class='header'>How much?</h3><p>".$node->field_event_price[0]['view']."</p>"; 
    echo "<h3 class='header'>How to participate?</h3>".$node->field_event_subscribe[0]['view']; 
?> 
</div> 
+0

merci pour une idée avec $ node-> content. N'a pas pensé à ça. –

Questions connexes