public function showDelete(Curry_PageModuleWrapper $wrapper, $backend) { if ($wrapper->isInherited() && !$this->pagePermission[PageAccessPeer::PERM_MODULES]) { $backend->addMessage('You do not have permission to delete inherited modules.', Curry_Backend::MSG_ERROR); return; } if (!$this->pagePermission[PageAccessPeer::PERM_CREATE_MODULE]) { $backend->addMessage('You do not have permission to delete modules.', Curry_Backend::MSG_ERROR); return; } $form = new Curry_Form(array('action' => url('', $_GET), 'elements' => array('delete' => array('submit', array('label' => 'Delete'))))); if (isPost() && $form->isValid($_POST)) { $pageModule = $wrapper->getPageModule(); $pk = $pageModule->getPrimaryKey(); $revisionModule = RevisionModuleQuery::create()->findPk(array($pageModule->getPageModuleId(), $wrapper->getOriginPage()->getWorkingPageRevisionId())); if (!$revisionModule) { throw new Exception('Unable to find RevisionModule to delete.'); } $revisionModule->delete(); $backend->addMessage('The module has been deleted!', Curry_Backend::MSG_SUCCESS); $backend->createModelUpdateEvent('PageModule', $pk, 'delete'); Curry_Admin::getInstance()->addBodyClass('live-edit-close'); } else { $msg = 'Do you really want to delete this module?'; $originPage = $wrapper->getOriginPage(); $dependencies = $originPage->getDependantPages(); if ($wrapper->isInherited()) { $backend->addMessage('This module is inherited and will be removed from ' . $originPage . '. It will also be removed from the following subpages: ' . join(", ", $dependencies), Curry_Backend::MSG_WARNING); } else { if (count($dependencies)) { $backend->addMessage('This module is inherited to subpages and will ' . 'also be removed from the following subpages: ' . join(", ", $dependencies), Curry_Backend::MSG_WARNING); } } $backend->addMessage($msg); $backend->addMainContent($form); } }
/** * Get "copy code" for module. * * @param Curry_PageModuleWrapper $module * @return array */ public static function getModuleCode(Curry_PageModuleWrapper $module) { $datas = array(); $moduleDatas = ModuleDataQuery::create()->filterByPageModule($module->getPageModule())->filterByPageRevision($module->getPageRevision())->orderByLangcode()->find(); foreach ($moduleDatas as $moduleData) { $datas[] = self::getModuleDataCode($moduleData); } return array("is_inherited" => $module->isInherited(), "uid" => $module->getPageModule()->getUid(), "name" => $module->getName(), "module_class" => $module->getClassName(), "inherit" => true, "target" => $module->getTarget(), "content_visibility" => $module->getPageModule()->getContentVisibility(), "search_visibility" => $module->getPageModule()->getSearchVisibility(), "datas" => $datas); }
/** * Save module properties. * * @param Curry_PageModuleWrapper $pageModuleWrapper * @param array $values */ public static function saveModuleProperties(Curry_PageModuleWrapper $pageModuleWrapper, array $values) { $modified = false; // PageModule $pageModule = $pageModuleWrapper->getPageModule(); $pageModule->setName($values['name']); $pageModule->setTarget($values['target']); $pageModule->setContentVisibility($values['content_visibility']); $pageModule->setSearchVisibility($values['search_visibility']); $modified |= $pageModule->isModified(); $pageModule->save(); // ModuleData $moduleData = $pageModuleWrapper->getModuleData(); $moduleData->setTemplate($values['local']['template'] === '' ? null : $values['local']['template']); $moduleData->setEnabled(self::str2bool($values['local']['show'])); $modified |= $moduleData->isModified(); $moduleData->save(); if ($modified) { $pageRevision = $pageModuleWrapper->getPageRevision(); $pageRevision->setUpdatedAt(time()); $pageRevision->save(); } }