/** * This shows the create post form and also store the related post */ public function editAction($id) { $usersId = $this->session->get('identity'); if (!$usersId) { $this->flashSession->error('You must be logged first'); return $this->response->redirect(); } /** * Find the post using get */ $parameters = array("id = ?0 AND (users_id = ?1 OR 'Y' = ?2)", "bind" => array($id, $usersId, $this->session->get('identity-moderator'))); $post = Posts::findFirst($parameters); if (!$post) { $this->flashSession->error('The discussion does not exist'); return $this->response->redirect(); } if ($this->request->isPost()) { if (!$this->checkTokenPost()) { return $this->response->redirect(); } $title = $this->request->getPost('title', 'trim'); $content = $this->request->getPost('content'); $post->categories_id = $this->request->getPost('categoryId'); $post->title = $title; $post->slug = Slug::generate($title); $post->content = $content; $post->edited_at = time(); $usersId = $this->session->get('identity'); if ($post->users_id != $usersId) { /** @var Users $user */ $user = Users::findFirstById($usersId); if ($user) { $user->increaseKarma(Karma::MODERATE_POST); $user->save(); } } if ($post->save()) { return $this->response->redirect('discussion/' . $post->id . '/' . $post->slug); } foreach ($post->getMessages() as $message) { $this->flash->error($message); } } else { $this->tag->displayTo('id', $post->id); $this->tag->displayTo('title', $post->title); $this->tag->displayTo('content', $post->content); $this->tag->displayTo('categoryId', $post->categories_id); } $this->tag->setTitle('Edit Tip: ' . $this->escaper->escapeHtml($post->title)); $parametersCategory = array('order' => 'name'); $this->view->categories = Categories::find($parametersCategory); $this->view->post = $post; }
/** * @dataProvider validUrlProvider * @param string $input * @param string $expected */ public function testShouldConvertNonAsciiStringToValidUrl($input, $expected) { $this->assertEquals($expected, $this->slug->generate($input)); }