Submitted by selinav on
Bonjour,
J'ai créé une page tpl.php pour personnaliser l'affichage d'un type de contenu.
J'ai donc supprimer le print $content et ajouter mes champs CCK.
Tout fonctionne à merveille, sauf que je n'arrive pas à afficher le corps du texte.
Si je fais un <?php print $node->body ?>
ça m'affiche tout le contenu du noeud.
Quel est l'élément à mettre après $node-> pour afficher uniquement le corps du texte et non pas les autres champs?
Merci de votre aide
Bonjour Pour personnaliser
Permalien Soumis par juliendubreuil le 22 Octobre, 2009 - 11:40
Bonjour
Pour personnaliser l'affichage d'un type de contenu il faut se baser sur node.tpl.php et non pas page.tpl.php que tu renomme ainsi :
node-montypedecontenu.tpl.php ou 'montypedecontenu' est le nom de ton type de contenu.
Une fois dans celui-ci tu peux afficher uniquement le corps de ton contenu avec
<?php print $node->body; ?>
Tu peux aussi afficher tous les champs en faisant
<?php echo'<pre>'; print_r($node); echo'</pre>'?>
ou alors si tu utilises le module devel<?php dsm($node); ?>
qui est bien plus lisiblemerci Julien, je me suis mal
Permalien Soumis par selinav le 22 Octobre, 2009 - 11:58
merci Julien, je me suis mal exprimée, j'ai déjà ma page node-montypedecontenu.tpl.php ou j'affiche mes champs CCK avec
<?php print $node->field_profil_adh_activite[0]['view'] ?>
.Le problème c'est que si je fais
<?php print $node->body; ?>
ça m'affiche tout le contenu de l'article, donc mes champs apparaissent 2 fois (1 fois grâce au<?php print $node->body; ?>
et une autre fois avec mon<?php print $node->field_profil_adh_activite[0]['view'] ?>
.Si je veux récupérer uniquement le texte, dois-je désactiver de l'affichage les champs CCK ou existe-t-il
<?php print $node->corps du texte ?>
Ce que je ne comprend c'est
Permalien Soumis par juliendubreuil le 22 Octobre, 2009 - 12:18
Ce que je ne comprend c'est que chez lorsque je fais un
<?php print $node->body;?>
j'ai bien que le corps de ma pagemoi ça m'affiche tout le
Permalien Soumis par selinav le 22 Octobre, 2009 - 13:43
moi ça m'affiche tout le contenu du noeud incluant les champs cck.
Existe-t-il une autre solution?
Tu utilises quelle version
Permalien Soumis par juliendubreuil le 22 Octobre, 2009 - 13:54
Tu utilises quelle version de Drupal ?
pareil, j'ai bien le corps
Permalien Soumis par nyl auster le 22 Octobre, 2009 - 13:55
pareil, j'ai bien le corps de la page uniquement (avec uniquement en prime les images éventuellement insérés via un rich text editor)...
tu es sûr que tu laisses pas trainer ta variable $content juste derrière dans ton fichier ? il faut l'enlever si tu fais ton template a la main.
je suis sûre, je l'ai
Permalien Soumis par selinav le 22 Octobre, 2009 - 14:20
je suis sûre, je l'ai supprimée lors de la création.(version Drupal 6.14)
Pour ne pas faire apparaître les champs cck, je suis obligée de les exclure dans l'affichage des champs.
Ca me dépanne pour cette fois, mais bon, je ne pense pas que ce soit la meilleure méthode.
Ci-dessous le code de ma page
<div class="node <?php print $classes; ?>" id="node-<?php print $node->nid; ?>">
<div class="node-inner">
<?php if (!$page): ?>
<h2 class="title"><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
<?php endif; ?>
<?php print $picture; ?>
<?php if ($submitted): ?>
<span class="submitted"><?php print $submitted; ?></span>
<?php endif; ?>
<div class="content">
<div class="field field-type-text field-field-job-ref-offre">
<div class="field-items">
<div class="field-item odd">
<div class="field-label-inline-first">Réf Offre: </div>
<?php print $node->field_job_ref_offre[0]['view'] ?>
</div>
</div>
</div>
<?php //affichage texte manquant ?><?php print $node->body;?>
<div class="field field-type-text field-field-job-type">
<div class="field-items">
<div class="field-item odd">
<div class="field-label-inline-first">Type de contrat: </div>
<?php print $node->field_job_type[0]['view'] ?>
</div>
</div>
</div>
<?php if($node->field_job_afficher_societe[0]['view']=="Oui"){?>
<div class="field field-type-nodereference field-field-job-societe">
<div class="field-items">
<div class="field-item odd">
<div class="field-label-inline-first">Société: </div>
<?php print $node->field_job_societe[0]['view'] ?>
</div>
</div>
</div>
<?php } ?>
<div class="field field-type-text field-field-job-contact">
<div class="field-items">
<div class="field-item odd">
<div class="field-label-inline-first">Contact offre: </div>
<?php print $node->field_job_contact[0]['view'] ?>
</div>
</div>
</div>
</div>
<?php if ($terms): ?>
<div class="taxonomy"><?php print $terms; ?></div>
<?php endif;?>
<?php if ($links): ?>
<div class="links"> <?php print $links; ?></div>
<?php endif; ?>
</div> <!-- /node-inner -->
</div> <!-- /node-->
Et ça ? <?php print
Permalien Soumis par Crayulayon le 23 Octobre, 2009 - 03:18
Et ça ?
<?php print $node->content['body']['#value'] ?>
Bien vu ça fonctionne même
Permalien Soumis par selinav le 23 Octobre, 2009 - 08:50
Bien vu ça fonctionne même si je ne fais pas exclure de l'affichage les autres champs.
Merci.