/** * Edit layout * * @return \Zend\View\Model\ViewModel */ public function editAction() { $layoutId = $this->getRouteMatch()->getParam('id', null); $layoutModel = Layout\Model::fromId($layoutId); if (empty($layoutId) or empty($layoutModel)) { return $this->redirect()->toRoute('development/layout'); } $layoutForm = new LayoutForm(); $layoutForm->setAttribute('action', $this->url()->fromRoute('development/layout/edit', array('id' => $layoutId))); $layoutForm->loadValues($layoutModel); if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost()->toArray(); $layoutForm->setData($data); if (!$layoutForm->isValid()) { $this->flashMessenger()->addErrorMessage('Can not save layout'); $this->useFlashMessenger(); } else { $layoutModel->setName($layoutForm->getValue('name')); $layoutModel->setIdentifier($layoutForm->getValue('identifier')); $layoutModel->setDescription($layoutForm->getValue('description')); $layoutModel->setContent($layoutForm->getValue('content')); $layoutModel->save(); $this->flashMessenger()->addSuccessMessage('This layout has been saved'); return $this->redirect()->toRoute('development/layout/edit', array('id' => $layoutId)); } } return array('form' => $layoutForm, 'layoutId' => $layoutId); }