[RESOLU] Modifier un champ dans une Node

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,

J'ai un petit souci sur Drupal. Je fais un site sur l'hôtellerie. Le client souhaite afficher les disponibilités dans chaque hôtel (piscine, jacuzzi, location de voiture, etc...)sous forme d'icônes et au survol grâce au title s'afficherait "location de voiture" si on passe la souris sur la voiture par exemple.
Il me semblait mieux de faire des champs type cases à cocher et si par exemple en rentrant les infos je clique sur "voiture" que la key soit récupérée pour être le nom de l'image.
J'ai fait la même chose dans une vue (rewrite output) et c'est passé car il est possible d'éditer comment un champs s'affiche dans une vue par contre, cela est malheureusement impossible pour la node.

Faire un champs image pour moi n'est pas une solution car cela me ferait perdre un temps fou et je devrais tout le temps uploader les images (icones).

Pas sur d'avoir bien compris. Si "piscine", "voiture" etc sont des champs d'un node, alors vous pouvez facilement les représenter avec une image (avec views output rewrite ou un template) et ajouter une propriété HTML "title" a votre image afin d'afficher "location de voiture" par exemple au survol de l'image.

Je mets la solution au cas où ça pourrait aider quelqu'un.

Il existe bel et bien un module pour modifier l'apparence des champs. Il s'agit de custom formatters : http://drupal.org/project/custom_formatters/.

1.Vous créez votre champ liste texte et vous choisissez "cases à cocher / radio". Vous rentrez vos valeurs (PAS BESOIN DE RENTRER DES CLES) juste des noms comme pomme, orange, mandarines, fraises, raisins, tomates, etc ... le tout en allant à la ligne à chaque fois. Pour nombre de valeurs si vous souhaitez des cases à cocher vous mettez "illimité".

  1. Vous téléchargez le module et l'installez. Il y a aussi une librairie à télécharger et à créer le dossier dans sites/all/libraries. Vous activez le module par la suite.

  2. Vous vous rendez ensuite dans "structure" et cliquez sur "formatters". Vous cliquez sur "ajouter".

  3. Vous mettez le titre que vous voulez, la description aussi. Vous choisissez "PHP" comme format et écrivez "list_text" pour "Field type(s)".

  4. Si vous souhaitez faire la même chose que moi, vous écrivez ceci dans le textarea formatter :

foreach ($variables['#items'] as $nametype => $item)
{
$value = ($item['value']);
$accents = array("ê", "é", "è", "ç", "ô", "â", "à", " ");
$sans_accent = array("e", "e", "e", "c", "o", "a", "a", "-");
$image_name = str_replace($accents, $sans_accent, $value);
echo ''.$value.'';
}

  1. Vous retournez dans les types de contenu et dans affichage là où c'est écrit : par défaut vous mettez "personnalisé avec le titre du formatter créé précédemment.

  2. Créer du continu du type pour faire un test. Cocher les cases que vous souhaitez.

  3. Allez dans le formatter que vous avez créé en cliquant sur "Modifier". Jusqu'en bas c'est écrit : Aperçu. Choisissez le type de node, le champs et cliquez sur aperçu. Vous verrez que vos images sont créées.

Le résultat sur mon site c'est les petites icônes de services proposés : http://azmartinique.com/fr/ou-loger/hotels/auberge-de-l-anse-mitan