You are here

function views_handler_arg_quiz_taker_uid in Quiz 5.2

An argument handler for quiz_taker_uid

1 string reference to 'views_handler_arg_quiz_taker_uid'
quiz_views_arguments in ./quiz_views.module
Implementation of hook_views_arguments

File

./quiz_views.module, line 443
This include file implements views 5.x-1.x functionality on behalf of quiz.module

Code

function views_handler_arg_quiz_taker_uid($op, &$query, $argtype, $arg = '') {
  switch ($op) {
    case 'summary':
      $query
        ->add_table('quiz_node_results', true);
      $query
        ->add_field('uid', 'quiz_node_results');
      $fieldinfo['field'] = "quiz_node_results.uid";
      return $fieldinfo;
      break;
    case 'sort':
      $query
        ->add_orderby('users', 'name', $argtype);
      break;
    case 'filter':
      $option = $argtype['options'];
      $uid = intval($arg);
      $query
        ->ensure_table('quiz_node_results');
      if ($option) {
        $query
          ->ensure_table('quiz_node_results');
        $query
          ->add_where("quiz_node_results.uid = {$uid}");
      }
      else {
        $joininfo = array(
          'type' => 'LEFT',
          'left' => array(
            'table' => 'node',
            'field' => 'nid',
          ),
          'right' => array(
            'field' => 'nid',
          ),
          'extra' => array(
            'uid' => $uid,
          ),
        );
        $num = $query
          ->add_table('quiz_node_results', true, 1, $joininfo);
        $tablename = $query
          ->get_table_name('quiz_node_results', $num);
        $query
          ->add_where("{$tablename}.uid IS NULL");
      }
      break;
    case 'link':
      $name = $query->name ? $query->name : variable_get('anonymous', t('Anonymous'));
      return l($name, "{$arg}/" . intval($query->uid));
    case 'title':
      if (!$query) {
        return variable_get('anonymous', t('Anonymous'));
      }
      $user = db_fetch_object(db_query("SELECT name FROM {users} WHERE uid = '%d'", $query));
      return $user->name;
  }
}