/** * List and edit translation * * @return \Zend\View\Model\ViewModel|array */ public function indexAction() { $translationForm = new Form\Translation(); $translationForm->prepareForm($this->getServiceLocator()->get('Config')); $translationForm->setAttribute('action', $this->url()->fromRoute('content/translation')); if ($this->getRequest()->isPost()) { $post = $this->getRequest()->getPost(); if (empty($post['source']) or empty($post['destination'])) { return $this->redirect()->toRoute('content/translation'); } $translator = new Translator(); foreach ($post['source'] as $sourceId => $source) { $translator->update(array('source' => $source), sprintf('id = %d', $sourceId)); if (!empty($post['destination'][$sourceId])) { $translator->setValue($sourceId, $post['destination'][$sourceId]); } } $translator->generateCache(); $this->flashMessenger()->addSuccessMessage('Translation saved !'); return $this->redirect()->toRoute('content/translation'); } $translator = new Translator(); return array('form' => $translationForm, 'values' => $translator->getValues()); }