public function pageHistoryView(string $cabin, string $uniqueId)
{
$page = [];
$version = [];
$path = $this->determinePath($cabin);
if (!\is1DArray($_GET)) {
\Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'));
}
$cabins = $this->getCabinNamespaces();
if (!\in_array($cabin, $cabins)) {
\Airship\redirect($this->airship_cabin_prefix);
}
$this->setTemplateExtraData($cabin);
if (!$this->can('read')) {
\Airship\redirect($this->airship_cabin_prefix);
}
try {
$version = $this->pg->getPageVersionByUniqueId($uniqueId);
if (!empty($version['metadata'])) {
$version['metadata'] = \json_decode($version['metadata'], true);
}
$page = $this->pg->getPageById($version['page']);
} catch (CustomPageNotFoundException $ex) {
\Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'));
}
$prevUnique = $this->pg->getPrevVersionUniqueId((int) $version['page'], $version['versionid']);
$nextUnique = $this->pg->getNextVersionUniqueId((int) $version['page'], $version['versionid']);
$latestId = $this->pg->getLatestVersionId((int) $version['page']);
$this->lens('pages/page_history_view', ['cabins' => $cabins, 'pageinfo' => $page, 'version' => $version, 'latestId' => $latestId, 'prev_url' => $prevUnique, 'next_url' => $nextUnique, 'dir' => $path, 'cabin' => $cabin, 'pathinfo' => \Airship\chunk($path)]);
}