Theming type de contenu

Events happening in the community are now at Drupal community events on www.drupal.org.
babacar's picture

Bonjour,

j'ai un type de contenu avec un champ email et un champ etape avec valeur multiple. Pour faire le theming j'ai du utiliser ce bout de code pour le champ email:

<div class="theme-email">
<label for="">Email:</label>
<input type="text" name="" value="<?php print $field_email_agent[0]['value']?>" readonly id=""/>
</div>

et celui ci pour le champ etape

<div class="theme-etape>
<ol class="etapes">
<?php foreach ($field_etape as $etape) : ?>
<li><?php print $etape['safe_value'] ?></li>
<?php endforeach; ?>
</ol>
</div>

tous les autres champs affichent des valeurs sauf ces deux champ.

Comments

Question ou astuce??

knibals's picture

Bonjour Babacar, merci pour ce post. Je ne comprends toutefois pas: tu est en train de poser une question (laquelle?) ou veux juste partager une astuce avec le groupe?
Bonne continuation et bon theming...

Petit à petit, on devient moins petit

Oui il me semble que mon

babacar's picture

Oui il me semble que mon post est un peu incomplète. j'ai de graves blem de français.
En fait je pose une question :

j'ai un type de contenu agent avec plusieurs champ (Nom, prénom, email, telephone,etape etc.......) le cham etape est un champ à valeur multiple

j'ai décidé de faire le theming de ce type de contenu en créant un fichier node--agent.tpl.php.

Comme mentionné sur le post d'origine tous les champs s'affichent sauf ceux-ci(email et etapes)

Et je voudrai savoir quelle est l'origine de ce problème ?

The more we know about Drupal,The better !!!!!

Template suggestion fonctionnel??

knibals's picture

Bonjour Babacar, j'interviens à ce niveau parce que je me demande si ton fichier template est pris en compte? Il existe dans Drupal 7 le mécanisme dit de temple suggestion. Automatique sous D6, il faut sur D7 mettre un petit bout de code dans ton fichier template.php pour le déclencher. Par exemple:

<?php
function kyziah_preprocess_node(&$node) {
  if(
$vars['view_mode'] == 'teaser') {
   
$node['theme_hook_suggestions'][] = 'node__' . $node['node']->type . '<strong>teaser';
   
$node['theme_hook_suggestions'][] = 'node</strong>' . $node['node']->nid . '__teaser';
  }
}
?>

Je te conseille aussi de voir ce commentaire pour plus d'information.

Petit à petit, on devient moins petit

Use the render function

bassthiam's picture

Bonjour Babacar,
dans ton fichier template, la valeur des fields est dans le tableau $content.
tu n'a pas besoin de construire une liste avec les elemnts html ol etc,
utilise plutot la fontion render et configure le display pour chaque field.
j'aurai écrit:

<div class="theme-email">
       <?php print  render($content['field_email_agent']);  ?>
</div>

<div class="theme-etape>
     <?php print  render($content['field_etape']);  ?>
</div>

la fonction render() n'est

babacar's picture

la fonction render() n'est elle pas souvent utilisée pour afficher des champs que l'on ne souhaite pas retravailler (en terme de css par exemple)

The more we know about Drupal,The better !!!!!

Hello

tamsir's picture

Hello babacar teste ca et tiens nous au courant

$node->field_nom_du_champ[$node->language][0]['value'];

Use the render function2

bassthiam's picture

La fonction render to fabrique le HTML de ton field.

Tu peux manipuler les paramétres d'affichache de ton champ, pour qu'il te produise la structure HTML que tu souhaites.

Si tu n'est toujours pas satisfait du rendu HTML, tu dois écrire ta propre funtion theme:
tu a la docu nécessaire ici https://api.drupal.org/api/drupal/modules!field!field.module/function/theme_field/7

La fonction render utilisera alors ta fontion pour produire le HTML.
Ton css va dans les fichiers .css, en plaçant tes classes dans les templates tu pourra ainsi les ciblrer

@Tamsir : j'ai essayé ta

babacar's picture

@Tamsir : j'ai essayé ta proposition mais j'ai le même résultat le champ email ne s'affiche toujours pas.

@basshiam : je vais explorer ta proposition et vous tiens au courant.

Merci les gars

The more we know about Drupal,The better !!!!!

Senegal

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: