src/Sulu/Component/Content/Metadata/Loader/StructureXmlLoader.php
protected function loadTemplateAttributes($resource, \DOMXPath $xpath, $type)
    {
        if ('page' === $type || 'home' === $type) {
            $result = [
                'key' => $this->getValueFromXPath('/x:template/x:key', $xpath),
                'view' => $this->getValueFromXPath('/x:template/x:view', $xpath),
                'controller' => $this->getValueFromXPath('/x:template/x:controller', $xpath),
                'internal' => $this->getValueFromXPath('/x:template/x:internal', $xpath),
                'cacheLifetime' => $this->loadCacheLifetime('/x:template/x:cacheLifetime', $xpath),
                'tags' => $this->loadStructureTags('/x:template/x:tag', $xpath),
                'areas' => $this->loadStructureAreas('/x:template/x:areas/x:area', $xpath),
                'meta' => $this->loadMeta('/x:template/x:meta/x:*', $xpath),
            ];

            $result = array_filter(
                $result,
                function($value) {
                    return null !== $value;
                }
            );

            foreach (['key', 'view', 'controller', 'cacheLifetime'] as $requiredProperty) {
                if (!isset($result[$requiredProperty])) {
                    throw new InvalidXmlException(
                        $type,
                        sprintf(
                            'Property "%s" is required in XML template file "%s"',
                            $requiredProperty,
                            $resource
                        )
                    );
                }
            }
        } else {
            $result = [
                'key' => $this->getValueFromXPath('/x:template/x:key', $xpath),
                'view' => $this->getValueFromXPath('/x:template/x:view', $xpath),
                'controller' => $this->getValueFromXPath('/x:template/x:controller', $xpath),
                'cacheLifetime' => $this->loadCacheLifetime('/x:template/x:cacheLifetime', $xpath),
                'tags' => $this->loadStructureTags('/x:template/x:tag', $xpath),
                'areas' => $this->loadStructureAreas('/x:template/x:areas/x:area', $xpath),
                'meta' => $this->loadMeta('/x:template/x:meta/x:*', $xpath),
            ];

            $result = array_filter(
                $result,
                function($value) {
                    return null !== $value;
                }
            );

            if (count($result) < 1) {
                throw new InvalidXmlException($result['key']);
            }
        }

        return $result;
    }
protected function loadTemplateAttributes($resource, \DOMXPath $xpath, $type)
    {
        if ('page' === $type || 'home' === $type) {
            $result = [
                'key' => $this->getValueFromXPath('/x:template/x:key', $xpath),
                'view' => $this->getValueFromXPath('/x:template/x:view', $xpath),
                'controller' => $this->getValueFromXPath('/x:template/x:controller', $xpath),
                'internal' => $this->getValueFromXPath('/x:template/x:internal', $xpath),
                'cacheLifetime' => $this->loadCacheLifetime('/x:template/x:cacheLifetime', $xpath),
                'tags' => $this->loadStructureTags('/x:template/x:tag', $xpath),
                'areas' => $this->loadStructureAreas('/x:template/x:areas/x:area', $xpath),
                'meta' => $this->loadMeta('/x:template/x:meta/x:*', $xpath),
            ];

            $result = array_filter(
                $result,
                function($value) {
                    return null !== $value;
                }
            );

            foreach (['key', 'view', 'controller', 'cacheLifetime'] as $requiredProperty) {
                if (!isset($result[$requiredProperty])) {
                    throw new InvalidXmlException(
                        $type,
                        sprintf(
                            'Property "%s" is required in XML template file "%s"',
                            $requiredProperty,
                            $resource
                        )
                    );
                }
            }
        } else {
            $result = [
                'key' => $this->getValueFromXPath('/x:template/x:key', $xpath),
                'view' => $this->getValueFromXPath('/x:template/x:view', $xpath),
                'controller' => $this->getValueFromXPath('/x:template/x:controller', $xpath),
                'cacheLifetime' => $this->loadCacheLifetime('/x:template/x:cacheLifetime', $xpath),
                'tags' => $this->loadStructureTags('/x:template/x:tag', $xpath),
                'areas' => $this->loadStructureAreas('/x:template/x:areas/x:area', $xpath),
                'meta' => $this->loadMeta('/x:template/x:meta/x:*', $xpath),
            ];

            $result = array_filter(
                $result,
                function($value) {
                    return null !== $value;
                }
            );

            if (count($result) < 1) {
                throw new InvalidXmlException($result['key']);
            }
        }

        return $result;
    }
protected function loadTemplateAttributes ( $ resource , \ DOMXPath $ xpath , $ type ) { if ( 'page' === $ type || 'home' === $ type ) { $ result = [ 'key' => $ this -> getValueFromXPath ( '/x:template/x:key' , $ xpath ) , 'view' => $ this -> getValueFromXPath ( '/x:template/x:view' , $ xpath ) , 'controller' => $ this -> getValueFromXPath ( '/x:template/x:controller' , $ xpath ) , 'internal' => $ this -> getValueFromXPath ( '/x:template/x:internal' , $ xpath ) , 'cacheLifetime' => $ this -> loadCacheLifetime ( '/x:template/x:cacheLifetime' , $ xpath ) , 'tags' => $ this -> loadStructureTags ( '/x:template/x:tag' , $ xpath ) , 'areas' => $ this -> loadStructureAreas ( '/x:template/x:areas/x:area' , $ xpath ) , 'meta' => $ this -> loadMeta ( '/x:template/x:meta/x:*' , $ xpath ) , ] ; $ result = array_filter ( $ result , function ( $ value ) { return null !== $ value ; } ) ; foreach ( [ 'key' , 'view' , 'controller' , 'cacheLifetime' ] as $ requiredProperty ) { if ( ! isset ( $ result [ $ requiredProperty ] ) ) { throw new InvalidXmlException ( $ type , sprintf ( 'Property "%s" is required in XML template file "%s"' , $ requiredProperty , $ resource ) ) ; } } } else { $ result = [ 'key' => $ this -> getValueFromXPath ( '/x:template/x:key' , $ xpath ) , 'view' => $ this -> getValueFromXPath ( '/x:template/x:view' , $ xpath ) , 'controller' => $ this -> getValueFromXPath ( '/x:template/x:controller' , $ xpath ) , 'cacheLifetime' => $ this -> loadCacheLifetime ( '/x:template/x:cacheLifetime' , $ xpath ) , 'tags' => $ this -> loadStructureTags ( '/x:template/x:tag' , $ xpath ) , 'areas' => $ this -> loadStructureAreas ( '/x:template/x:areas/x:area' , $ xpath ) , 'meta' => $ this -> loadMeta ( '/x:template/x:meta/x:*' , $ xpath ) , ] ; $ result = array_filter ( $ result , function ( $ value ) { return null !== $ value ; } ) ; if ( count ( $ result ) < 1 ) { throw new InvalidXmlException ( $ result [ 'key' ] ) ; } } return $ result ; }
Load template attributes.
Load template attributes .