/** * Loads URL alias by given $id. * * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException * * @param string $id * * @return \eZ\Publish\API\Repository\Values\Content\URLAlias */ public function load($id) { $spiUrlAlias = $this->urlAliasHandler->loadUrlAlias($id); $path = $this->extractPath($spiUrlAlias, null, $this->settings['showAllTranslations'], $this->settings['prioritizedLanguageList']); if ($path === false) { throw new NotFoundException('URLAlias', $id); } return $this->buildUrlAliasDomainObject($spiUrlAlias, $path); }
/** * Publishes URL aliases in all languages for the given parameters. * * @throws \Exception * * @param int|string $locationId * @param int|string $parentLocationId * @param int|string $contentId * * @return int */ protected function publishAliases($locationId, $parentLocationId, $contentId) { $content = $this->contentService->loadContent($contentId); $urlAliasNames = $this->nameSchemaResolver->resolveUrlAliasSchema($content); foreach ($urlAliasNames as $languageCode => $name) { try { $this->setMigrationTable(); $this->urlAliasHandler->publishUrlAliasForLocation($locationId, $parentLocationId, $name, $languageCode, $content->contentInfo->alwaysAvailable); $this->setDefaultTable(); } catch (Exception $e) { $this->setDefaultTable(); throw $e; } } return count($urlAliasNames); }