Submitted by Delphine94 on
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.
Permalien Soumis par hles le 3 Août, 2012 - 23:33
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.
Oui pour la vue c’est fait
Permalien Soumis par Delphine94 le 3 Août, 2012 - 23:43
Oui pour la vue c'est fait tout est ok. C'est dans la node que ce n'est pas possible dans la page node en fait. On ne peut pas faire rewrite output dans une node :s.
Voiture, piscine sont des cases à cocher dans un champs.
Donc si je comprends bien,
Permalien Soumis par hles le 3 Août, 2012 - 23:52
Donc si je comprends bien, vous voulez "themer" les champs d'un node (par exemple ajouter des icônes pour chaque "case a cocher") ?
Oui parfaitement c’est ça que
Permalien Soumis par Delphine94 le 3 Août, 2012 - 23:56
Oui parfaitement c'est ça que je veux faire. Est-ce qu'il y a un module pour le faire ?
Un module, je ne pense pas.
Permalien Soumis par hles le 4 Août, 2012 - 00:09
Un module, je ne pense pas. Vous devrez probablement passer par des fonctions de theming ou des fonctions de preprocess/templates.
Ok je te remercie ;)
Permalien Soumis par Delphine94 le 4 Août, 2012 - 00:10
Ok je te remercie ;)
Je mets la solution au cas où
Permalien Soumis par Delphine94 le 6 Août, 2012 - 19:21
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é".
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.
Vous vous rendez ensuite dans "structure" et cliquez sur "formatters". Vous cliquez sur "ajouter".
Vous mettez le titre que vous voulez, la description aussi. Vous choisissez "PHP" comme format et écrivez "list_text" pour "Field type(s)".
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 '';
}
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.
Créer du continu du type pour faire un test. Cocher les cases que vous souhaitez.
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