helper = new views_many_to_one_helper($this); } function option_definition() { $options = parent::option_definition(); $options['operator']['default'] = 'or'; $options['value']['default'] = array(); return $options; } /** * Provide inclusive/exclusive matching */ function operator_options() { return array( 'or' => t('Is one of'), 'and' => t('Is all of'), 'not' => t('Is none of'), ); } var $value_form_type = 'select'; function value_form(&$form, &$form_state) { parent::value_form($form, $form_state); if (empty($form_state['exposed'])) { $this->helper->options_form($form, $form_state); } } /** * Override ensure_my_table so we can control how this joins in. * The operator actually has influence over joining. */ function ensure_my_table() { $this->helper->ensure_my_table(); } function query() { if (empty($this->value)) { return; } $this->helper->add_filter(); } }