Airship\Cabin\Hull\Blueprint\CustomPages::getLatestVersion PHP Method

getLatestVersion() public method

Get the latest version of a custom page
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;
    }

Usage Example

Example #1
0
 /**
  * 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;
 }