public function createAction() { $newsForm = new NewsCreateForm(); $request = $this->getRequest(); if ($request->isPost()) { $news = new News(); $news->setNewsAuthor($this->identity()); $news->setNewsContent(htmlspecialchars($request->getPost('news-content'))); $news->setNewsDate(new \DateTime('now')); $news->setNewsTitle($request->getPost('news-title')); $news->setNewsSource($request->getPost('news-source')); $news->setNewsType($request->getPost('news-type')); if (isset($request->getPost()['btn-publish'])) { $news->setNewsPublished(true); $this->getEntityManager()->persist($news); $this->getEntityManager()->flush(); $this->flashMessenger()->addSuccessMessage('Notícia Publicada com sucesso: ' . $news->getNewsTitle()); } elseif (isset($request->getPost()['btn-save'])) { $news->setNewsPublished(false); $this->getEntityManager()->persist($news); $this->getEntityManager()->flush(); $this->flashMessenger()->addInfoMessage('Notícia Salva com sucesso: ' . $news->getNewsTitle()); } $this->redirect()->toRoute('news'); } return new ViewModel(array('newsForm' => $newsForm)); }
/** * Add new News entry * @return array */ public function addAction() { //Get current user id and data from db $user = new Container('user'); $userId = $user->identity->getId(); $currentUser = $this->getObjectManager()->getRepository('Application\\Entity\\User')->findOneBy(array('id' => $userId)); //Prepare news object $news = new News(); //Create form $formManager = $this->serviceLocator->get('FormElementManager'); $form = $formManager->get('newsForm'); $form->setInputFilter(new Form\NewsFilter($this->getObjectManager())); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { //Update news information $news->setTitle($request->getPost('title')); $news->setText($request->getPost('text')); $news->setCreated(new \DateTime("now")); $news->setLastModified(new \DateTime("now")); $news->setUserId($userId); //Track activity $activity = new Activity(); $activity->setUserId($userId); $activity->setDescription('Removed News'); $activity->setUri($request->getUriString()); $activity->setQuery(var_export($request->getQuery(), true)); $activity->setPost(var_export($request->getPost(), true)); $activity->setObject(var_export($currentUser, true)); $activity->setCreated(new \DateTime("now")); $this->getObjectManager()->persist($activity); //Store updated news to db $this->getObjectManager()->persist($news); $this->getObjectManager()->flush(); //REDIRECT TO NEWS INDEX PAGE WHEN SAVED return $this->redirect()->toRoute('news'); } } return array('form' => $form); }
public function editAction() { $form = new \Admin\Form\NewsForm(); $id = (int) $this->params()->fromRoute('id', 0); if ($id > 0) { $model = $this->getObjectManager()->find($this->_modelName, $id); $form->setData($model->toArray()); $form->setAttribute('action', '/admin/' . $this->_modelAlias . '/edit/' . $id); $form->get('submit')->setAttribute('value', 'Edit'); $model->setUpdatedDate(new \DateTime()); $viewVariables['action'] = 'Edit'; } else { $model = new News(); $form->setAttribute('action', '/admin/' . $this->_modelAlias . '/add'); $form->get('submit')->setAttribute('value', 'Add'); $model->setUpdatedDate(new \DateTime()); $model->setCreatedDate(new \DateTime()); $viewVariables['action'] = 'Add'; } $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); $model->populate($request->getPost()); $model->setBody(stripslashes($model->getBody())); if ($form->isValid()) { $this->getObjectManager()->persist($model); $this->getObjectManager()->flush(); return $this->redirect()->toUrl('/admin/' . $this->_modelAlias); } } $viewVariables['form'] = $form; $viewVariables['model'] = $model; $this->_view->setTemplate('admin/' . $this->_modelAlias . '/edit'); $this->_view->setVariables($viewVariables); return $this->_view; }
/** * {@inheritDoc} */ public function setNewsAuthor($newsAuthor) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setNewsAuthor', array($newsAuthor)); return parent::setNewsAuthor($newsAuthor); }