/** * Returns sql where statement based on active user filters * @param string $extra sql * @param array named params (recommended prefix ex) * @return array sql string and $params */ function get_sql_filter($extra = '', array $params = null) { list($filter, $params) = parent::get_sql_filter($extra, $params); // remove empty " AND " conditions at start, middle and end of filter $search = array('/^(?: AND )+/', '/(<= AND )(?: AND )+/', '/(?: AND )+$/'); $filter = preg_replace($search, '', $filter); return array($filter, $params); }
$fullnamelanguage = get_string('fullnamedisplay', '', $override); if ($CFG->fullnamedisplay == 'firstname lastname' or $CFG->fullnamedisplay == 'firstname' or $CFG->fullnamedisplay == 'language' and $fullnamelanguage == 'firstname lastname') { $fullnamedisplay = "{$firstname} / {$lastname}"; if ($sort == "name") { // If sort has already been set to something else then ignore. $sort = "firstname"; } } else { // ($CFG->fullnamedisplay == 'language' and $fullnamelanguage == 'lastname firstname'). $fullnamedisplay = "{$lastname} / {$firstname}"; if ($sort == "name") { // This should give the desired sorting based on fullnamedisplay. $sort = "lastname"; } } list($extrasql, $params) = $ufiltering->get_sql_filter(); $users = get_users_listing($sort, $dir, $page * $perpage, $perpage, '', '', '', $extrasql, $params, $context); $usercount = get_users(false); $usersearchcount = get_users(false, '', false, null, "", '', '', '', '', '*', $extrasql, $params); if ($extrasql !== '') { echo $OUTPUT->heading("{$usersearchcount} / {$usercount} " . get_string('users')); $usercount = $usersearchcount; } else { echo $OUTPUT->heading("{$usercount} " . get_string('users')); } $strall = get_string('all'); $baseurl = new moodle_url('/admin/user.php', array('sort' => $sort, 'dir' => $dir, 'perpage' => $perpage)); echo $OUTPUT->paging_bar($usercount, $page, $perpage, $baseurl); flush(); if (!$users) { $match = array();
/** * Returns sql where statement based on active user filters. Overridden to provide proper * 'show inactive' default condition. * * @param string $extra sql * @return string */ function get_sql_filter($extra = '') { global $SESSION; $newextra = ''; // Include default SQL if inactive filter has not been included in list if (empty($SESSION->user_filtering) || !isset($SESSION->user_filtering['inactive']) || !$SESSION->user_filtering['inactive']) { $newextra = ($extra ? $extra . ' AND ' : '') . 'inactive=0'; } return parent::get_sql_filter($newextra); }
print_heading(get_string('similarusers', 'block_tao_team_groups')); foreach ($interestedusers as $u) { // not efficient but want to ensure getting all user fields. consider changing. $useri = get_record('user', 'id', $u->id); echo "<a href='{$CFG->wwwroot}/user/view.php?id={$groupid}&course={$courseid}'>" . fullname($useri) . "</a>\n <a href='{$CFG->wwwroot}/blocks/tao_team_groups/managegroup.php?id={$courseid}&groupid={$groupid}&action=inviteuser&userid={$u->id}'>" . get_string('invitethisuser', 'block_tao_team_groups') . "</a><br/>"; } } print_heading(get_string('searchforusers', 'block_tao_team_groups')); if ($CFG->groupmax > $i + $invitecount) { //check if max number of group members has not been exceeded and print invite link. echo "<p>" . get_string('searchforusersdesc', 'block_tao_team_groups') . "</p>"; //print search form $site = get_site(); // create the user filter form $ufiltering = new user_filtering(array('realname' => 0, 'lastname' => 1, 'firstname' => 1, 'email' => 0, 'city' => 1, 'country' => 1, 'profile' => 1, 'mnethostid' => 1), null, array('id' => $courseid, 'groupid' => $groupid, 'perpage' => $perpage, 'page' => $page, 'sort' => $sort, 'dir' => $dir)); $extrasql = $ufiltering->get_sql_filter(); if (!empty($extrasql)) { //don't bother to do any of the following unless a filter is already set! //exclude users already in a group inside this course. $extrasql .= "AND id NOT IN (SELECT userid \n FROM {$CFG->prefix}groups_members gm, {$CFG->prefix}groups g \n WHERE g.courseid={$courseid} AND g.id=gm.groupid) "; //exclude users already invited. $extrasql .= "AND id NOT IN (SELECT userid\n FROM {$CFG->prefix}group_invites\n WHERE courseid={$courseid} AND groupid={$groupid} ) "; $columns = array("firstname", "lastname", "city", "country", "lastaccess"); foreach ($columns as $column) { $string[$column] = get_string("{$column}"); if ($sort != $column) { $columnicon = ""; if ($column == "lastaccess") { $columndir = "DESC"; } else { $columndir = "ASC";