Backend\Modules\Extensions\Engine\Model::processModuleXml PHP Method

processModuleXml() public static method

Process the module's information XML and return an array with the information.
public static processModuleXml ( SimpleXMLElement $xml ) : array
$xml SimpleXMLElement
return array
    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;
    }