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;
 }