FOF30\Configuration\Domain\Views::parseDomain PHP Method

parseDomain() public method

Parse the XML data, adding them to the $ret array
public parseDomain ( SimpleXMLElement $xml, array &$ret ) : void
$xml SimpleXMLElement The XML data of the component's configuration area
$ret array
return void
    public function parseDomain(SimpleXMLElement $xml, array &$ret)
    {
        // Initialise
        $ret['views'] = array();
        // Parse view configuration
        $viewData = $xml->xpath('view');
        // Sanity check
        if (empty($viewData)) {
            return;
        }
        foreach ($viewData as $aView) {
            $key = (string) $aView['name'];
            // Parse ACL options
            $ret['views'][$key]['acl'] = array();
            $aclData = $aView->xpath('acl/task');
            if (!empty($aclData)) {
                foreach ($aclData as $acl) {
                    $k = (string) $acl['name'];
                    $ret['views'][$key]['acl'][$k] = (string) $acl;
                }
            }
            // Parse taskmap
            $ret['views'][$key]['taskmap'] = array();
            $taskmapData = $aView->xpath('taskmap/task');
            if (!empty($taskmapData)) {
                foreach ($taskmapData as $map) {
                    $k = (string) $map['name'];
                    $ret['views'][$key]['taskmap'][$k] = (string) $map;
                }
            }
            // Parse controller configuration
            $ret['views'][$key]['config'] = array();
            $optionData = $aView->xpath('config/option');
            if (!empty($optionData)) {
                foreach ($optionData as $option) {
                    $k = (string) $option['name'];
                    $ret['views'][$key]['config'][$k] = (string) $option;
                }
            }
            // Parse the toolbar
            $ret['views'][$key]['toolbar'] = array();
            $toolBars = $aView->xpath('toolbar');
            if (!empty($toolBars)) {
                foreach ($toolBars as $toolBar) {
                    $taskName = isset($toolBar['task']) ? (string) $toolBar['task'] : '*';
                    // If a toolbar title is specified, create a title element.
                    if (isset($toolBar['title'])) {
                        $ret['views'][$key]['toolbar'][$taskName]['title'] = array('value' => (string) $toolBar['title']);
                    }
                    // Parse the toolbar buttons data
                    $toolbarData = $toolBar->xpath('button');
                    if (!empty($toolbarData)) {
                        foreach ($toolbarData as $button) {
                            $k = (string) $button['type'];
                            $ret['views'][$key]['toolbar'][$taskName][$k] = current($button->attributes());
                            $ret['views'][$key]['toolbar'][$taskName][$k]['value'] = (string) $button;
                        }
                    }
                }
            }
        }
    }