/** * Cron action on tasks : ExpiredTasks * * @param $task for log, if NULL display * **/ static function cronResourcesTask($task = NULL) { global $DB, $CFG_GLPI; if (!$CFG_GLPI["use_mailing"]) { return 0; } $message = array(); $cron_status = 0; $resourcetask = new self(); $query_expired = $resourcetask->queryAlert(); $querys = array(Alert::END => $query_expired); $task_infos = array(); $task_messages = array(); foreach ($querys as $type => $query) { $task_infos[$type] = array(); foreach ($DB->request($query) as $data) { $entity = $data['entities_id']; $message = $data["name"] . ": " . Html::convDate($data["date_end"]) . "<br>\n"; $task_infos[$type][$entity][] = $data; if (!isset($tasks_infos[$type][$entity])) { $task_messages[$type][$entity] = __('Not finished tasks', 'resources') . "<br />"; } $task_messages[$type][$entity] .= $message; } } foreach ($querys as $type => $query) { foreach ($task_infos[$type] as $entity => $tasks) { Plugin::loadLang('resources'); if (NotificationEvent::raiseEvent("AlertExpiredTasks", new PluginResourcesResource(), array('entities_id' => $entity, 'tasks' => $tasks))) { $message = $task_messages[$type][$entity]; $cron_status = 1; if ($task) { $task->log(Dropdown::getDropdownName("glpi_entities", $entity) . ": {$message}\n"); $task->addVolume(1); } else { Session::addMessageAfterRedirect(Dropdown::getDropdownName("glpi_entities", $entity) . ": {$message}"); } } else { if ($task) { $task->log(Dropdown::getDropdownName("glpi_entities", $entity) . ": Send tasks alert failed\n"); } else { Session::addMessageAfterRedirect(Dropdown::getDropdownName("glpi_entities", $entity) . ": Send tasks alert failed", false, ERROR); } } } } return $cron_status; }