protected function prepareWebspaceManager() { if ($this->webspaceManager === null) { $webspace = new Webspace(); $en = new Localization(); $en->setLanguage('en'); $en_us = new Localization(); $en_us->setLanguage('en'); $en_us->setCountry('us'); $en_us->setParent($en); $en->addChild($en_us); $de = new Localization(); $de->setLanguage('de'); $de_at = new Localization(); $de_at->setLanguage('de'); $de_at->setCountry('at'); $de_at->setParent($de); $de->addChild($de_at); $es = new Localization(); $es->setLanguage('es'); $webspace->addLocalization($en); $webspace->addLocalization($de); $webspace->addLocalization($es); $this->webspaceManager = $this->prophesize('Sulu\\Component\\Webspace\\Manager\\WebspaceManagerInterface'); $this->webspaceManager->findWebspaceByKey('sulu_io')->willReturn($webspace); } }
/** * Generates a localization from the given node. * * @param \DOMElement|\DOMNode $localizationNode * @param bool $flat * @param null $parent * * @return Localization */ protected function generateLocalizationFromNode(\DOMElement $localizationNode, $flat = false, $parent = null) { $localization = new Localization(); $localization->setLanguage($localizationNode->attributes->getNamedItem('language')->nodeValue); // set parent if given if ($parent) { $localization->setParent($parent); } // set optional nodes $countryNode = $localizationNode->attributes->getNamedItem('country'); if ($countryNode) { $localization->setCountry($countryNode->nodeValue); } $shadowNode = $localizationNode->attributes->getNamedItem('shadow'); if ($shadowNode) { $localization->setShadow($shadowNode->nodeValue); } $defaultNode = $localizationNode->attributes->getNamedItem('default'); if ($defaultNode) { $localization->setDefault($defaultNode->nodeValue == 'true'); } else { $localization->setDefault(false); } $xDefaultNode = $localizationNode->attributes->getNamedItem('x-default'); if ($xDefaultNode) { $localization->setXDefault($xDefaultNode->nodeValue == 'true'); } else { $localization->setXDefault(false); } // set child nodes if (!$flat) { foreach ($this->xpath->query('x:localization', $localizationNode) as $childNode) { $localization->addChild($this->generateLocalizationFromNode($childNode, $flat, $localization)); } } return $localization; }