setDefault() 공개 메소드

Sets if this localization is the default one.
public setDefault ( boolean $default )
$default boolean
 public function testResolve()
 {
     $webspace = new Webspace();
     $webspace->setKey('sulu_io');
     $portal = new Portal();
     $locale = new Localization();
     $locale->setLanguage('de');
     $locale->setDefault(true);
     $portal->addLocalization($locale);
     $localization = new Localization();
     $localization->setLanguage('de');
     $localization->setCountry('at');
     $requestAnalyzer = $this->prophesize('Sulu\\Component\\Webspace\\Analyzer\\WebsiteRequestAnalyzer');
     $requestAnalyzer->getWebspace()->willReturn($webspace);
     $requestAnalyzer->getCurrentLocalization()->willReturn($localization);
     $requestAnalyzer->getPortalUrl()->willReturn('sulu.io/de');
     $requestAnalyzer->getResourceLocatorPrefix()->willReturn('/de');
     $requestAnalyzer->getResourceLocator()->willReturn('/search');
     $requestAnalyzer->getGetParameters()->willReturn(['p' => 1]);
     $requestAnalyzer->getPostParameters()->willReturn([]);
     $requestAnalyzer->getPortal()->willReturn($portal);
     $requestAnalyzer->getAnalyticsKey()->willReturn('analyticsKey');
     $result = $this->resolver->resolve($requestAnalyzer->reveal());
     $this->assertEquals(['request' => ['webspaceKey' => 'sulu_io', 'locale' => 'de_at', 'defaultLocale' => 'de', 'portalUrl' => 'sulu.io/de', 'resourceLocatorPrefix' => '/de', 'resourceLocator' => '/search', 'get' => ['p' => 1], 'post' => [], 'analyticsKey' => 'analyticsKey']], $result);
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 public function setUp()
 {
     $webspaces = [];
     $portals = [];
     $portalInformations = ['prod' => [], 'dev' => []];
     $this->webspaceCollection = new WebspaceCollection();
     // first portal
     $portal = new Portal();
     $portal->setName('Portal1');
     $portal->setKey('portal1');
     $theme = new Theme();
     $theme->setKey('portal1theme');
     $environment = new Environment();
     $url = new Url();
     $url->setUrl('www.portal1.com');
     $url->setLanguage('en');
     $url->setCountry('us');
     $environment->addUrl($url);
     $environment->setType('prod');
     $url = new Url();
     $url->setUrl('portal1.com');
     $url->setRedirect('www.portal1.com');
     $environment->addUrl($url);
     $portal->addEnvironment($environment);
     $localizationEnUs = new Localization();
     $localizationEnUs->setCountry('us');
     $localizationEnUs->setLanguage('en');
     $localizationEnUs->setShadow('auto');
     $localizationEnUs->setDefault(true);
     $localizationEnCa = new Localization();
     $localizationEnCa->setCountry('ca');
     $localizationEnCa->setLanguage('en');
     $localizationEnCa->setDefault(false);
     $localizationEnUs->addChild($localizationEnCa);
     $localizationFrCa = new Localization();
     $localizationFrCa->setCountry('ca');
     $localizationFrCa->setLanguage('fr');
     $localizationFrCa->setDefault(false);
     $portal->addLocalization($localizationEnUs);
     $portal->addLocalization($localizationEnCa);
     $portal->addLocalization($localizationFrCa);
     $portal->setDefaultLocalization($localizationEnUs);
     $portal->setResourceLocatorStrategy('tree');
     $webspace = new Webspace();
     $webspace->addLocalization($localizationEnUs);
     $webspace->addLocalization($localizationFrCa);
     $segmentSummer = new Segment();
     $segmentSummer->setName('Summer');
     $segmentSummer->setKey('s');
     $segmentSummer->setDefault(true);
     $segmentWinter = new Segment();
     $segmentWinter->setName('Winter');
     $segmentWinter->setKey('w');
     $segmentWinter->setDefault(false);
     $webspace->addSegment($segmentSummer);
     $webspace->addSegment($segmentWinter);
     $webspace->setTheme($theme);
     $webspace->addPortal($portal);
     $webspace->setKey('default');
     $webspace->setName('Default');
     $webspace->addPortal($portal);
     $webspace->setNavigation(new Navigation([new NavigationContext('main', [])]));
     $portals[] = $portal;
     $webspaces[] = $webspace;
     $portalInformations['prod']['www.portal1.com'] = new PortalInformation(RequestAnalyzerInterface::MATCH_TYPE_FULL, $webspace, $portal, $localizationEnUs, 'www.portal1.com', $segmentSummer);
     $portalInformations['dev']['portal1.lo'] = new PortalInformation(RequestAnalyzerInterface::MATCH_TYPE_FULL, $webspace, $portal, $localizationEnUs, 'portal1.lo', $segmentSummer);
     $this->webspaceCollection->setWebspaces($webspaces);
     $this->webspaceCollection->setPortals($portals);
     $this->webspaceCollection->setPortalInformations($portalInformations);
 }