/**
 * Сохранение комментария к работе в конкурсе
 * 
 * @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);
    }
}
示例#2
0
/**
 * Редактирование комментария.
 *
 * @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;
}