public function languagesAction() { /* * Build the add form. */ $config = Zend_Registry::get('config'); $languages = Model_Language::getAllLanguages(); /* * Turn the language list into something more Zend_Form friendly. */ foreach ($languages as $language) { $languageList[$language->name] = $language->name; } $form = new Zend_Form(); $form->setMethod('post'); $name = $form->createElement('text', 'name'); $name->setLabel(ucfirst($this->view->translate->_('name'))); $name->setRequired(true); $name->addValidator('alnum'); $baseLanguageName = $form->createElement('select', 'baseLanguageName'); $baseLanguageName->setLabel(ucfirst($this->view->translate->_('base language'))); $baseLanguageName->addMultiOptions($languageList); $baseLanguageName->setRequired(true); $form->addElement($name); $form->addElement($baseLanguageName); $form->addElement('submit', 'submit', array('label' => $this->view->translate->_('Submit'))); /* * Process form submission. */ if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { /* * Add the language. */ try { $language = Model_Language::addLanguage($form->getValue('name'), $form->getValue('baseLanguageName')); $this->view->statusMessage = $this->view->translate->_('Language added.'); $languages = Model_Language::getAllLanguages(); } catch (Exception $e) { $this->view->errorMessage = $this->view->translate->_('Unable to add language.') . ' ' . $e->getMessage(); } } else { $this->view->errorMessage = $this->view->translate->_('Please completely fill out the configuration form.'); } $form->populate($formData); } $this->view->pageTitle = $this->view->translate->_('Languages'); $this->view->headTitle($this->view->translate->_('Languages')); $this->view->languages = $languages; $this->view->form = $form; $this->view->config = $config; }