From b6befc5c184f5e81df891eb8f03fd328384c64c5 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Fri, 10 Mar 2017 11:15:11 +0100 Subject: [PATCH] fix: quiqqer/package-cron#14 -> Identifier --- src/QUI/Cron/Manager.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/QUI/Cron/Manager.php b/src/QUI/Cron/Manager.php index 293b1e3..9f66c7f 100644 --- a/src/QUI/Cron/Manager.php +++ b/src/QUI/Cron/Manager.php @@ -362,15 +362,36 @@ class Manager * Return the data of a specific cron from the available cron list * This cron is not in the cron list * - * @param string $cron - Name of the Cron - * + * @param string $cron - Cron-Identifier (package/package:NO) or name of the Cron * @return array|false - Cron Data */ public function getCronData($cron) { $availableCrons = $this->getAvailableCrons(); - // check if cron is available + // cron by package Identifier package/package:NO + $cronParts = explode(':', $cron); + + try { + $Package = QUI::getPackage($cronParts[0]); + $cronFile = $Package->getXMLFile('cron.xml'); + + if ($Package->isQuiqqerPackage() + && $cronFile + && isset($cronParts[1]) + && is_numeric($cronParts[1]) + ) { + $cronNo = (int)$cronParts[1]; + $cronList = $this->getCronsFromFile($cronFile); + + if (isset($cronList[$cronNo])) { + return $cronList[$cronNo]; + } + } + } catch (QUI\Exception $Exception) { + } + + // search cron via title foreach ($availableCrons as $entry) { if ($entry['title'] == $cron) { return $entry; -- GitLab