/** * Migrate extensions to other Extensions Group */ public function migrationAction() { $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Manage"), $this->view->translate("Extension Groups"), $this->view->translate("Migrate Extension Group"))); $id = $this->_request->getParam('id'); $_allGroups = Snep_ExtensionsGroups_Manager::getAllGroup(); foreach ($_allGroups as $group) { if ($group['name'] != $id) { $allGroups[$group['name']] = $group['name']; } } Zend_Registry::set('cancel_url', $this->getFrontController()->getBaseUrl() . '/' . $this->getRequest()->getControllerName() . '/index'); $form = new Snep_Form(); $form->setAction($this->getFrontController()->getBaseUrl() . '/' . $this->getRequest()->getControllerName() . '/migration/'); if (isset($allGroups)) { $groupSelect = new Zend_Form_Element_Select('select'); $groupSelect->setMultiOptions($allGroups); $groupSelect->setLabel($this->view->translate($this->view->translate("New Group"))); $form->addElement($groupSelect); $this->view->message = $this->view->translate("This groups has extensions associated. Select another group for these extensions. "); } else { $groupName = new Zend_Form_Element_Text('new_group'); $groupName->setLabel($this->view->translate($this->view->translate("New Group"))); $form->addElement($groupName); $this->view->message = $this->view->translate("This is the only group and it has extensions associated. You can migrate these extensions to a new group."); } $id_exclude = new Zend_Form_Element_Hidden("id"); $id_exclude->setValue($id); $form->addElement($id_exclude); if ($this->_request->getPost()) { if (isset($_POST['select'])) { $toGroup = $_POST['select']; } else { $new_group = array('group' => $_POST['new_group']); $toGroup = Snep_ExtensionsGroups_Manager::addGroup($new_group); } $extensions = Snep_ExtensionsGroups_Manager::getExtensionsOnlyGroup($id); foreach ($extensions as $extension) { Snep_ExtensionsGroups_Manager::addExtensionsGroup(array('extensions' => $extension['name'], 'group' => $toGroup)); } Snep_ExtensionsGroups_Manager::delete($id); $this->_redirect($this->getRequest()->getControllerName()); } $this->view->form = $form; }