public function configAction() { $table = new Application_Model_DbTable_Config(); $rowset = $table->fetchAll(); $config = array(); foreach ($rowset as $row) { $config[$row->code] = $row->value; } $form = new Application_Form_Config(); $form->populate($config); $request = $this->getRequest(); if ($request->isPost() && $form->isValid($request->getPost())) { $values = $form->getValues(); $table->update( array('value' => $values['can_vote']), $table->getAdapter()->quoteInto('code = "can_vote"') ); $table->update( array('value' => $values['can_enter']), $table->getAdapter()->quoteInto('code = "can_enter"') ); return $this->_redirect('/admin/config?msg=config-saved'); } $this->view->form = $form; }
public function configAction() { $configForm = new Application_Form_Config(); $configForm->setAction($this->_helper->url->url()); $languageSelect = $configForm->getElement('language'); $languageSelect->setMultiOptions($this->_helper->language->getLanguages(false)); $loggedUser = $this->_helper->session->getCurrentUser(); $isSuperAdminLogged = $loggedUser->getRoleId() === Tools_Security_Acl::ROLE_SUPERADMIN; $this->view->isSuperAdmin = $isSuperAdminLogged; if ($this->getRequest()->isPost()) { if (!$isSuperAdminLogged) { $configForm->removeElement('suLogin'); $configForm->removeElement('suPassword'); $configForm->removeElement('canonicalScheme'); $configForm->removeElement('recapthaPublicKey'); $configForm->removeElement('recapthaPrivateKey'); } else { //initializing current superadmin user $userTable = new Application_Model_DbTable_User(); $userMapper = Application_Model_Mappers_UserMapper::getInstance(); } if ($configForm->isValid($this->getRequest()->getParams())) { //proccessing language changing $selectedLang = $languageSelect->getValue(); if ($selectedLang != $this->_helper->language->getCurrentLanguage()) { $this->_helper->language->setLanguage($selectedLang); $languageSelect->setMultiOptions($this->_helper->language->getLanguages(false)); } if ($isSuperAdminLogged) { $newPass = $configForm->getElement('suPassword')->getValue(); $newLogin = $configForm->getElement('suLogin')->getValue(); $adminDataModified = false; // checking if there is new su password if (!empty($newPass) && md5($newPass) !== $loggedUser->getPassword()) { $loggedUser->setPassword($newPass); $adminDataModified = true; } // checking if su email has been changed if ($newLogin != $loggedUser->getEmail()) { $usersWithSuchEmail = $userTable->fetchAll($userTable->getAdapter()->quoteInto('email = ?', $newLogin)); if (!$usersWithSuchEmail->count()) { $loggedUser->setEmail($newLogin); $adminDataModified = true; } } if ($adminDataModified === true) { if (!$userMapper->save($loggedUser)) { unset($newLogin); } } } //$showMemberOnlyPages = intval($configForm->getElement('memPagesInMenu')->getValue()); //proccessing form to db $config = $configForm->getValues(); if (isset($newLogin)) { $config['adminEmail'] = $newLogin; } if ($config['smtpPassword'] === null && null === $this->getRequest()->getParam('smtpPassword', null)) { unset($config['smtpPassword']); } if ($config['inlineEditor'] !== $this->_helper->config->getConfig('inlineEditor')) { $this->_helper->cache->clean(false, false, array('Widgets_AbstractContent')); } $this->_configMapper->save($config); $this->_helper->flashMessenger->addMessage('Setting saved'); } else { if ($configForm->proccessErrors()) { $this->_helper->flashMessenger->addMessage('Some fields are wrong'); } } if (false !== ($actions = $this->_request->getParam('actions', false))) { $removeActions = array(); foreach ($actions as $action) { if (isset($action['delete']) && $action['delete'] === "true") { array_push($removeActions, $action['id']); continue; } Application_Model_Mappers_EmailTriggersMapper::getInstance()->save($action); } if (!empty($removeActions)) { Application_Model_Mappers_EmailTriggersMapper::getInstance()->delete($removeActions); } } } else { // loading config from db $currentConfig = $this->_configMapper->getConfig(); if (!isset($currentConfig['language'])) { $currentConfig['language'] = $this->_helper->language->getCurrentLanguage(); } if (is_array($currentConfig) && !empty($currentConfig)) { $configForm->setOptions($currentConfig); } } if ($isSuperAdminLogged) { $suadmin = Application_Model_Mappers_UserMapper::getInstance()->findByRole(Tools_Security_Acl::ROLE_SUPERADMIN); $suadminEmail = $suadmin->getEmail(); $suPassword = $suadmin->getPassword(); $configForm->getElement('suLogin')->setValue($suadminEmail); $configForm->getElement('suPassword')->setValue($suPassword); } $this->view->messages = $this->_helper->flashMessenger->getMessages(); $this->view->configForm = $configForm; }