/** * Добавление комментария. * * @param integer id предложения * @param string комментарий * @param integer id комментария на который дается ответ или 0, если комментарий первого уровня вложенности * @param integer уровень вложенности комментария * * @return xajaxResponse */ function CreateComment($oid, $comment, $reply, $level) { global $contest, $stop_words; session_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $objResponse = new xajaxResponse(); if (!trim($comment)) { $objResponse->alert('Комментарий не может быть пустым'); return $objResponse; } if (!($uid = $_SESSION['uid'])) { $objResponse->call('comment.reset'); $objResponse->alert('Сначала вам необходимо авторизоваться'); return $objResponse; } if (!($offer = contest::GetOfferRow($oid))) { $objResponse->call('comment.reset'); $objResponse->alert('Несуществующее предложение'); return $objResponse; } $contest = new contest($offer['project_id'], $uid, is_emp(), FALSE, hasPermissions('projects')); // если пользователь не про или не верифицирован, то есть смысл проверить, может быть конкурс только для про или только для верифицированных $prj = new projects(); $project = $prj->GetPrjCust($offer['project_id']); if ((!is_pro() || !is_verify()) && $project['user_id'] != get_uid() && !hasPermissions('projects')) { if ($project['pro_only'] == 't' && !is_pro()) { $objResponse->call('comment.reset'); $objResponse->alert('Данная функция доступна только пользователям с аккаунтом PRO.'); return $objResponse; } elseif ($project['verify_only'] == 't' && !is_verify()) { $objResponse->call('comment.reset'); $objResponse->alert('Данная функция доступна только верифицированным пользователям.'); return $objResponse; } } $offer = $contest->GetOffer($oid); $comment = change_q_x(antispam(substr(rtrim(ltrim($comment, "\r\n")), 0, 5000)), false, true, 'b|br|i|p|ul|li|cut|h[1-6]{1}', false, false); if ($error = $contest->CreateComment($oid, $comment, $reply)) { $objResponse->call('comment.reset'); $objResponse->alert($error); } else { define('FUNCTIONS_ONLY', TRUE); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('projects')); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/contest.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php'; $contest->GetOffer($oid); if ($contest->offer['user_id'] != $uid) { //$smail = new smail; //$smail->ContestNewComment($uid, $contest->offer['id']); } $contest->is_owner = $offer['owner_id'] == $uid; $comment = $contest->GetComment($contest->new_cid); $comment = array($comment); $c_blocked = $contest->offer['comm_blocked'] == 't' && $uid != $contest->offer['user_id'] && $uid != $contest->offer['owner_id']; $objResponse->call('comment.added', $comment[0]['id'], comments($contest->offer['project_id'], '', $comment, $c_blocked, FALSE, $level)); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; } return $objResponse; }