You are here

function profile_views_add_filter in Views (for Drupal 7) 5

Add profile filters to view table

1 call to profile_views_add_filter()
profile_views_tables in modules/views_profile.inc
This include file implements views functionality on behalf of profile.module

File

modules/views_profile.inc, line 153

Code

function profile_views_add_filter(&$table, $field) {
  $name = 'value';
  $label = t('Profile: @field-name', array(
    '@field-name' => $field->title,
  ));
  switch ($field->type) {
    case 'vocabulary':
      $help = t('Taxonomy based profile field help');
      $others = array(
        'list' => 'views_handler_filter_tid_by_voc',
        'value-type' => 'array',
        'option' => 'string',
        'operator' => 'views_handler_operator_andor',
        'handler' => 'views_handler_filter_profile_andor',
        'vocabulary' => $field->options['vocabulary'],
      );
      break;
    case 'selection':
      $help = t('Selection based profile field help');
      $others = array(
        'list' => 'views_handler_filter_profile_selection',
        'operator' => 'views_handler_operator_andor',
        'options' => $field->options['selection'],
        'handler' => 'views_handler_filter_profile_andor',
      );
      break;
    case 'date':
      $help = t('This filter allows nodes to be filtered by their creation date.') . ' ' . views_t_strings('filter date');
      $others = array(
        'operator' => 'views_handler_operator_gtlt',
        //'value' => views_handler_filter_date_value_form(),
        'value' => views_handler_filter_profile_date_value_form(),
        'handler' => 'views_handler_filter_profile_date',
        'value-type' => 'array',
        'fid' => $field->fid,
      );
      break;
    case 'checkbox':
      $help = t('Checkbox based profile field help');
      $others = array(
        'operator' => array(
          '=' => 'Equals',
        ),
        'list' => 'views_handler_operator_yesno',
      );
      break;
    default:
      $help = t('Other types based profile field help');
      $others = array(
        'list-type' => 'list',
        'operator' => 'views_handler_operator_like',
        'handler' => 'views_handler_filter_like',
      );
  }
  views_table_add_filter($table, $name, $label, $help, $others);
}