original_string: public function get_numusers($groups = true, $users = false) {
          global $CFG, $DB;
          $userwheresql = "";
          $groupsql      = "";
          $groupwheresql = "";
  
          // Limit to users with a gradeable role.
          list($gradebookrolessql, $gradebookrolesparams) = $DB->get_in_or_equal(explode(',', $this->gradebookroles), SQL_PARAMS_NAMED, 'grbr0');
  
          // Limit to users with an active enrollment.
          list($enrolledsql, $enrolledparams) = get_enrolled_sql($this->context);
  
          // We want to query both the current context and parent contexts.
          list($relatedctxsql, $relatedctxparams) = $DB->get_in_or_equal($this->context->get_parent_context_ids(true), SQL_PARAMS_NAMED, 'relatedctx');
  
          $params = array_merge($gradebookrolesparams, $enrolledparams, $relatedctxparams);
  
          if ($users) {
              $userwheresql = $this->userwheresql;
              $params       = array_merge($params, $this->userwheresql_params);
          }
  
          if ($groups) {
              $groupsql      = $this->groupsql;
              $groupwheresql = $this->groupwheresql;
              $params        = array_merge($params, $this->groupwheresql_params);
          }
  
          $sql = "SELECT DISTINCT u.id
                         FROM {user} u
                         JOIN ($enrolledsql) je
                              ON je.id = u.id
                         JOIN {role_assignments} ra
                              ON u.id = ra.userid
                         $groupsql
                        WHERE ra.roleid $gradebookrolessql
                              AND u.deleted = 0
                              $userwheresql
                              $groupwheresql
                              AND ra.contextid $relatedctxsql";
          $selectedusers = $DB->get_records_sql($sql, $params);
  
          $count = 0;
          // Check if user's enrolment is active and should be displayed.
          if (!empty($selectedusers)) {
              $coursecontext = $this->context->get_course_context(true);
  
              $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
              $showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
              $showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $coursecontext);
  
              if ($showonlyactiveenrol) {
                  $useractiveenrolments = get_enrolled_users($coursecontext, '', 0, 'u.id',  null, 0, 0, true);
              }
  
              foreach ($selectedusers as $id => $value) {
                  if (!$showonlyactiveenrol || ($showonlyactiveenrol && array_key_exists($id, $useractiveenrolments))) {
                      $count++;
                  }
              }
          }
          return $count;
      }
code: public function get_numusers($groups = true, $users = false) {
          global $CFG, $DB;
          $userwheresql = "";
          $groupsql      = "";
          $groupwheresql = "";
  
          // Limit to users with a gradeable role.
          list($gradebookrolessql, $gradebookrolesparams) = $DB->get_in_or_equal(explode(',', $this->gradebookroles), SQL_PARAMS_NAMED, 'grbr0');
  
          // Limit to users with an active enrollment.
          list($enrolledsql, $enrolledparams) = get_enrolled_sql($this->context);
  
          // We want to query both the current context and parent contexts.
          list($relatedctxsql, $relatedctxparams) = $DB->get_in_or_equal($this->context->get_parent_context_ids(true), SQL_PARAMS_NAMED, 'relatedctx');
  
          $params = array_merge($gradebookrolesparams, $enrolledparams, $relatedctxparams);
  
          if ($users) {
              $userwheresql = $this->userwheresql;
              $params       = array_merge($params, $this->userwheresql_params);
          }
  
          if ($groups) {
              $groupsql      = $this->groupsql;
              $groupwheresql = $this->groupwheresql;
              $params        = array_merge($params, $this->groupwheresql_params);
          }
  
          $sql = "SELECT DISTINCT u.id
                         FROM {user} u
                         JOIN ($enrolledsql) je
                              ON je.id = u.id
                         JOIN {role_assignments} ra
                              ON u.id = ra.userid
                         $groupsql
                        WHERE ra.roleid $gradebookrolessql
                              AND u.deleted = 0
                              $userwheresql
                              $groupwheresql
                              AND ra.contextid $relatedctxsql";
          $selectedusers = $DB->get_records_sql($sql, $params);
  
          $count = 0;
          // Check if user's enrolment is active and should be displayed.
          if (!empty($selectedusers)) {
              $coursecontext = $this->context->get_course_context(true);
  
              $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
              $showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
              $showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $coursecontext);
  
              if ($showonlyactiveenrol) {
                  $useractiveenrolments = get_enrolled_users($coursecontext, '', 0, 'u.id',  null, 0, 0, true);
              }
  
              foreach ($selectedusers as $id => $value) {
                  if (!$showonlyactiveenrol || ($showonlyactiveenrol && array_key_exists($id, $useractiveenrolments))) {
                      $count++;
                  }
              }
          }
          return $count;
      }
