$t->printWelcome(); $t->startMain(); $user = new User(Auth::getCurrentID()); $is_group_admin = $user->is_group_admin(); $t->startNavLinkTable(); $t->showNavLinksTable(Auth::isAdmin()); $t->endNavLinkTable(); $t->splitTable(); $order = array('number'); $announcements = $db->get_announcements(mktime()); if ($announcements) { showAnnouncementTable($announcements, $db->get_err()); printCpanelBr(); } // Valid order values in reservation retreival $order = array('start_date', 'name', 'starttime', 'endtime', 'created', 'modified'); $res = $db->get_user_reservations(Auth::getCurrentID(), CmnFns::get_value_order($order), CmnFns::get_vert_order()); showReservationTable($res, $db->get_err()); // Print out My Reservations printCpanelBr(); // AK: Invitations are not used in our case. //showInvitesTable($db->get_user_invitations(Auth::getCurrentID(), true), $db->get_err()); //printCpanelBr(); //showParticipatingTable($db->get_user_invitations(Auth::getCurrentID(), false), $db->get_err()); //printCpanelBr(); if ($conf['app']['use_perms']) { showTrainingTable($db->get_user_permissions(Auth::getCurrentID()), $db->get_err()); } endDataDisplayCol(); $t->endMain(); $t->printHTMLFooter();
/** * Search for users matching this first and last name and return the results in an array * @param object $pager pager object * @param array $orders order to print results in * @param string $fname first name to search for * @param string $lname last name to search for * @param string $groupid groupid to limit users to * @return array of user data */ function search_users(&$pager, $orders, $fname = null, $lname = null, $groupids = array()) { $inner_join = ''; $where = ''; $values = array(); $group_list = $this->make_in_list($groupids); if (!empty($groupids)) { $inner_join = ' INNER JOIN ' . $this->get_table(TBL_USER_GROUPS) . ' ug ON l.memberid = ug.memberid AND ug.groupid IN (' . $group_list . ')'; } if (!empty($fname) || !empty($lname)) { $where = " WHERE fname LIKE '{$fname}%' AND lname LIKE '{$lname}%'"; } $return = array(); $order = CmnFns::get_value_order($orders); $vert = CmnFns::get_vert_order(); if ($order == 'date' && !isset($_GET['vert'])) { // Default the date to DESC $vert = 'DESC'; } // Set up query to get neccessary records ordered by user request first, then logical order $query = 'SELECT l.*' . ' FROM ' . $this->get_table(TBL_LOGIN) . ' as l' . $inner_join . $where . ' ORDER BY ' . $order . ' ' . $vert . ', l.lname, l.fname'; $result = $this->db->limitQuery($query, $pager->getOffset(), $pager->getLimit(), $values); $this->check_for_error($result); if ($result->numRows() <= 0) { $this->err_msg = translate('No results'); return false; } while ($rs = $result->fetchRow()) { $return[] = $this->cleanRow($rs); } $result->free(); return $return; }
$search_array1 = $db->convertSearch2SQL('msgs.from_addr', CmnFns::getGlobalVar('f_criterion', GET), CmnFns::getGlobalVar('f_string', GET)); $search_array2 = $db->convertSearch2SQL('msgs.subject', CmnFns::getGlobalVar('s_criterion', GET), CmnFns::getGlobalVar('s_string', GET)); $search_array3 = $db->convertSearch2SQL('recip.email', CmnFns::getGlobalVar('t_criterion', GET), CmnFns::getGlobalVar('t_string', GET)); $search_array4 = $db->convertSearch2SQL('msgs.mail_id', CmnFns::getGlobalVar('m_criterion', GET), CmnFns::getGlobalVar('m_string', GET)); $search_array = array_merge($search_array1, $search_array2, $search_array3, $search_array4); $order = array('msgs.time_num', 'from_addr', 'msgs.subject', 'spam_level', 'recip.email', 'msgs.content', 'mail_id'); // Arbitrary type for Admin //$content_type = (CmnFns::get_ctype() ? CmnFns::get_ctype() : 'A'); //echo "Before query: " . date("l dS of F Y h:i:s A") . "<br><br>"; if (CmnFns::getGlobalVar('searchOnly', GET) != 1) { // Print a loading message until database returns... printMessage(translate('Retrieving Messages...')); $messages = $db->get_user_messages($content_type, $_SESSION['sessionMail'], CmnFns::get_value_order($order), CmnFns::get_vert_order(), $search_array, 1, 0, $requestedPage); } // Compute maximum number of pages $maxPage = ceil($db->numRows / $sizeLimit) - 1; // If $requestedPage > $maxPage, then redirect to $maxPage instead of $requestedPage if ($requestedPage > $maxPage) { $query_string = CmnFns::array_to_query_string($_GET, array('page')); $query_string = str_replace('&', '&', $query_string); CmnFns::redirect_js($_SERVER['PHP_SELF'] . '?' . $query_string . '&page=' . $maxPage); } if (CmnFns::getGlobalVar('searchOnly', GET) != 1) { showMessagesTable($content_type, $messages, $requestedPage, CmnFns::get_value_order($order), CmnFns::get_vert_order(), $db->numRows); // Hide the message after the table loads. hideMessage(translate('Retrieving Messages...')); } } endDataDisplayCol(); $t->endMain(); $t->printHTMLFooter();
/** * Generic database query function. * This will return specified fields from one table in a specified order * @param string $table name of table to return from * @param array $fields array of field values to return * @param string $order sql order string * @param int $limit limit of query * @param int $offset offset of limit * @return mixed all data found in query */ function get_table_data($table, $fields = array('*'), $orders = array(), $limit = NULL, $offset = NULL, $where_clause = NULL, $where_values = array()) { $return = array(); $order = CmnFns::get_value_order($orders); // Get main order value $vert = CmnFns::get_vert_order(); // Get vertical order $query = 'SELECT ' . join(', ', $fields) . ' FROM ' . $this->get_table($table) . ' ' . $where_clause . ' ' . (!empty($order) ? " ORDER BY {$order} {$vert}" : ''); // Append any other sorting constraints for ($i = 1; $i < count($orders); $i++) { $query .= ', ' . $orders[$i]; } if (!is_null($limit) && !is_null($offset)) { // Limit query $result = $this->db->limitQuery($query, $offset, $limit, $where_values); } else { // Standard query $result = $this->db->query($query, $where_values); } $this->check_for_error($result); if ($result->numRows() <= 0) { // Check if any records exist $this->err_msg = translate('There are no records in the table.', array($table)); return false; } while ($rs = $result->fetchRow()) { $return[] = $this->cleanRow($rs); } $result->free(); return $return; }