How to change the label of the default value (-Any-) of an exposed filter in Drupal Views?

Ege Özcan picture Ege Özcan · Jan 12, 2011 · Viewed 22.2k times · Source

I created a view which has three exposed filters. Everything works fine except the fact that I can neither translate or change the default string (-Any-) for the dropdowns. Is there a way to change this string to something more meaningful like "Please Select" and make it translatable so the German version displays "Bitte wählen"? I have two screen captures that may be helpful:

the exposed filters

and

dropdown box

A further improvement would be the ability to change the text "any" to something like "please select a (field name here)" but I am losing hope for that =)

UPDATE

IMPORTANT: On further testing, I found that if you choose to display "-Any-" from "admin/build/views/tools", then THAT IS translatable.

Answer

Garry picture Garry · May 12, 2011

For anyone who wants to just change the value of "- Any -" to something in particular then use a custom module to override that looks like this:

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

  }
}

The reason you might want to do this is if you have 3 (for example) dropdowns for 3 separate fields. Then having on them wouldn't be very useful for a user (especially if you are not using labels).

In the code above just remember to change "yourmodulename" to the name of your module.

your_view_name_here should be the name of your view (replace dashes with underscores - for example "property-search-bar" would become "property_search_bar")

And change "your_dropdown_name" to the field name - I found this by using dsm($form) with the devel module installed and enabled. This is usually the field name of your drop down so it might be something like "field_my_custom_value".

Hope this helps anyone who needs it!