<?php
namespace Phpmvc\Comment;
/**
* To attach comments-flow to a page or some content.
*
*/
class CommentController implements \Anax\DI\IInjectionAware
{
use \Anax\DI\TInjectable;
/**
* View all comments.
*
* @return void
*/
public function viewAction()
{
$comments = new \Phpmvc\Comment\CommentsInSession();
$comments->setDI($this->di);
$all = $comments->findAll();
$this->views->add('comment/comments', [
'comments' => $all,
]);
}
/**
* Add a comment.
*
* @return void
*/
public function addAction()
{
$isPosted = $this->request->getPost('doCreate');
if (!$isPosted) {
$this->response->redirect($this->request->getPost('redirect'));
}
$comment = [
'content' => $this->request->getPost('content'),
'name' => $this->request->getPost('name'),
'web' => $this->request->getPost('web'),
'mail' => $this->request->getPost('mail'),
'timestamp' => time(),
'ip' => $this->request->getServer('REMOTE_ADDR'),
];
$comments = new \Phpmvc\Comment\CommentsInSession();
$comments->setDI($this->di);
$comments->add($comment);
$this->response->redirect($this->request->getPost('redirect'));
}
/**
* Remove all comments.
*
* @return void
*/
public function removeAllAction()
{
$isPosted = $this->request->getPost('doRemoveAll');
if (!$isPosted) {
$this->response->redirect($this->request->getPost('redirect'));
}
$comments = new \Phpmvc\Comment\CommentsInSession();
$comments->setDI($this->di);
$comments->deleteAll();
$this->response->redirect($this->request->getPost('redirect'));
}
}