Customize exposed filter on Drupal View

Tested on:

  • Drupal 5.x
  • Views 1.6

When you have to filter a view by a content type, you have to use Exposed filters. Since default list is somewhat ugly (a select with some elements and CTRL to be pressed) we transform it in simple checkboxes.

Copy and paste this code into your template.php:

# I use imagecache because on my site is active
# and doesn't use hook_form_alter
/** Display checkboxes instead select for exposed views filters */
function imagecache_form_alter($form_id, &$form) {
  if($form_id == 'views_filters' && arg(0) == 'change_to_your_view_path_before_slash') {
    if(!empty($form)) {
      foreach ($form as $id => $field) {
        if ($form[$id]['#type'] == 'select' && $form[$id]['#multiple'] == 'multiple') {
          # from select to checkboxes
          $form[$id]['#type'] = 'checkboxes';
	  foreach($form[$id]['#options'] as $key=>&$content) {
            # hide from list all content types that aren't mycontenttype or mycontenttype2
            if($key!='mycontenttype' && $key!='mycontenttype2'){

To hide operators dropdown, you have to check “lock operators” on views page.

See also:

2 responses to “Customize exposed filter on Drupal View”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: