[Résolu] ne pas afficher un champs CCK vide template drupal

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonsoir,

Comment faire pour ne pas afficher un champ CCK vide dans le template ?

Merci d'avance pour votre réponse.

Cordialement

Juliette

Forum : 
Version de Drupal : 

Juliette,

Il y a une méthode assez pratique : au lieu d'afficher $content, tu affiches tes champs un par un.

Les champs CCK sont récupérable via quelque chose comme $node->field_ton_champs[0]['value']

Pour les trouver, tu peux visualiser tout ce qu'il y a dans $node avec un var_dump($node);

Oui c'est ce que je fais...
Je fais un template différent pour chaque type de page avec : $node->field_ton_champs[0][‘value’] pour chaque champs, mais si je n'upload pas d'image par exemple, il y a un espace qui se crée quand même sur la page.
Il faudrait que je mette dans le code quelque chose comme cela : if (!empty($node->field_ton_champs[0][‘value’])) mais je n'ai pas la syntaxe exacte...

Merci pour ta réponse !

Tu es sur la bonne voie.
Je dirais quelque chose comme ça :

<?php if( !empty($node->field_ton_champs[0][‘value’])): ?>
<div class="taclasse"><?php echo $node->field_ton_champs[0][‘value’]; ?></div>
<?php endif; ?>

Mais regarde dans $node, parfois c'est $node->field_ton_champs[0]['view'] avec 'view' et pas 'value'.

Sinon, si c'est une question d'espace, c'est peut-être le CSS...?