/** * Сохранение комментария к работе в конкурсе * * @param object $objResponse xajaxResponse * @param string $rec_id идентификатор записи * @param string $rec_type тип записи * @param array $aForm массив данных * @param string $sDrawFunc имя функции для выполнения после сохранения */ function _admEditContestComSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '') { $alert = array(); $comment = $aForm['msg']; if (!trim($comment)) { $alert[1] = 'Комментарий не может быть пустым'; } if (!$alert) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php'; $contest = new contest(0, $uid, is_emp(), false, true); $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); $sReason = _parseReason($aForm['user_id'], $aForm['adm_edit_text']); $contest->ChangeComment($rec_id, $comment); messages::contestComModifiedNotification($aForm['project_id'], $aForm['offer_id'], $rec_id, $aForm['login'], $aForm['uname'], $aForm['usurname'], $sReason); $content_id = user_content::MODER_CONTEST_COM; _admEditAfterAll($objResponse, $content_id, $rec_id, $rec_type, $sDrawFunc, $aForm); } else { _setErrors($objResponse, $alert, array(1 => 'msg'), $sDrawFunc); } }
/** * Редактирование комментария. * * @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; }