/** * Get page content */ protected function getPageContent() { // load revision if ($this->URL->getParameter('page_revision', 'int') != 0) { // get data $this->record = FrontendModel::getPageRevision($this->URL->getParameter('page_revision', 'int')); // add no-index to meta-custom, so the draft won't get accidentally indexed $this->header->addMetaData(array('name' => 'robots', 'content' => 'noindex, nofollow'), true); } else { $this->record = (array) FrontendModel::getPage($this->pageId); } // empty record (pageId doesn't exists, hope this line is never used) if (empty($this->record) && $this->pageId != 404) { SpoonHTTP::redirect(FrontendNavigation::getURL(404), 404); } // init var $redirect = true; // loop blocks, if all are empty we should redirect to the first child foreach ($this->record['positions'] as $position => $blocks) { // loop blocks in position foreach ($blocks as $block) { // HTML provided? if ($block['html'] != '') { $redirect = false; } // an decent extra provided? if ($block['extra_type'] == 'block') { $redirect = false; } // a widget provided if ($block['extra_type'] == 'widget') { $redirect = false; } } } // should we redirect? if ($redirect) { // get first child $firstChildId = FrontendNavigation::getFirstChildId($this->record['id']); // validate the child if ($firstChildId !== false) { // build URL $URL = FrontendNavigation::getURL($firstChildId); // redirect SpoonHTTP::redirect($URL, 301); } } }