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)]); }