public getLatestVersion ( integer $pageId ) : array | ||
$pageId | integer | |
return | array |
public function getLatestVersion(int $pageId) : array
{
$latest = $this->db->row('SELECT
*
FROM
airship_custom_page_version
WHERE
published
AND page = ?
ORDER BY versionid DESC
LIMIT 1
', $pageId);
if (empty($latest)) {
throw new CustomPageNotFoundException(\__("Page ID: %s", 'default', $pageId));
}
if (!empty($latest['metadata'])) {
$latest['metadata'] = \json_decode($latest['metadata'], true);
} else {
$latest['metadata'] = [];
}
return $latest;
}
/** * Server the latest version of a custom page. * * @param array $page * @return bool */ protected function serveLatestVersion(array $page) : bool { $latest = $this->pages->getLatestVersion((int) $page['pageid']); if (empty($latest)) { return false; } $vars = $latest['metadata']; $vars['meta'] = []; if (!empty($vars['keywords'])) { $vars['meta']['keywords'] = $vars['keywords']; } if (!empty($vars['description'])) { $vars['meta']['description'] = $vars['description']; } $vars['rendered_content'] = $this->render($latest); if ($page['cache']) { $this->stasis('custom', $vars); } else { $this->lens('custom', $vars); } return true; }