public function editAction() { $data = $this->getRequest()->getPost('data'); $id = $this->_getParam('id'); //check if cancel button is pressed if ($this->_formHelper->isCancel()) { //cancel form return $this->_formHelper->returnCancel($this->view->url(array('action' => 'index')), $this->translate('Action canceled')); } //create form object $form = new Translation_Form_Lang($data); //postback - save? if ($this->_formHelper->isSave()) { //check if valid if ($form->isValid()) { $values = $form->getValues(); //create entity object from submitted values, and save $lang = new Translation_Model_Lang($values); Translation_Model_LangMapper::getInstance()->save($lang); //save done, return success return $this->_formHelper->returnSuccess($this->view->url(array('action' => 'index')), $this->translate('Language saved.')); } else { //we have errors - return json or continue $this->_formHelper->returnError($form->getMessages()); } } elseif (!$this->_formHelper->getRequest()->isPost()) { //edit action if (isset($id) && $id > 0) { $lang = new Translation_Model_Lang(); if (!Translation_Model_LangMapper::getInstance()->find($id, $lang)) { throw new Exception("Lang not found"); } //fetch data $data = $lang->toArray(); //populate form with data $form->setData($data); } } $this->view->data = $data; }
/** * Save entity * * @param Translation_Model_Lang $lang */ public function save(Translation_Model_Lang $lang) { $data = array(); $data = $lang->toArray(); $id = $lang->get_id(); $selected_default_lang_id = Translation_Model_LangMapper::getInstance()->findByDefaultValue('yes'); if ($selected_default_lang_id == $id && $values['default'] != 'yes') { $data['default'] = 'yes'; } if (!isset($id) || $id <= 0) { unset($data['id']); $id = $this->_dbTable->insert($data); $lang->set_id($id); } else { $this->_dbTable->update($data, array('id = ?' => $id)); } /** * update default language */ if ($data['default'] == 'yes') { $this->_dbTable->update(array('default' => 'no'), array('id != ?' => $lang->get_id())); } }
/** * Configuration action */ public function configAction() { //read data from request $data = $this->getRequest()->getPost('data'); $inputHashChangePost = $this->_request->getParam('inputHashChangePost'); $inputHashChangeGet = $this->_request->getParam('inputHashChangeGet'); //check if cancel button is pressed if ($this->_formHelper->isCancel()) { //cancel form return $this->_formHelper->returnCancel($this->view->url(array('action' => 'index')), $this->translate('Action canceled')); } if ($this->getRequest()->getParam("type") == 'contact') { $module_name = "contact"; } else { if ($this->getRequest()->getParam("type") == 'newsletter') { $module_name = "newsletter"; } else { if ($this->getRequest()->getParam("type") == 'blog') { $module_name = "blog"; } else { throw new Exception("Contact module not found"); } } } //read contact module $module = new Application_Model_Module(); if (!Application_Model_ModuleMapper::getInstance()->findByCode($module_name, $module)) { throw new Exception("Contact module not found"); } $this->view->data = array('email' => $module->get_settings('email')); $this->view->data['type'] = $module_name; $this->view->emailTransportTypeOptions = Application_Model_Application::getEmailTransportTypeOptions(); //postback - save? if ($this->_formHelper->isSave()) { $formToEmails = new Contact_Form_ConfigToEmailsWrapper($data['email']['to_emails']); $formParameters = new Contact_Form_ConfigParameters($data['email']['parameters'], null, $data['email']['transport']); if ($module_name == 'contact') { $formEmail = new Contact_Form_ConfigEmail($data['email']); } elseif ($module_name == 'newsletter') { $formEmail = new Contact_Form_ConfigEmailNewsletter($data['email']); } elseif ($module_name == 'blog') { $formEmail = new Blog_Form_ConfigEmail($data['email']); } //check if valid if ($formEmail->isValid() && $formParameters->isValid() && $formToEmails->isValid()) { $data['email'] = $formEmail->getValues(); $data['email']['parameters'] = $formParameters->getValues(); $data['email']['to_emails'] = $formToEmails->getValues(); $lang = new Translation_Model_Lang(); if (!Translation_Model_LangMapper::getInstance()->findByCode(CURR_LANG, $lang)) { throw new Exception('No language for this code.'); } Translation_Model_TranslationMapper::getInstance()->save('mailtextRespondContactTranslationkey', $lang->get_id(), $data['email']['mailtext_respond_contact'], 'global'); $data['email']['mailtext_respond_contact'] = 'mailtextRespondContactTranslationkey'; Translation_Model_TranslationMapper::getInstance()->save('landingPageText', $lang->get_id(), $data['email']['landing_page_text'], 'global'); $data['email']['landing_page_text'] = 'landingPageText'; Translation_Model_TranslationMapper::getInstance()->save('subjectContactTranslationkey', $lang->get_id(), $data['email']['subject_contact'], 'global'); $data['email']['subject_contact'] = 'subjectContactTranslationkey'; //create module entity object $settings = $module->get_settings(); $settings['email'] = $data['email']; $module->set_settings(json_encode($settings)); $module->set_data(json_encode($module->get_data())); //new entity Application_Model_ModuleMapper::getInstance()->save($module); //save done, return success return $this->_formHelper->returnSuccess($this->view->url(array('action' => 'config', 'inputHashChangeGet' => $inputHashChangePost)), $this->translate('Configuration saved.')); } else { //we have errors - return json or continue $messages = $formEmail->getMessages(); $messages['parameters'] = $formParameters->getMessages(); $messages['to_emails'] = $formToEmails->getMessages(); $this->view->data = $data; $this->_formHelper->returnError($messages); } } if (isset($inputHashChangeGet) && $inputHashChangeGet != '') { $this->view->inputHashChange = $inputHashChangeGet; } else { $this->view->inputHashChange = "email-config"; } //country assign $countries = new Application_Model_Country(); $countries = Application_Model_CountryMapper::getInstance()->getAllCountries(CURR_LANG); $this->view->countries = $countries; $this->view->languages = Application_Model_TranslateMapper::getInstance()->getLanguages(); $this->view->fields = Contact_Form_Contact::getFields(); }