Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function resolve(array $parameter, RequestAnalyzerInterface $requestAnalyzer = null, StructureInterface $structure = null, $preview = false)
 {
     if ($structure !== null) {
         $structureData = $this->structureResolver->resolve($structure);
     } else {
         $structureData = [];
     }
     if (!$preview) {
         $requestAnalyzerData = $this->requestAnalyzerResolver->resolve($requestAnalyzer);
     } else {
         $requestAnalyzerData = $this->requestAnalyzerResolver->resolveForPreview($structure->getWebspaceKey(), $structure->getLanguageCode());
     }
     if (null !== ($portal = $requestAnalyzer->getPortal())) {
         $allLocalizations = $portal->getLocalizations();
     } else {
         $allLocalizations = $requestAnalyzer->getWebspace()->getLocalizations();
     }
     $pageUrls = array_key_exists('urls', $structureData) ? $structureData['urls'] : [];
     $urls = [];
     foreach ($allLocalizations as $localization) {
         /* @var Localization $localization */
         $locale = $localization->getLocalization();
         if (array_key_exists($locale, $pageUrls)) {
             $urls[$locale] = $pageUrls[$locale];
         } else {
             $urls[$locale] = '/';
         }
     }
     $structureData['urls'] = $urls;
     return array_merge($parameter, $structureData, $requestAnalyzerData);
 }