public extractUrlAliasFromData ( mixed[] $data ) : eZ\Publish\SPI\Persistence\Content\UrlAlias | ||
$data | mixed[] | |
return | eZ\Publish\SPI\Persistence\Content\UrlAlias |
public function extractUrlAliasFromData($data)
{
$urlAlias = new UrlAlias();
list($type, $destination) = $this->matchTypeAndDestination($data['action']);
$urlAlias->id = $data['parent'] . '-' . $data['text_md5'];
$urlAlias->pathData = $this->normalizePathData($data['raw_path_data']);
$urlAlias->languageCodes = $this->languageMaskGenerator->extractLanguageCodesFromMask($data['lang_mask']);
$urlAlias->alwaysAvailable = $this->languageMaskGenerator->isAlwaysAvailable($data['lang_mask']);
$urlAlias->isHistory = isset($data['is_path_history']) ? $data['is_path_history'] : !$data['is_original'];
$urlAlias->isCustom = (bool) $data['is_alias'];
$urlAlias->forward = $data['is_alias'] && $data['alias_redirects'];
$urlAlias->destination = $destination;
$urlAlias->type = $type;
return $urlAlias;
}
/** * Loads URL alias by given $id. * * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException * * @param string $id * * @return \eZ\Publish\SPI\Persistence\Content\UrlAlias */ public function loadUrlAlias($id) { list($parentId, $textMD5) = explode('-', $id); $data = $this->gateway->loadRow($parentId, $textMD5); if (empty($data)) { throw new NotFoundException('URLAlias', $id); } $data['raw_path_data'] = $this->gateway->loadPathData($data['id']); return $this->mapper->extractUrlAliasFromData($data); }