예제 #1
0
 /**
  * Removes instructors and waitlisted users, and adds permission limits, if applicable.
  *
  * @param array $filters An array of requested filter data. Formatted like [filtername]=>[data].
  * @return array An array consisting of the SQL WHERE clause, and the parameters for the SQL.
  */
 protected function get_filter_sql(array $filters)
 {
     list($filtersql, $filterparams) = parent::get_filter_sql($filters);
     $additionalfilters = array('(SELECT id FROM {local_elisprogram_cls_nstrct} WHERE classid = ' . $this->classid . ' AND userid=element.id) IS NULL', '(SELECT id FROM {local_elisprogram_waitlist} WHERE classid = ' . $this->classid . ' AND userid=element.id) IS NULL');
     // Permissions.
     list($permadditionalfilters, $permadditionalparams) = $this->get_filter_sql_permissions();
     $additionalfilters = array_merge($additionalfilters, $permadditionalfilters);
     $filterparams = array_merge($filterparams, $permadditionalparams);
     // Add our additional filters.
     if (!empty($additionalfilters)) {
         $filtersql = !empty($filtersql) ? $filtersql . ' AND ' . implode(' AND ', $additionalfilters) : 'WHERE ' . implode(' AND ', $additionalfilters);
     }
     return array($filtersql, $filterparams);
 }
예제 #2
0
 /**
  * Limits results according to permissions.
  * @param array $filters An array of requested filter data. Formatted like [filtername]=>[data].
  * @return array An array consisting of the SQL WHERE clause, and the parameters for the SQL.
  */
 protected function get_filter_sql(array $filters)
 {
     global $USER;
     list($filtersql, $filterparams) = parent::get_filter_sql($filters);
     $additionalfilters = array();
     // Permissions.
     list($permadditionalfilters, $permadditionalparams) = $this->get_filter_sql_permissions();
     $additionalfilters = array_merge($additionalfilters, $permadditionalfilters);
     $filterparams = array_merge($filterparams, $permadditionalparams);
     // Add our additional filters.
     $filtersql = !empty($filtersql) ? $filtersql . ' AND ' . implode(' AND ', $additionalfilters) : 'WHERE ' . implode(' AND ', $additionalfilters);
     return array($filtersql, $filterparams);
 }