Airship\Cabin\Bridge\Blueprint\CustomPages::getLatestDraft PHP Method

getLatestDraft() public method

Get the latest version of a custom page
public getLatestDraft ( integer $pageId ) : array
$pageId integer
return array
    public function getLatestDraft(int $pageId) : array
    {
        $latest = $this->db->row('SELECT
                *
            FROM
                airship_custom_page_version
            WHERE
                    page = ?
                ORDER BY versionid DESC
                LIMIT 1
            ', $pageId);
        if (empty($latest)) {
            return [];
        }
        if (!empty($latest['metadata'])) {
            $latest['metadata'] = \json_decode($latest['metadata'], true);
        } else {
            $latest['metadata'] = [];
        }
        return $latest;
    }

Usage Example

Example #1
0
 /**
  * We're going to edit a directory
  *
  * @route pages/{string}/edit
  * @param string $cabin
  */
 public function editPage(string $cabin = '')
 {
     $page = [];
     $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('update')) {
         \Airship\redirect($this->airship_cabin_prefix);
     }
     try {
         $page = $this->pg->getPageInfo($cabin, $path, (string) ($_GET['page'] ?? ''));
     } catch (CustomPageNotFoundException $ex) {
         \Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'));
     }
     $latest = $this->pg->getLatestDraft($page['pageid']);
     $post = $this->post(new EditPageFilter());
     if (!empty($post)) {
         $this->processEditPage((int) $page['pageid'], $post, $cabin, $path);
     }
     $this->lens('pages/page_edit', ['cabins' => $cabins, 'pageinfo' => $page, 'latest' => $latest, 'dir' => $path, 'cabin' => $cabin, 'pathinfo' => \Airship\chunk($path)]);
 }