/** * Execute the action */ public function execute() { // get parameters $this->id = $this->getParameter('id', 'int'); // does the item exist if ($this->id !== null && BackendPagesModel::exists($this->id)) { // call parent, this will probably add some general CSS/JS or other required files parent::execute(); // init var $success = false; // cannot have children if (BackendPagesModel::getFirstChildId($this->id) !== false) { $this->redirect(BackendModel::createURLForAction('edit') . '&error=non-existing'); } $revisionId = $this->getParameter('revision_id', 'int'); if ($revisionId == 0) { $revisionId = null; } // get page (we need the title) $page = BackendPagesModel::get($this->id, $revisionId); // valid page? if (!empty($page)) { // delete the page $success = BackendPagesModel::delete($this->id, null, $revisionId); // trigger event BackendModel::triggerEvent($this->getModule(), 'after_delete', array('id' => $this->id)); // delete search indexes BackendSearchModel::removeIndex($this->getModule(), $this->id); // build cache BackendPagesModel::buildCache(BL::getWorkingLanguage()); } // page is deleted, so redirect to the overview if ($success) { $this->redirect(BackendModel::createURLForAction('index') . '&id=' . $page['parent_id'] . '&report=deleted&var=' . urlencode($page['title'])); } else { $this->redirect(BackendModel::createURLForAction('edit') . '&error=non-existing'); } } else { $this->redirect(BackendModel::createURLForAction('edit') . '&error=non-existing'); } }
/** * Load the record */ private function loadData() { // get record $this->id = $this->getParameter('id', 'int'); $this->isGod = BackendAuthentication::getUser()->isGod(); // check if something went wrong if ($this->id === null || !BackendPagesModel::exists($this->id)) { $this->redirect(BackendModel::createURLForAction('index') . '&error=non-existing'); } // get the record $this->record = BackendPagesModel::get($this->id); // load blocks $this->blocksContent = BackendPagesModel::getBlocks($this->id, $this->record['revision_id']); // is there a revision specified? $revisionToLoad = $this->getParameter('revision', 'int'); // if this is a valid revision if ($revisionToLoad !== null) { // overwrite the current record $this->record = (array) BackendPagesModel::get($this->id, $revisionToLoad); // load blocks $this->blocksContent = BackendPagesModel::getBlocks($this->id, $revisionToLoad); // show warning $this->tpl->assign('appendRevision', true); } // is there a revision specified? $draftToLoad = $this->getParameter('draft', 'int'); // if this is a valid revision if ($draftToLoad !== null) { // overwrite the current record $this->record = (array) BackendPagesModel::get($this->id, $draftToLoad); // load blocks $this->blocksContent = BackendPagesModel::getBlocks($this->id, $draftToLoad); // show warning $this->tpl->assign('appendRevision', true); } // reset some vars $this->record['full_url'] = BackendPagesModel::getFullURL($this->record['id']); $this->record['is_hidden'] = $this->record['hidden'] == 'Y'; }