public static function getPluginJobs($a_only_active = false) { global $ilPluginAdmin; $res = array(); foreach ($ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "Cron", "crnhk") as $pl_name) { $plugin_obj = $ilPluginAdmin->getPluginObject(IL_COMP_SERVICE, "Cron", "crnhk", $pl_name); foreach ((array) $plugin_obj->getCronJobInstances() as $job) { $item = array_pop(ilCronManager::getCronJobData($job->getId())); if (!sizeof($item)) { // as job is not "imported" from xml ilCronManager::createDefaultEntry($job, $pl_name, IL_COMP_PLUGIN, ""); } $item = array_pop(ilCronManager::getCronJobData($job->getId())); } if (!$a_only_active || $item["job_status"] == 1) { $res[$job->getId()] = array($job, $item); } } return $res; }
public function addToExternalSettingsForm($a_form_id) { $fields = array(); $data = ilCronManager::getCronJobData(); foreach ($data as $item) { $job = ilCronManager::getJobInstance($item["job_id"], $item["component"], $item["class"], $item["path"]); if (method_exists($job, "addToExternalSettingsForm")) { $job->addToExternalSettingsForm($a_form_id, $fields, $item["job_status"]); } } if (sizeof($fields)) { return array("cron_jobs" => array("jumpToCronJobs", $fields)); } }
protected function getItems() { global $ilPluginAdmin, $lng; include_once "Services/User/classes/class.ilUserUtil.php"; include_once "Services/Cron/classes/class.ilCronJobResult.php"; // systems $data = ilCronManager::getCronJobData(); foreach ($data as $idx => $item) { $job = ilCronManager::getJobInstance($item["job_id"], $item["component"], $item["class"], $item["path"]); if ($job) { $data[$idx] = $this->parseJobToData($item, $job); } } // plugins $lng->loadLanguageModule("cmps"); foreach (ilCronManager::getPluginJobs() as $item) { $job = $item[0]; $item = $item[1]; $item["job_id"] = "pl__" . $item["component"] . "__" . $job->getId(); $item["component"] = $lng->txt("cmps_plugin") . "/" . $item["component"]; $data[] = $this->parseJobToData($item, $job); } $this->setData($data); }
protected function calculateDeletionData($date_for_deletion) { $cron_timing = ilCronManager::getCronJobData($this->getId()); $time_difference = 0; $multiplier = 1; if (!is_array($cron_timing) || !is_array($cron_timing[0])) { return time() + $date_for_deletion + $time_difference; } if (array_key_exists('schedule_type', $cron_timing[0])) { if (array_key_exists('schedule_type', $cron_timing[0]) && $cron_timing[0]['schedule_value'] != null) { $multiplier = $cron_timing[0]['schedule_value']; } $time_difference = $this->getTimeDifferenceBySchedule($cron_timing[0]['schedule_type'], $multiplier); } return time() + $date_for_deletion + $time_difference; }