Exemple #1
0
 public static function add($contentID, $comment = "", $replyUID = 0, $replyID = 0, $replyCommentID = 0)
 {
     if (!isset($_SESSION["user"]) || !$comment) {
         return false;
     }
     $comment = comments::ex_strip_tags($comment);
     $comment = trim(comments::bbcodes($comment));
     $insip = system::getClientIP();
     $userID = intval($_SESSION["user"]["userID"]);
     $replyUID = intval($replyUID);
     $replyCommentID = intval($replyCommentID);
     if (!$comment) {
         return false;
     }
     $replyCommentID = 0;
     $article = array();
     if ($replyCommentID && $replyUID && $_SESSION["user"]["userID"] != $replyUID) {
         $rusers_res = self::$db->query("SELECT * FROM `users` WHERE `userID`=? LIMIT 1", $replyUID);
         $article_res = self::$db->query("SELECT `title`,`type` FROM `content` WHERE `contentID`=? LIMIT 1", $contentID);
         $article = $article_res->fetch();
         $ruser = $rusers_res->fetch();
         $ruser["article_title"] = $article["title"];
         $ruser["article_returnPath"] = self::$routePath;
         $ruser["type"] = $article["type"];
         $ruser["commentID"] = $commentID;
         self::$mail->assign("data", $ruser);
         self::$mail->sendMail(TPL_PATH . "/mail/mailNotifyReply.tpl", $ruser["email"]);
     }
     self::$db->query("INSERT `comments` SET `contentID`=?, `userID`=?, `dt`=NOW(), `email`='?', `author`='?', `body`='?', `guest`='N', `ip`=INET_ATON('?'), `type`='?', `reply_to`=?", $contentID, $_SESSION["user"]["userID"], $_SESSION["user"]["email"], $_SESSION["user"]["nick"], $comment, $insip, self::$controllerCall, $replyCommentID);
     $commentID = self::$db->insert_id();
     self::$db->query("UPDATE `content` SET `comments_count`=`comments_count`+1 WHERE `contentID`=? AND `type`='?'", $contentID, self::$controllerCall);
     if (isset($_POST["quotedUID"]) && $_POST["quotedUID"]) {
         $qip = array_filter($_POST["quotedUID"], create_function("\$a", "return ( {$userID} == \$a ? false : true );"));
         $qip = array_diff($qip, array($replyUID));
         if ($qip) {
             $qip = array_map("intval", $qip);
             $qusers_res = self::$db->query("SELECT * FROM `users` WHERE `userID` IN (" . implode(",", $qip) . ")");
             if ($qusers_res->getNumRows()) {
                 if ($article) {
                     $article_res = self::$db->query("SELECT `title`,`type` FROM `content` WHERE `contentID`=? LIMIT 1", $contentID);
                     $article = $article_res->fetch();
                 }
                 $qusers = $qusers_res->fetchAll();
                 foreach ($qusers as $k => $v) {
                     $v["article_title"] = $article["title"];
                     $v["article_returnPath"] = self::$routePath;
                     $v["type"] = $article["type"];
                     $v["commentID"] = $commentID;
                     self::$mail->assign("data", $v);
                     self::$mail->sendMail(TPL_PATH . "/mail/mailNotifyQuote.tpl", $v["email"]);
                 }
             }
         }
     }
     self::$smarty->clearCurrentCache();
     system::redirect("/" . self::$routePath . "/#comment_{$commentID}");
     return $commentID;
 }