utilisation d'un champ dans une vue avec php

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.

Bonjour à tous,

J'ai fait une vue qui affiche un titre , une date, et une image.

Je voudrais formater la date différement.
Au lieu de l'afficher à l'aide de caractères (2011-03-11), je voudrais pouvoir récupérer la valeur du champ, faire des substr() en php et en fonction, recréer une icone calendrier (en image donc).

J'utilise le module php filter qui me permet de créer un champ spécial dans la vue. Seulement, je ne parviens pas à trouver le nom du champ date.

L'exemple indique qu'on peut récupérer une valeur en utilisant $data->nid, dès lors, quel serait le nom de mon champ date ???
J'ai tenté $data->date, $data->field_date, $data->field_date_value, mais rien de cela ne fonctionne :/

Est ce que quelqu'un aurait une idée ?

Merci d'avance pour votre aide.

H

Version de Drupal : 
Tags : 

En effet ...

Trouver le nom des champs dréé dans le type de contenu

<?php
 
print var_export($data, TRUE);
?>

Cette fonction va afficher une longue liste de champs, Il ne reste plus qu'a choisir ...

Concernant les images

Une images calendrier se compose de 2 parties:

  • Entete de calendrier comprenant le nom des mois
  • Bas de page calendrier comprenant les chiffres

Le nom des images est important, en ce sens, il doit comporter le numéro du mois ou du jour auquel l'image se rapporte sur 2 positions.

(ex: l'image entete pour le mois de janvier doit être top-01.png)

concernant Drupal

  • Créer un type de contenu comportant une Date
  • Créer une vue comportant 2 champs
    • un champ Date (que l'on affiche pas)
    • un customfield (phpcode) dans lequel indiquer le code suivant:

      attention le customfield doit se trouver en dessous du champ date pour que cela fonctionne !


      <?php
       
      //init var
       
      $v= explode("-", $data->node_data_field_date_field_date_value);
       
      $y = $v[0];
       
      $m = $v[1];
       
      $d = explode("T",$v[2]);
       
      //build path 
       
      $calpathtop = '../files/images/calendars/open-b-' . $d[0] . '.png';
       
      $calpathbottom = '../files/images/calendars/open-fr-' . $m . '.png';
       
      //build calendar
       
      echo '<img src='. $calpathbottom .' style="padding-left:0px;">';
        echo
      '<br />';
        echo
      '<img src='. $calpathtop .' style="margin-top:-13px;padding-left:0px;" >';
      ?>

Voilà tout!

En espérant avoir été clair ...

H