code_tokens: public function get_numusers ( $ groups = true , $ users = false ) { global $ CFG , $ DB ; $ userwheresql = "" ; $ groupsql = "" ; $ groupwheresql = "" ; // Limit to users with a gradeable role. list ( $ gradebookrolessql , $ gradebookrolesparams ) = $ DB -> get_in_or_equal ( explode ( ',' , $ this -> gradebookroles ) , SQL_PARAMS_NAMED , 'grbr0' ) ; // Limit to users with an active enrollment. list ( $ enrolledsql , $ enrolledparams ) = get_enrolled_sql ( $ this -> context ) ; // We want to query both the current context and parent contexts. list ( $ relatedctxsql , $ relatedctxparams ) = $ DB -> get_in_or_equal ( $ this -> context -> get_parent_context_ids ( true ) , SQL_PARAMS_NAMED , 'relatedctx' ) ; $ params = array_merge ( $ gradebookrolesparams , $ enrolledparams , $ relatedctxparams ) ; if ( $ users ) { $ userwheresql = $ this -> userwheresql ; $ params = array_merge ( $ params , $ this -> userwheresql_params ) ; } if ( $ groups ) { $ groupsql = $ this -> groupsql ; $ groupwheresql = $ this -> groupwheresql ; $ params = array_merge ( $ params , $ this -> groupwheresql_params ) ; } $ sql = "SELECT DISTINCT u.id
                         FROM {user} u
                         JOIN ($enrolledsql) je
                              ON je.id = u.id
                         JOIN {role_assignments} ra
                              ON u.id = ra.userid
                         $groupsql
                        WHERE ra.roleid $gradebookrolessql
                              AND u.deleted = 0
                              $userwheresql
                              $groupwheresql
                              AND ra.contextid $relatedctxsql" ; $ selectedusers = $ DB -> get_records_sql ( $ sql , $ params ) ; $ count = 0 ; // Check if user's enrolment is active and should be displayed. if ( ! empty ( $ selectedusers ) ) { $ coursecontext = $ this -> context -> get_course_context ( true ) ; $ defaultgradeshowactiveenrol = ! empty ( $ CFG -> grade_report_showonlyactiveenrol ) ; $ showonlyactiveenrol = get_user_preferences ( 'grade_report_showonlyactiveenrol' , $ defaultgradeshowactiveenrol ) ; $ showonlyactiveenrol = $ showonlyactiveenrol || ! has_capability ( 'moodle/course:viewsuspendedusers' , $ coursecontext ) ; if ( $ showonlyactiveenrol ) { $ useractiveenrolments = get_enrolled_users ( $ coursecontext , '' , 0 , 'u.id' , null , 0 , 0 , true ) ; } foreach ( $ selectedusers as $ id => $ value ) { if ( ! $ showonlyactiveenrol || ( $ showonlyactiveenrol && array_key_exists ( $ id , $ useractiveenrolments ) ) ) { $ count ++ ; } } } return $ count ; }
docstring: Fetches and returns a count of all the users that will be shown on this page.
  @param boolean $groups include groups limit
  @param boolean $users include users limit - default false, used for searching purposes
  @return int Count of users
docstring_tokens: Fetches and returns a count of all the users that will be shown on this page .