Comment supprimer les deux points de mes étiquettes de champ?

10

Je veux simplement pouvoir supprimer les deux-points de mes étiquettes de champs rendus, par exemple:

Nom de l'hôtel: au nom de l'hôtel

J'ai copié field.tpl.php et retiré le côlon là-bas, mais peu importe ce que Drupal refuse de l'accepter et tire le côlon d'ailleurs.

Comment puis-je faire cela avec une fonction template.php?

blue928
la source
avez-vous vidé le cache?
AjitS
oui, plusieurs fois. no go
blue928
@ blue928 Voir le post en double, vous devez le remplacer theme_form_element()pour le faire
Clive
Ce nœud / correctif ci-dessus a simplement supprimé les deux-points du formulaire lorsque quelqu'un modifie / saisit du contenu. J'ai besoin de supprimer les étiquettes après leur rendu dans le nœud. .. donc, ce ne serait pas un doublon de ce qui précède. J'ai en fait implémenté cette solution pour obtenir ce résultat.
blue928

Réponses:

16

La réponse est certainement d'utiliser field.tpl.php . Si vous regardez la source de ce fichier, vous pouvez voir les lignes incriminées:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(mine d'espacement et d'indentation pour plus de clarté).

Supprimer les deux points est aussi simple que de remplacer les lignes ci-dessus par:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

Je viens de le tester sur une installation Drupal vierge et cela fonctionne parfaitement; plus de deux points après les étiquettes de champ.

Si vous faites déjà la même chose, mais que vous n'obtenez pas les bons résultats, je peux penser à une ou deux choses qui pourraient mal tourner:

  • Vous avez placé votre version personnalisée de field.tpl.php dans un dossier de module, plutôt que dans le dossier de thème actif de votre site (il doit être dans le dossier de thème).
  • Un autre module / élément du système remplace également field.tpl.php, d'une manière plus robuste que vous ne l'êtes actuellement. Voir si c'est le cas impliquera la désactivation toujours fastidieuse de chaque module activé pour déterminer d'où vient le problème.

Vous ne pourrez pas effectuer la modification avec une fonction de prétraitement de modèle, car les deux-points sont codés en dur dans le fichier de modèle.

Clive
la source
Ah, il y avait en effet un autre module empêchant le fichier modèle de fonctionner correctement. Merci d'avoir indiqué quelques instructions de débogage utiles.
blue928
9

Je viens de créer un module qui fait exactement cela, supprime les deux points (sur une base par champ) des étiquettes de champ en sortie: Colectomie

tanc
la source
Peut confirmer. Ce module fonctionne parfaitement et constitue une solution simple et élégante au problème.
Mark
2

S'il s'agit d'une vue avec des champs, cliquez simplement sur le champ et décochez "Placer deux points après l'étiquette" sous "Créer une étiquette".

Tyler Durden
la source
2

La suite d'affichage offre également les mêmes fonctionnalités:

Si vous activez les extras de la suite d'affichage, il existe une option pour supprimer les deux-points avant les étiquettes:

Le chemin pour cela est: /admin/structure/ds/list/extras/

entrez la description de l'image ici

chrisjlee
la source
1
Cela fait beaucoup plus que de retirer le côlon. Si vous avez appliqué du CSS personnalisé, cela tuera cela.
Mark
0

Dans mon cas, cela a fonctionné en remplaçant theme_field()( field.module) en copiant la fonction entière dans mon template.phpfichier et en changeant la ligne qui lit

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

Videz les caches avant d'essayer.

Meetai.com
la source
0

Je n'ai trouvé nulle part de réponse à cette question pour Drupal 8. Avec Drupal 8, les deux points sont ajoutés avec un fichier CSS (field.css) dans le thème central Classy si vous l'utilisez comme thème de base. Tout ce que vous avez à faire est de le remplacer dans votre propre fichier CSS dans votre thème.

Donc, à partir du fichier field.css d'origine:

.field--label-inline .field__label::after {
    content: ':';
}

Dans mon fichier CSS de thème pour supprimer les deux points:

.field--label-inline .field__label::after {
    content: '';
}
Stonewall Thomas
la source