function user_display_student_users
Search API
7.x user.student.inc | user_display_student_users() |
6.x user.student.inc | user_display_student_users() |
4.x user.module | user_display_student_users() |
5.x user.module | user_display_student_users() |
Similar to user_display_users, except only for student users.
File
- modules/
user/ user.student.inc, line 14 - Keep track of functions dealing specifically with student user management
Code
function user_display_student_users() {
global $db, $screen;
$de_catalog_year = @$GLOBALS ["de_catalog_year"];
if (!$de_catalog_year) {
$de_catalog_year = @intval($_REQUEST ['de_catalog_year']);
}
if ($db == NULL) {
$db = get_global_database_handler();
}
$cc = 1;
// Do this using $render array, so it can be altered
// by hook_content_alter
$render = array();
$render ['#id'] = 'user_display_users';
fp_add_css(fp_get_module_path("admin") . "/css/admin.css");
fp_add_css(fp_get_module_path("user") . "/css/user.css");
if (@$_REQUEST ['clear_filters'] == 'true') {
// Meaning, a letter was specified, so let's reset the filter values.
unset($_SESSION ['users_filter_name']);
foreach ($_SESSION as $key => $val) {
if ($key == 'users_filter_active') {
continue; // we preserve the "active" filter setting
}
if (strstr($key, "users_filter_")) {
unset($_SESSION [$key]);
}
}
}
$html = "";
$html .= "<div class='add-new-student-user'>" . l("<i class='fa fa-plus'></i> " . t("Create a new student user"), "admin/users/edit-student-user", "student_cwid=new&de_catalog_year=$de_catalog_year") . "</div>";
$letter_ranges = array(
"A" => array("A", "AZZZZ"),
"B" => array("B", "BZZZZ"),
"C" => array("C", "CZZZ"),
"D" => array("D", "DZZZZ"),
"E" => array("E", "EZZZZ"),
"F" => array("F", "FZZZZ"),
"G" => array("G", "GZZZZ"),
"H" => array("H", "HZZZZ"),
"I" => array("I", "IZZZ"),
"J" => array("J", "JZZZ"),
"K" => array("K", "KZZZ"),
"L" => array("L", "LZZZ"),
"M" => array("M", "MZZZ"),
"N" => array("N", "NZZZ"),
"O" => array("O", "OZZZ"),
"P" => array("P", "PZZZ"),
"Q-R" => array("Q", "RZZZZ"),
"S" => array("S", "SZZZ"),
"T" => array("T", "TZZZZ"),
"U" => array("U", "UZZZ"),
"V-Z" => array("V", "ZZZZ"),
);
$ur = trim(@$_GET ["ur"]);
$lr = trim(@$_GET ["lr"]);
if ($ur == "" && !isset($_SESSION ['users_filter_submit'])) {
//if ($ur == "") {
$ur = "A";
$lr = "AZZZZZ"; // first time through.
}
// If we are going by filters, show that as option and select it.
if (isset($_SESSION ['users_filter_submit'])) {
$letter_ranges [t(" - Filter -")] = array("filter", "filter");
}
$html .= "<div class='user-select-letter-bar' style='padding-top: 20px;'>
";
foreach ($letter_ranges as $disp => $vals) {
$selected_class = "";
if ($ur == $vals [0]) {
$selected_class = "selected";
}
if ($vals [0] == 'filter') {
$selected_class = "selected";
$html .= "<a href='javascript:void(0);' class='admin-courses-letter-link filter-indicator $selected_class'>$disp</a> ";
continue;
}
$html .= l($disp, "admin/users/students", "de_catalog_year=$de_catalog_year&clear_filters=true&ur=" . $vals [0] . "&lr=" . $vals [1], array("class" => "admin-courses-letter-link $selected_class")) . " ";
}
$html .= "</div>";
$render ['upper_links'] = array(
'value' => $html,
);
if ($ur == "")
{ // meaning, no range was set. Use A - C
$ur = @$_SESSION ["ur"];
$lr = @$_SESSION ["lr"];
if ($ur == "")
{ // if still blank, assign it..
$ur = "A";
$lr = "AZZZZ";
}
}
$_SESSION ["ur"] = $ur;
$_SESSION ["lr"] = $lr;
$mark = "";
$mark .= "<div class='degrees-filter'>";
$mark .= fp_render_form("user_student_list_filter_form");
$mark .= "</div>";
$render ['users_filter'] = array(
'value' => $mark,
);
$extra_where_conditions = "";
$params = array();
$params [":ur"] = $ur;
$params [":lr"] = $lr;
if (isset($_SESSION ['users_filter_submit'])) {
// We clicked to filter, so the letter range should be ignored.
$params [":ur"] = "A";
$params [":lr"] = "ZZZZZZZZZZZZ";
}
$filter_name = @trim($_SESSION ['users_filter_name']);
$filter_school = @intval($_SESSION ['users_filter_school']);
$filter_major = @trim($_SESSION ['users_filter_major']);
$filter_active = @trim($_SESSION ['users_filter_active']);
if ($filter_name) {
$extra_where_conditions .= " AND (l_name LIKE :search1 OR f_name LIKE :search2 OR u.cwid LIKE :search3) ";
$params [":search1"] = "%$filter_name%";
$params [":search2"] = "%$filter_name%";
$params [":search3"] = "%$filter_name%";
// If we are searching by name, then we do not care about what letters we selected.
$params [":ur"] = "A";
$params [":lr"] = "ZZZZZZZZZZZZZZ";
}
$extra_where_conditions .= " AND u.school_id = :school_id ";
$params [":school_id"] = $filter_school;
if ($filter_major != '') {
$extra_where_conditions .= " AND major_code = :major_code ";
$params [":major_code"] = $filter_major;
}
if ($filter_active) {
$vals = array();
if ($filter_active == 'active') {
$vals [] = 1;
}
if ($filter_active == 'inactive') {
$vals [] = 0;
}
if ($filter_active == 'all') {
$vals = array(1, 0);
}
$extra_where_conditions .= " AND is_active IN (" . join(",", $vals) . ") ";
}
watchdog("user", "Viewed admin student user list. Range: $ur - $lr. Name: $filter_name. Major: $filter_major. Active: $filter_active. School: $filter_school", array(), WATCHDOG_DEBUG);
$html = "";
$html .= "
<table border='0' width='100%' cellpadding='3' cellspacing='0' class='user-list'>
<tr>
<th width='5%'>Actions</th>
<th>CWID</th>
<th>Name</th>
<th></th>
<th>Major code(s)</th>
<th>Active?</th>
<th>Last Login</th>
</tr>
";
$render ['users_table_top'] = array(
'value' => $html,
);
$limit = 30;
$result = pager_query("SELECT * FROM (users u, students s)
LEFT JOIN student_degrees d ON (s.cwid = d.student_id)
WHERE
u.is_student = 1
AND u.cwid = s.cwid
AND l_name BETWEEN :ur AND :lr
$extra_where_conditions
GROUP BY u.cwid
ORDER BY l_name, f_name
", $params, $limit, 0, NULL, "SELECT COUNT(DISTINCT(u.cwid))");
while ($cur = db_fetch_array($result)) {
$user_id = $cur ["user_id"];
$l_name = trim(ucwords(strtolower($cur ["l_name"])));
$f_name = trim(ucwords(strtolower($cur ["f_name"])));
$student_cwid = trim($cur ["cwid"]);
//$disp_major_code = trim($cur["major_code"]);
$disp_major_code = join(", ", $db->get_student_majors_from_db($student_cwid, FALSE, FALSE));
$is_active = ($cur ["is_active"] == "1") ? "Y" : "N";
$last_login = intval($cur ['last_login']);
if ($last_login == 0) {
$last_login = t("Never");
}
else {
$last_login = format_date(convert_time($last_login), 'short');
}
$ast = "";
$reason = "";
$fgcol = "black";
$render ['user_row_' . $student_cwid] = array(
'value' => "<tr class='is-active-$is_active'>
<td valign='top'>" . l("<i class='fa fa-pencil' title='Edit'></i>", "admin/users/edit-student-user", "student_cwid=$student_cwid&de_catalog_year=$de_catalog_year") . "</td>
<td valign='top' width='15%'>$student_cwid</td>
<td valign='top' width='15%'>$f_name</td>
<td valign='top' width='15%'>$l_name</td>
<td valign='top'>$disp_major_code</td>
<td valign='top'>$is_active</td>
<td valign='top'>$last_login</td>
</tr>",
'data' => array(
'is_student' => 1,
'cwid' => $student_cwid,
'db_row' => $cur,
),
);
} // while
$render ['users_table_bottom'] = array(
'value' => "</table>",
);
$render ['users_pager'] = array(
'value' => theme_pager(),
);
$rtn = fp_render_content($render);
return $rtn;
}