function Grid() { $db =& $this->db; $response = new ResponseManager(); $type = Kit::GetParam('filter_type', _POST, _WORD); $fromDt = Kit::GetParam('filter_fromdt', _POST, _STRING); setSession('sessions', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off')); setSession('sessions', 'filter_type', $type); setSession('sessions', 'filter_fromdt', $fromDt); $SQL = "SELECT session.userID, user.UserName, IsExpired, LastPage, session.LastAccessed, RemoteAddr, UserAgent "; $SQL .= "FROM `session` LEFT OUTER JOIN user ON user.userID = session.userID "; $SQL .= "WHERE 1 = 1 "; if ($fromDt != '') { // From Date is the Calendar Formatted DateTime in ISO format $SQL .= sprintf(" AND session.LastAccessed < '%s' ", DateManager::getMidnightSystemDate(DateManager::getTimestampFromString($fromDt))); } if ($type == "active") { $SQL .= " AND IsExpired = 0 "; } if ($type == "expired") { $SQL .= " AND IsExpired = 1 "; } if ($type == "guest") { $SQL .= " AND session.userID IS NULL "; } // Load results into an array $log = $db->GetArray($SQL); Debug::LogEntry('audit', $SQL); if (!is_array($log)) { trigger_error($db->error()); trigger_error(__('Error getting the log'), E_USER_ERROR); } $cols = array(array('name' => 'lastaccessed', 'title' => __('Last Accessed')), array('name' => 'isexpired', 'title' => __('Active'), 'icons' => true), array('name' => 'username', 'title' => __('User Name')), array('name' => 'lastpage', 'title' => __('Last Page')), array('name' => 'ip', 'title' => __('IP Address')), array('name' => 'browser', 'title' => __('Browser'))); Theme::Set('table_cols', $cols); $rows = array(); foreach ($log as $row) { $row['userid'] = Kit::ValidateParam($row['userID'], _INT); $row['username'] = Kit::ValidateParam($row['UserName'], _STRING); $row['isexpired'] = Kit::ValidateParam($row['IsExpired'], _INT) == 1 ? 0 : 1; $row['lastpage'] = Kit::ValidateParam($row['LastPage'], _STRING); $row['lastaccessed'] = DateManager::getLocalDate(strtotime(Kit::ValidateParam($row['LastAccessed'], _STRING))); $row['ip'] = Kit::ValidateParam($row['RemoteAddr'], _STRING); $row['browser'] = Kit::ValidateParam($row['UserAgent'], _STRING); // Edit $row['buttons'][] = array('id' => 'sessions_button_logout', 'url' => 'index.php?p=sessions&q=ConfirmLogout&userid=' . $row['userid'], 'text' => __('Logout')); $rows[] = $row; } Theme::Set('table_rows', $rows); $response->SetGridResponse(Theme::RenderReturn('table_render')); $response->Respond(); }
public function BandwidthGrid() { $fromDt = DateManager::getTimestampFromString(Kit::GetParam('fromdt', _POST, _STRING)); $toDt = DateManager::getTimestampFromString(Kit::GetParam('todt', _POST, _STRING)); // Get an array of display id this user has access to. $displays = $this->user->DisplayList(); $displayIds = array(); foreach ($displays as $display) { $displayIds[] = $display['displayid']; } if (count($displayIds) <= 0) { trigger_error(__('No displays with View permissions'), E_USER_ERROR); } // Get some data for a bandwidth chart try { $dbh = PDOConnect::init(); $displayId = Kit::GetParam('displayid', _POST, _INT); $params = array('month' => $fromDt, 'month2' => $toDt); $SQL = 'SELECT display.display, IFNULL(SUM(Size), 0) AS size '; if ($displayId != 0) { $SQL .= ', bandwidthtype.name AS type '; } $SQL .= ' FROM `bandwidth` INNER JOIN `display` ON display.displayid = bandwidth.displayid'; if ($displayId != 0) { $SQL .= ' INNER JOIN bandwidthtype ON bandwidthtype.bandwidthtypeid = bandwidth.type '; } $SQL .= ' WHERE month > :month AND month < :month2 AND display.displayId IN (' . implode(',', $displayIds) . ') '; if ($displayId != 0) { $SQL .= ' AND display.displayid = :displayid '; $params['displayid'] = $displayId; } $SQL .= 'GROUP BY display.display '; if ($displayId != 0) { $SQL .= ' , bandwidthtype.name '; } $SQL .= 'ORDER BY display.display'; //Debug::LogEntry('audit', $SQL . '. Params = ' . var_export($params, true), get_class(), __FUNCTION__); $sth = $dbh->prepare($SQL); $sth->execute($params); // Get the results $results = $sth->fetchAll(); $maxSize = 0; foreach ($results as $library) { $maxSize = $library['size'] > $maxSize ? $library['size'] : $maxSize; } // Decide what our units are going to be, based on the size $base = floor(log($maxSize) / log(1024)); $output = array(); foreach ($results as $row) { // label depends whether we are filtered by display if ($displayId != 0) { $label = $row['type']; } else { $label = $row['display']; } $output[] = array('label' => $label, 'value' => round((double) $row['size'] / pow(1024, $base), 2)); } // Set the data Theme::Set('bandwidthWidget', json_encode($output)); // Set up some suffixes $suffixes = array('bytes', 'k', 'M', 'G', 'T'); Theme::Set('bandwidthWidgetUnits', isset($suffixes[$base]) ? $suffixes[$base] : ''); $output = Theme::RenderReturn('stats_page_bandwidth'); $response = new ResponseManager(); $response->SetGridResponse($output); $response->Respond(); } catch (Exception $e) { Debug::LogEntry('error', $e->getMessage()); // Show the error in place of the bandwidth chart Theme::Set('widget-error', 'Unable to get widget details'); } }
/** * Edits an event * @return */ public function EditEvent() { // Check the token if (!Kit::CheckToken(Kit::GetParam('token_id', _POST, _STRING))) { trigger_error(__('Sorry the form has expired. Please refresh.'), E_USER_ERROR); } $db =& $this->db; $user =& $this->user; $response = new ResponseManager(); $eventId = Kit::GetParam('EventID', _POST, _INT, 0); $campaignId = Kit::GetParam('CampaignID', _POST, _INT, 0); $fromDT = Kit::GetParam('starttime', _POST, _STRING); $toDT = Kit::GetParam('endtime', _POST, _STRING); $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _POST, _ARRAY); $isPriority = Kit::GetParam('is_priority', _POST, _CHECKBOX); $repeatType = Kit::GetParam('rec_type', _POST, _STRING); $repeatInterval = Kit::GetParam('rec_detail', _POST, _INT); $repeatToDt = Kit::GetParam('rec_range', _POST, _STRING); $displayOrder = Kit::GetParam('DisplayOrder', _POST, _INT); $isNextButton = Kit::GetParam('next', _GET, _BOOL, false); // Convert our ISO strings $fromDT = DateManager::getTimestampFromString($fromDT); $toDT = DateManager::getTimestampFromString($toDT); if ($repeatToDt != '') { $repeatToDt = DateManager::getTimestampFromString($repeatToDt); } Debug::Audit('Times received are: FromDt=' . $fromDT . '. ToDt=' . $toDT . '. RepeatToDt=' . $repeatToDt); // Validate layout if ($campaignId == 0) { trigger_error(__("No layout selected"), E_USER_ERROR); } // check that at least one display has been selected if ($displayGroupIDs == '') { trigger_error(__("No displays selected"), E_USER_ERROR); } // validate the dates if ($toDT < $fromDT) { trigger_error(__('Can not have an end time earlier than your start time'), E_USER_ERROR); } // Check recurrence dT is in the future or empty if ($repeatToDt != '' && $repeatToDt < time() - 86400) { trigger_error(__("Your repeat until date is in the past. Cannot schedule events to repeat in to the past"), E_USER_ERROR); } // Ready to do the edit $scheduleObject = new Schedule($db); if (!$scheduleObject->Edit($eventId, $displayGroupIDs, $fromDT, $toDT, $campaignId, $repeatType, $repeatInterval, $repeatToDt, $isPriority, $this->user->userid, $displayOrder)) { trigger_error($scheduleObject->GetErrorMessage(), E_USER_ERROR); } $response->SetFormSubmitResponse(__("The Event has been Modified.")); $response->callBack = 'CallGenerateCalendar'; $response->Respond(); }
function Grid() { $db =& $this->db; $user =& $this->user; $response = new ResponseManager(); $type = Kit::GetParam('filter_type', _REQUEST, _INT, 0); $function = Kit::GetParam('filter_function', _REQUEST, _STRING); $page = Kit::GetParam('filter_page', _REQUEST, _STRING); $fromdt = Kit::GetParam('filter_fromdt', _REQUEST, _STRING); $displayid = Kit::GetParam('filter_display', _REQUEST, _INT); $seconds = Kit::GetParam('filter_seconds', _POST, _INT, 120); $filter_intervalTypeId = Kit::GetParam('filter_intervalTypeId', _POST, _INT, 1); setSession('log', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off')); setSession('log', 'filter_type', $type); setSession('log', 'filter_function', $function); setSession('log', 'filter_page', $page); setSession('log', 'filter_fromdt', $fromdt); setSession('log', 'filter_display', $displayid); setSession('log', 'filter_seconds', $seconds); setSession('log', 'filter_intervalTypeId', $filter_intervalTypeId); //get the dates and times if ($fromdt == '') { $starttime_timestamp = time(); } else { $start_date = DateManager::getTimestampFromString($fromdt); $starttime_timestamp = strtotime($start_date[1] . "/" . $start_date[0] . "/" . $start_date[2] . ' ' . date("H", time()) . ":" . date("i", time()) . ':59'); } $todt = date("Y-m-d H:i:s", $starttime_timestamp); $fromdt = date("Y-m-d H:i:s", $starttime_timestamp - $seconds * $filter_intervalTypeId); $SQL = ""; $SQL .= "SELECT logid, logdate, page, function, message, display.display FROM log LEFT OUTER JOIN display ON display.displayid = log.displayid "; $SQL .= sprintf(" WHERE logdate > '%s' AND logdate <= '%s' ", $fromdt, $todt); if ($type != 0) { $SQL .= sprintf("AND type = '%s' ", $type == 1 ? 'error' : 'audit'); } if ($page != "") { $SQL .= sprintf("AND page = '%s' ", $db->escape_string($page)); } if ($function != "") { $SQL .= sprintf("AND function = '%s' ", $db->escape_string($function)); } if ($displayid != 0) { $SQL .= sprintf("AND display.displayID = %d ", $displayid); } $SQL .= " ORDER BY logid "; // Load results into an array $log = $db->GetArray($SQL); if (!is_array($log)) { trigger_error($db->error()); trigger_error(__('Error getting the log'), E_USER_ERROR); } $cols = array(array('name' => 'logid', 'title' => __('ID')), array('name' => 'logdate', 'title' => __('Date')), array('name' => 'display', 'title' => __('Display')), array('name' => 'page', 'title' => __('Page')), array('name' => 'function', 'title' => __('Function')), array('name' => 'message', 'title' => __('Message'))); Theme::Set('table_cols', $cols); $rows = array(); foreach ($log as $row) { $row['logid'] = Kit::ValidateParam($row['logid'], _INT); $row['logdate'] = DateManager::getLocalDate(strtotime(Kit::ValidateParam($row['logdate'], _STRING)), 'y-m-d h:i:s'); $row['display'] = Kit::ValidateParam($row['display'], _STRING) == '' ? __('CMS') : Kit::ValidateParam($row['display'], _STRING); $row['page'] = Kit::ValidateParam($row['page'], _STRING); $row['function'] = Kit::ValidateParam($row['function'], _STRING); $row['message'] = nl2br(htmlspecialchars($row['message'])); $rows[] = $row; } Theme::Set('table_rows', $rows); $output = Theme::RenderReturn('table_render'); $response->initialSortOrder = 2; $response->initialSortColumn = 1; $response->pageSize = 20; $response->SetGridResponse($output); $response->Respond(); }