Example #1
0
 /**
  * Get URLAliasService
  *
  * @return \eZ\Publish\API\Repository\URLAliasService
  */
 public function getURLAliasService()
 {
     if ($this->urlAliasService !== null) {
         return $this->urlAliasService;
     }
     $this->urlAliasService = new URLAliasService($this->repository->getURLAliasService(), $this->signalDispatcher);
     return $this->urlAliasService;
 }
Example #2
0
 public function castLocation(Location $location, array $a, Stub $stub, $isNested, $filter = 0)
 {
     $urlAliasService = $this->repository->getURLAliasService();
     $prefix = Caster::PREFIX_PROTECTED;
     if (!isset($a[$prefix . 'id'])) {
         $b = (array) $location;
         if (isset($b[$prefix . 'id'])) {
             $a += [$prefix . 'id' => $b[$prefix . 'id']];
         }
     }
     if ($filter & Caster::EXCLUDE_VERBOSE) {
         $a[Caster::PREFIX_VIRTUAL . 'urlAlias'] = $urlAliasService->reverseLookup($location);
     } else {
         $urlAliases = array_merge($urlAliasService->listLocationAliases($location, false), $urlAliasService->listLocationAliases($location, true));
         $locationPaths = [];
         foreach ($urlAliases as $alias) {
             $locationPaths[] = $alias->path;
         }
         $a[Caster::PREFIX_VIRTUAL . 'urlAliases'] = $locationPaths;
     }
     return $a;
 }