You are here

function quiz_views_handler_filter_user_nullable::query in Quiz 7

Same name and namespace in other branches
  1. 8.4 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  2. 6.6 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  3. 6.3 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  4. 6.4 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  5. 6.5 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  6. 7.6 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()
  7. 7.4 includes/views/handlers/quiz_views_handler_filter_user_nullable.inc \quiz_views_handler_filter_user_nullable::query()

Add this filter to the query.

Due to the nature of fapi, the value and the operator have an unintended level of indirection. You will find them in $this->operator and $this->value respectively.

Overrides views_handler_filter::query

File

includes/views/handlers/quiz_views_handler_filter_user_nullable.inc, line 37

Class

quiz_views_handler_filter_user_nullable

Code

function query() {
  $group = $this->query
    ->set_where_group('AND', 'qnr_user');
  $this
    ->ensure_my_table();
  $operator = empty($this->options['use_current']) ? '!=' : '=';

  // By adding the ISNULL, joins can properly inform us about quiz state
  $this->query
    ->add_where($group, "{$this->table_alias}.{$this->real_field} {$operator} ***CURRENT_USER*** OR ISNULL({$this->table_alias}.{$this->real_field})", $this->argument);
}