public static function processModuleXml(\SimpleXMLElement $xml)
{
$information = array();
// fetch theme node
$module = $xml->xpath('/module');
if (isset($module[0])) {
$module = $module[0];
}
// fetch general module info
$information['name'] = (string) $module->name;
$information['version'] = (string) $module->version;
$information['requirements'] = (array) $module->requirements;
$information['description'] = (string) $module->description;
$information['cronjobs'] = array();
// authors
foreach ($xml->xpath('/module/authors/author') as $author) {
$information['authors'][] = (array) $author;
}
// cronjobs
foreach ($xml->xpath('/module/cronjobs/cronjob') as $cronjob) {
$attributes = $cronjob->attributes();
if (!isset($attributes['action'])) {
continue;
}
// build cronjob information
$item = array();
$item['minute'] = isset($attributes['minute']) ? $attributes['minute'] : '*';
$item['hour'] = isset($attributes['hour']) ? $attributes['hour'] : '*';
$item['day-of-month'] = isset($attributes['day-of-month']) ? $attributes['day-of-month'] : '*';
$item['month'] = isset($attributes['month']) ? $attributes['month'] : '*';
$item['day-of-week'] = isset($attributes['day-of-week']) ? $attributes['day-of-week'] : '*';
$item['action'] = $attributes['action'];
$item['description'] = $cronjob[0];
// check if cronjob has already been run
$cronjobs = (array) BackendModel::get('fork.settings')->get('Core', 'cronjobs');
$item['active'] = in_array($information['name'] . '.' . $attributes['action'], $cronjobs);
$information['cronjobs'][] = $item;
}
// events
foreach ($xml->xpath('/module/events/event') as $event) {
$attributes = $event->attributes();
// build event information and add it to the list
$information['events'][] = array('application' => isset($attributes['application']) ? $attributes['application'] : '', 'name' => isset($attributes['name']) ? $attributes['name'] : '', 'description' => $event[0]);
}
return $information;
}