/** * 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; }
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; }