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'){ unset($form[$id]['#options'][$key]); } } } } } } }
To hide operators dropdown, you have to check “lock operators” on views page.
See also:
2 responses to “Customize exposed filter on Drupal View”
Any updates on this regarding Drupal6?
Thanks.
I’ve Never tried yet, but this module seems to do the trick:
http://drupal.org/project/views_filter_pack
Good coding and thanks for visiting!