Comment changer l'étiquette de la valeur par défaut (-Any-) d'un filtre exposé dans les vues Drupal?
-
10-10-2019 - |
Question
Je crée une vue qui a trois filtres exposés. Tout fonctionne bien, sauf le fait que je ne peux ni traduire ou modifier la chaîne par défaut (-Any-) pour les menus déroulants. Est-il possible de changer cette chaîne à quelque chose de plus significatif comme « S'il vous plaît Sélectionnez » et faire traduisible si la version allemande affiche « COFFEE READY »? J'ai deux captures d'écran qui peuvent être utiles:
et
Une autre amélioration serait la possibilité de changer le texte « tout » à quelque chose comme « S'il vous plaît sélectionner un (nom de champ ici) » mais je perds espoir pour que =)
UPDATE
IMPORTANT:. Sur d'autres tests, j'ai trouvé que si vous choisissez d'afficher « -Any- » de « admin / build / vues / outils », puis qui est traduisible
La solution
Trois options:
- Vous pouvez changer avec la localisation, si vous avez déjà qui a permis. Présentation de localisation uniquement pour cette chaîne est beaucoup trop au-dessus.
- Vous pouvez le changer avec un form_alter, si vous modifiez déjà la forme de toute façon. L'introduction d'un module avec un alter hook_form pour une seule chaîne est beaucoup trop (et la performance maintainance) au-dessus.
- Vous coud changer avec une substitution de chaîne simple dans votre settings.php
Dans Drupal 7 (diffère drupal6 dans les détails uniquement)
/**
* String overrides:
*
* To override specific strings on your site with or without enabling locale
* module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
$conf['locale_custom_strings_en'][''] = array(
'<Any>' => 'Whatever!',
);
Notez cependant que cela va changer tous occurrance de la chaîne complète <Any>
(sensible à la casse) à Whatever
, pas seulement ceux sous cette forme unique.
Autres conseils
Pour tous ceux qui veulent changer juste la valeur de « - Tout - » à quelque chose en particulier utiliser alors un module personnalisé pour remplacer qui ressemble à ceci:
function yourmodulename_form_alter(&$form, $form_state, $form_id) {
if($form_state['view']->name == 'your_view_name_here') {
$form['your_dropdown_name']['#options']['All'] = t('- Type -'); // overrides <All> on the dropdown
}
}
La raison pour laquelle vous pouvez faire est de savoir si vous avez 3 (par exemple) pour 3 dropdowns champs séparés. Ensuite, sur ces derniers ne serait pas très utile pour un utilisateur (en particulier si vous n'utilisez pas les étiquettes).
Dans le code ci-dessus n'oubliez pas de changement « yourmodulename » au nom de votre module.
your_view_name_here doit être le nom de votre point de vue (remplacer les tirets par des underscores - par exemple des « biens de recherche-bar » deviendrait « property_search_bar »)
Et le changement « your_dropdown_name » au nom du champ - je l'ai trouvé cela en utilisant dsm($form)
avec le devel module installé et activé. Ceci est généralement le nom de domaine de votre menu déroulant de sorte qu'il pourrait être quelque chose comme « field_my_custom_value ».
Espérons que cela aide quelqu'un qui en a besoin!
Vues étiquette du filtre exposée est intraduisible dans D6. Aller à Administrez> CHANTIER> Vues et sélectionnez Outils d'onglet. Remplacer « étiquette pour la valeur « Any » sur sélection unique en option les filtres exposés: » par traduisible « - Tout - ». Important: visiter les vues avec les filtres exposés dans au moins une langue qui n'est pas votre langue par défaut. Ensuite, vous pouvez traduire "- Tout -". par Aminister> CHANTIER> Traduire l'interface (sensible à la casse)
Ou vous pouvez simplement utiliser une ligne de code jQuery comme ceci:
$(document).ready(function(){
$("#views-exposed-form-url-name-display-name #edit-tid-all a").text("All");
});
Le meilleur module de filtre exposé vous permet de changer l'étiquette « -Any- » dans un vues filtre exposé.
Je préfère aller avec la solution simple: chaîne Dérogations. Avec cela, vous ajoutez simplement une chaîne que vous voulez changer sur votre site, et le remplacer par tout ce que vous voulez (cordes bien sûr).
Peut-être le module https://www.drupal.org/project/views_advanced_labels aide? Je l'ai trouvé, mais ne l'ai pas encore essayé.