function find_by_criteria($id_in_module = null, $type = null, $identifier = null) { global $Sql; $criterias = array(); if ($id_in_module != null) { $criterias[] = "id_in_module = '" . intval($id_in_module) . "'"; } if ($type != null) { $criterias[] = "type = '" . strprotect($type) . "'"; } if ($identifier != null) { $criterias[] = "identifier = '" . strprotect($identifier) . "'"; } if (!empty($criterias)) { $array_result = array(); $where_clause = "contribution_type = '" . ADMINISTRATOR_ALERT_TYPE . "' AND " . implode($criterias, " AND "); $result = $Sql->query_while("SELECT id, entitled, fixing_url, current_status, creation_date, identifier, id_in_module, type, priority, description\n\t\t\tFROM " . DB_TABLE_EVENTS . "\n\t\t\tWHERE " . $where_clause, __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $alert = new AdministratorAlert(); $alert->build($row['id'], $row['entitled'], $row['description'], $row['fixing_url'], $row['current_status'], new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, $row['creation_date']), $row['id_in_module'], $row['identifier'], $row['type'], $row['priority']); $array_result[] = $alert; } return $array_result; } else { return AdministratorAlertService::get_all_alerts(); } }
//Gestion des critères de tri $criteria = retrieve(GET, 'criteria', 'current_status'); $order = retrieve(GET, 'order', 'asc'); if (!in_array($criteria, array('entitled', 'current_status', 'creation_date', 'priority'))) { $criteria = 'current_status'; } $order = $order == 'desc' ? 'desc' : 'asc'; $page = AppContext::get_request()->get_getint('p', 1); $pagination = new ModulePagination($page, AdministratorAlertService::get_number_alerts(), NUM_ALERTS_PER_PAGE); $pagination->set_url(new Url('/admin/admin_alerts.php?p=%d&criteria=' . $criteria . '&order=' . $order)); if ($pagination->current_page_is_empty() && $page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } //On va chercher la liste des alertes $alerts_list = AdministratorAlertService::get_all_alerts($criteria, $order, ($page - 1) * NUM_ALERTS_PER_PAGE, NUM_ALERTS_PER_PAGE); foreach ($alerts_list as $alert) { $img_class = ''; switch ($alert->get_priority()) { case AdministratorAlert::ADMIN_ALERT_VERY_LOW_PRIORITY: $color = 'FFFFFF'; break; case AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY: $color = 'ECDBB7'; break; case AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY: $color = 'F5D5C6'; break; case AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY: $img_class = 'fa fa-warning'; $color = 'FFD5D1';
require_once '../admin/admin_begin.php'; define('TITLE', $LANG['administration']); require_once '../admin/admin_header.php'; $template = new Template('admin/admin_alerts.tpl'); import('events/administrator_alert_service'); define('NUM_ALERTS_PER_PAGE', 20); import('util/pagination'); $pagination = new Pagination(); $criteria = retrieve(GET, 'criteria', 'current_status'); $order = retrieve(GET, 'order', 'asc'); if (!in_array($criteria, array('entitled', 'current_status', 'creation_date', 'priority'))) { $criteria = 'current_status'; } $order = $order == 'desc' ? 'desc' : 'asc'; $alerts_list = AdministratorAlertService::get_all_alerts($criteria, $order, ($pagination->_get_var_page('p') - 1) * NUM_ALERTS_PER_PAGE, NUM_ALERTS_PER_PAGE); foreach ($alerts_list as $alert) { $img_type = ''; switch ($alert->get_priority()) { case ADMIN_ALERT_VERY_LOW_PRIORITY: $color = 'FFFFFF'; break; case ADMIN_ALERT_LOW_PRIORITY: $color = 'ECDBB7'; break; case ADMIN_ALERT_MEDIUM_PRIORITY: $color = 'F5D5C6'; break; case ADMIN_ALERT_HIGH_PRIORITY: $img_type = 'important.png'; $color = 'FFD5D1';