Filefield : changer intitulé affiché

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,

Peut on différencier l'intitulé d'un champs filefield entre le backoffice et le front ? si oui comment ? avec quel module ?

dans le même registre je voudrais faire pareil pour la taxonomie...

merci

Version de Drupal : 
Tags : 

bon ça va te paraitre un peu fastidieux :

  • tout d'abords il te faut dupliquer le fichier node.tpl.php de ton thème
  • tu renomme le fichier copié en node-NomTypeDeContenu.tpl.php
  • Ensuite tu edites le fichier, et en lieu en place de la variable $content tu fais ton propre affichage de tes champs. Là tu vas me dire que c'est super fastidieux et c'est vrai ^^, à moins que tu ne disposes du module "contemplate". Si c'est le cas tu peux aller regarder le template d'affichage des noeuds de ton type de contenu, tu copies le template "body" que te donne contemplate et tu le mets à la place de ta variable "$content". Une fois que c'est fait tu as la main sur tout l'affichage de ton noeud. label, class, DOM etc...

ok j'ai compris mais je me retrouve devant le même souci deja rencontré, à savoir trouver ces fameuses variables et ensuite bien les noter dans le code pour les afficher...je galere pas mal avec ca..contemplate , je l'ai pas trop compris, alors je fais avec print_r mais je ne sais pas comment se note ensuite les variables qu'il renvoi..je n'arrive pas à mettre la main sur une convention d'ecriture de ces variables dans api drupal

l'intérêt de contemplate est justement qu'il te fourni exactement ce que contiendra ta variable "$content" dans ton fichier node-xxxx.tpl.php

tu peux recopier tel quel ce qu'il te donne cela fonctionnera.
Lorsque tu te trouves dans un node-xxxx.tpl.php tu as la variable $node qui est chargée, cela veut dire que toutes les informations de ton noeud sont disponibles.

Si tu n'y arrives toujours pas j'essaierai de te donner un cas concret.

je pense que je peux y arriver avec print_r , voici la page en question avec les variables : http://www.provence-formation.fr/site/force-de-vente

j'ai essayé ce code :

<table class="table-poste-bts">
           <tr>
               <td>  <?php print $node->content['field_reference_pbts']['value'] ?></td>

           </tr>
       </table>

sans succès, il doit bien exister une doc qui explique comment se servir de ces valeurs non ? sinon comment on fat ceux qui s'en servent pour connaitre la manière d'écrire le code ? à moins que ce soit une convention classqiue issu de php, auquel cas un developpeur php n'a pas de soucis..

bref je veux juste récupérer la valeur des champs custom que j'ai créé afin de les afficher dans mon tableau html

pour t'aider tu peux mettre le module "Devel" il va te donner accès a une fonction fort utile kpr();

mets devel et dans ton template de noeud fais un kpr($node).

je pense que ton code devrait plutôt se rapprocher de ça :

<?php
<table class="table-poste-bts">
           <
tr>
               <
td>  <?php print $node->field_reference_pbts[0]['view']
?>

edit : le kpr() c'est une sorte de print_r() ou var_dump() mais afficher de manière plus propre et inéligible

ça progresse,avec ton code la valeur s'affiche mais il y a un 1 en plus que je n'arrive pas à éliminer..idem pour le label que je voudrais afficher mais seul ce 1 sort..

ensuite comment je fais pour utiliser le kpr ? je dois le mettre dans le code de l apage comme avec print_r ?

j'ai pas trouvé pour kpr() mais j'ai trouvé pour mes champs,voici le code qui marche pour afficher le label et la valeur du champ,les 1 ont disparus d'ailleurs...peut être due à devel..

   <tr>
               <td>  <?php  print $node->content['field_reference_pbts']['field']['#title'?></td>
               <td>  <?php  print $node->field_reference_pbts[0]['view'] ?></td>

           </tr>

pour kpr je crois que c'est bon,je le vois direct dans devel...
mais je n'arrive pas a recuperer le terme de taxonomie associé à mon node...malgré de multiples recherches et essais...

voici mes tests:

<?php
 
print $node->term ['name']['view']
?>
<?php
 
print $term->name['view']
?>

je continue a fouiller...

dans le node-xxxx.tpl.php il suffit que tu fasse un

<?php
 kpr
($node);
?>

au début et tu aura une belle div dépliable avec toutes les information contenu dans ton objet $node (attention kpr ne se voit qu'en étant connecté en admin)

avec un beau kpr normalement il t'aurait fallu 30 seconde pour trouver tes taxonomy qui sont dans

$node->taxonomy

Cet attribut de ton objet $node est un tableau d'objet. Cela signifie que pour afficher tes taxo tu devras faire une boucle :

<?php
 

foreach ($node->taxonomy as $term){
  print
$term->name ;
}
?>

bien je suis passé par une fonction dans template.php :

<?php
//Pour afficher une seule taxonomie dans la fiche
function monTheme_preprocess_node(&$vars) {
 
$node = $vars['node'];
 
$wanted_vid = 7;//Choisir ici le vid voulu
 
foreach($node->taxonomy as $term) {
    if (
$wanted_vid == $term->vid ) {
     
$vars['my_terms'] .= $term->name; //You would need to format this the way you want it displayed, or pass it to a theme function
   
}
  }
}
?>

et

<?php
 
print $my_terms;
?>

dans le node.tpl

merci pour ton aide,j'ai pu apprendre plein de choses utiles.