Submitted by meybeck on
Bonjour,
Je créé un thème personnalisé.
Je tente d'utiliser le Champ image de type de contenu "Article" de Drupal 7.
Dans l'administration du type de contenu, j'utilise un champ "Image", de nom "field_image", avec un widget "Image".
Dans mon article, je renseigne ce champ en choisissant une image.
Or, en front-office, au lieu d'avoir une image, j'ai un champ comme ceci :
<div class="field-items">
<div class="field-item even" resource="http://image.meybeck.net/sites/default/files/field/image/services.png" rel="og:image rdfs:seeAlso"></div>
</div>
Ma question est : comment obtenir une balise image au lieu de ce code ?
Merci pour vos réponses...
Bizarre. Quel thème
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 08:12
Bizarre. Quel thème utilisez-vous ?
C’est bien là le problème :
Permalien Soumis par meybeck le 16 Septembre, 2011 - 09:24
C'est bien là le problème : je créé mon thème de zéro.
Il doit me manquer une fonction, ou peut-être ajouter une variable à mon thème, mais j'ai beau chercher, je ne trouve rien (rien que je puisse comprendre en tout cas) !
Voulez-vus voir les codes de page.tpl.php ou node.tpl.php ?
Cela ne donnerait pas grand
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 09:31
Cela ne donnerait pas grand chose, tout se passe dans les fonctions de theming.
Par exemple, pour afficher une image, il faut utiliser la fonction theme_image.
Franchement vous prenez le problème par la face nord : il existe des tas de thèmes permettant de disposer d'une base solide et qui sont extrêmement adaptables. J'aime beaucoup Basic par exemple, mais ce n'est pas le seul.
Bien sûr, rien ne vous empêche de créer vos propres fonctions, voir d'écrire directement du HTML, mais vous vous privez de tout un tas de fonctionnalités très puissantes de l'API et du travail déjà fait par la communauté sur les thèmes de base.
Merci pour vos
Permalien Soumis par meybeck le 16 Septembre, 2011 - 10:07
Merci pour vos réponses.
Effectivement, je vais me pencher sérieusement sur cet aspect !
Mais commençant sur Drupal, il m'a semblé pertinent de traiter les problèmes un par un pour bien comprendre la bête, au vu de sa complexité.
Mais, sauf erreur, ceci ne m'explique pas comment utiliser ce champ d'image du type de contenu : j'imagine qu'il y a moyen d'exploiter l'attribut "resource" du div ".field-item even"... mais comment ?
Votre setup semble
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 10:21
Votre setup semble particulier. Je commencerais vraiment par utiliser un thème standard et voir si tout fonctionne correctement. Vous pourrez toujours comparer votre thème maison avec le standard et essayer de deviner ce qui cloche.
Votre démarche de prendre les choses l'une après l'autre est louable, mais malheureusement tout est lié dans Drupal. Je pense donc qu'une approche 'holistique' est plus adaptée pour commencer, quitte ensuite à creuser telle ou telle fonctionnalité particulière.
En fait je suis parti du
Permalien Soumis par meybeck le 16 Septembre, 2011 - 10:58
En fait je suis parti du thème Stark, mais effectivement il est vide.
Je pensais que du coup, j'avais les fonctions par défaut de Drupal.
Alors il y a quelque chose de
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 11:02
Alors il y a quelque chose de vraiment étrange. Les images devraient effectivement être là sans que vous ayez besoin de faire quoi que ce soit.
Est-ce que le Stark de base fonctionne ? Et les autres thèmes, comme Seven ? Avez-vous correctement renommé les fonctions quand vous l'avez copié ? Le namespacing est très important dans Drupal (comme partout en programmation d'ailleurs).
Je n’ai renommé aucune
Permalien Soumis par meybeck le 16 Septembre, 2011 - 11:43
Je n'ai renommé aucune fonction car Stark est vide de fonction !
A mon avis, il en faut effectivement une qui transforme les text-field en image, qui n'est pas présente dans ce thème...
Je viens de tester Stark sur
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 11:51
Je viens de tester Stark sur mon site sandbox et il affiche parfaitement les images, avec tag
et tout et tout.
Merci de passer du temps sur
Permalien Soumis par meybeck le 16 Septembre, 2011 - 12:55
Merci de passer du temps sur mon problème !
Vous renseignez le champ image dans un article "sous le champ Tags" et au final il vous affiche donc bien une image...
Effectivement, si je remplace mon thème par Stark, ça fonctionne !
Mais sur mon thme, moi j'ai beau faire des tests dans tous les sens, supprimer des éléments, j'obtiens cette balise
<div class="field field-name-field-image field-type-image field-label-hidden">
<div class="field-items">
<div class="field-item even" resource="chemin/monimage.jpg" rel="og:image rdfs:seeAlso"></div>
</div>
</div>
Je vais continuer mes tests...
Pour vous aider, vous pouvez
Permalien Soumis par Numerizen le 16 Septembre, 2011 - 13:30
Pour vous aider, vous pouvez utiliser ce module : http://drupal.org/project/devel_themer. Il permet de savoir quelle fonction est appelée pour formater un élément donné d'une page.
Merci, je vais regarder et si
Permalien Soumis par meybeck le 19 Septembre, 2011 - 09:24
Merci, je vais regarder et si j'arrive à résoudre ce problème je l'indiquerai ici !
Bon. Après quelques mois
Permalien Soumis par meybeck le 9 Mars, 2012 - 14:51
Bon.
Après quelques mois d'utlilisation assez intensive de Drupal, je me suis remis sur ce site, et la solution au problème m'est apparue rapidement.
C'est complètement idiot.
En fait, ce site est fait pour une entreprise qui s'appelle Image. Donc mon thème s'appelait image. Donc problème avec le module image. Voilà. En renommant le thème, le problème a disparu !
Merci beaucoup à Numerizen pour le temps consacré à répondre à mes messages !
Oui, problème de namespace
Permalien Soumis par Numerizen le 9 Mars, 2012 - 15:27
Oui, problème de namespace donc, comme je l'avais subodoré. Pour la semaine prochaine, cent lignes de "Je nommerai toujours mes thèmes et mes modules avec des noms pas standard."