/** * Редактирование комментария. * * @param integer id комментария * @param string комментарий * * @return xajaxResponse */ function ChangeComment($cid, $comment) { 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'])) { return $objResponse; } $contest = new contest(0, $uid, is_emp(), FALSE, hasPermissions('projects')); // если пользователь не про или не верифицирован, то есть смысл проверить, может быть конкурс только для про или только для верифицированных $project = contest::getProjectByCommentID($cid); 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; } } if (!($offer = $contest->GetOffer($oid))) { return $objResponse; } $contest->pid = $offer['project_id']; $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->ChangeComment($cid, $comment)) { $objResponse->alert($error); } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('projects')); $html = reformat(stripslashes($stop_words->replace($comment)), 30, 0, 0, 1); $original = reformat(stripslashes($comment), 30, 0, 0, 1); $objResponse->call('comment.changed', $html, $original, dateFormat('[изменен: d.m.Y | H:i]', $comments[$i]['modified'])); } return $objResponse; }