wikipoints/ground/controllers/CommentsController.php

74 lines
1.9 KiB
PHP

<?php
class CommentsController extends Controller
{
static function actionAdd()
{
if (!App::$user ||
!isset($_POST['parentType']) ||
!isset($_POST['parentId']) ||
!isset($_POST['answerTo']) ||
!isset($_POST['text'])) {
App::error404();
}
if (trim($_POST['text']) == '') {
App::redirect('/' . $_POST['parentType'] . '/' . $_POST['parentId']);
}
$text = str_replace(array('<', '>'), array('&lt;', '&gt;'), $_POST['text']);
$html = strip_tags($_POST['text']);
$html = str_replace(array('<', '>', "'"), array('&lt;', '&gt;', '&prime;'), $html);
$html = Markdown::liteProcessing($html);
$html = nl2br($html);
$comment = new Comment(array(
'userId' => App::$user->id,
'parentType' => ($_POST['parentType'] == 'article') ? 'article' : 'point',
'parentId' => (int) $_POST['parentId'],
'answerTo' => (int) $_POST['answerTo'],
'addDate' => time(),
'text' => $text,
'html' => $html,
));
$comment->save();
if ($_POST['parentType'] == 'article') {
$ownerId = Article::model()->getByPK((int) $_POST['parentId'])->author;
} else {
$ownerId = Point::model()->getByPK((int) $_POST['parentId'])->author;
}
if ($ownerId != App::$user->id) {
Notifications::model()->add(array(
'userId' => $ownerId,
'fromUserId' => App::$user->id,
'objectId' => $comment->id,
'type' => ($_POST['parentType'] == 'article') ? Notifications::typeNewCommentArticle : Notifications::typeNewCommentPoint,
'date' => time(),
));
}
App::redirect('/' . $_POST['parentType'] . '/' . $_POST['parentId'] . '#comment' . $comment->id);
}
static function actionDel()
{
if (!App::$user || !(int)App::getParam('id')) {
App::error404();
}
$id = (int)App::getParam('id');
$comment = Comment::model()->getByPK($id);
if($comment->id && $comment->userId == App::$user->id) {
$comment->delete($id);
}
App::redirect('/'.$comment->parentType.'/'.$comment->parentId);
}
}