getElementChildValueByName example

foreach ($list as $item) {
            $items[] = $this->parseItem($item);
        }

        return $items;
    }

    private function parseItem(DOMElement $element): array
    {
        $item = [];

        if ($name = self::getElementChildValueByName($element, 'name', true)) {
            $item['name'] = $name;
        }

        if ($action = self::getElementChildValueByName($element, 'action', true)) {
            $item['action'] = $action;
        }

        if ($active = self::getElementChildValueByName($element, 'active', true)) {
            $item['active'] = (bool) XmlUtils::phpize($active);
        }

        
$item = self::parseItem($item);
            $items[$item['typeName']] = $item;
            unset($items[$item['typeName']]['typeName']);
        }

        return $items;
    }

    private static function parseItem(DOMElement $element): array
    {
        $item = [];
        if ($typeName = self::getElementChildValueByName($element, 'typeName', true)) {
            $item['typeName'] = $typeName;
        }

        if ($name = self::getElementChildValueByName($element, 'name', true)) {
            $item['name'] = $name;
        }

        if ($showInFrontend = self::getElementChildValueByName($element, 'showInFrontend')) {
            $item['showInFrontend'] = (bool) XmlUtils::phpize($showInFrontend);
        }

        
$menuEntry = [];

        $menuEntry['isRootMenu'] = self::validateBooleanAttribute($entry->getAttribute('isRootMenu'));

        $label = self::parseTranslatableElement($entry, 'label');

        if ($label !== null) {
            $menuEntry['label'] = $label;
        }

        foreach (['name', 'controller', 'action', 'class', 'onclick'] as $simpleField) {
            $fieldValue = self::getElementChildValueByName($entry$simpleField);
            if ($fieldValue !== null) {
                $menuEntry[$simpleField] = $fieldValue;
            }
        }

        $parent = $entry->getElementsByTagName('parent')->item(0);
        if ($parent !== null) {
            $identifiedBy = self::validateTextAttribute(
                $parent->getAttribute('identifiedBy'),
                'controller'
            );

            
$description = $xpath->query('//plugin/description');
        if ($description instanceof DOMNodeList) {
            $description = self::parseTranslatableNodeList($description);
            if ($description) {
                $info['description'] = $description;
            }
        }

        $simpleFields = ['version', 'license', 'author', 'copyright', 'link'];
        foreach ($simpleFields as $simpleField) {
            $fieldValue = self::getElementChildValueByName($pluginData$simpleField);
            if ($fieldValue !== null) {
                $info[$simpleField] = $fieldValue;
            }
        }

        foreach ($pluginData->getElementsByTagName('changelog') as $changelog) {
            $version = $changelog->getAttribute('version');

            foreach ($changelog->getElementsByTagName('changes') as $changes) {
                $lang = $changes->getAttribute('lang') ?: 'en';
                $info['changelog'][$version][$lang][] = $changes->nodeValue;
            }
Home | Imprint | This part of the site doesn't use cookies.