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 supprimé les deux points là-bas, mais peu importe ce qui Drupal refuse de l'accepter et tire les deux points d'ailleurs.
Comment puis-je faire cela avec une fonction template.php?
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 ?>:
</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 ?>
</div>
<?php endif; ?>
Je viens de tester cela sur une installation vierge Drupal 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 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.
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: Colectomy
S'il s'agit d'une vue avec champs, cliquez simplement sur le champ et décochez "Placer deux points après l'étiquette" sous "Créer une étiquette".
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/
Dans mon cas, cela a fonctionné en remplaçant theme_field()
(field.module
) en copiant la fonction entière sur mon template.php
fichier et modification de la ligne qui lit
$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ' </div>';
Videz les caches avant d'essayer.
Je n'ai pas trouvé de réponse à cette question pour Drupal 8 n'importe où. Avec Drupal 8, les deux points sont ajoutés avec un fichier CSS (field.css) dans le thème de base 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: '';
}