示例#1
0
/**
 * Устанавливает поля в форме удаления сущностей
 * 
 * @param  string $sId составной уникальный ID сущности
 * @param  string $sDrawFunc имя функции для выполнения после сохранения
 * @param  string $sParams JSON кодированные дополнительные параметры
 * @return xajaxResponse 
 */
function setDelReasonForm($sId = '', $sDrawFunc = '', $sParams = '')
{
    session_start();
    $objResponse = new xajaxResponse();
    $sUniqId = "delreason_{$sId}";
    $aParams = _jsonArray($sParams);
    $sReasonText = '';
    list($s_content_id, $s_rec_id, $s_rec_type) = explode('_', $sId);
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/permissions.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/user_content.php";
    $aPermissions = permissions::getUserPermissions($_SESSION['uid']);
    $user_content = new user_content($_SESSION['uid'], $aPermissions);
    if (!$user_content->hasContentPermissions($s_content_id)) {
        if ($sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2') {
            // удаление в потоках
            $sHtml = _parsePermissionsDenied($objResponse);
            $objResponse->script("\$('{$aParams['stream_id']}').contentWindow.\$('my_div_all').set('html', '{$sHtml}')");
        }
        return $objResponse;
    }
    if ($sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2') {
        // удаление в потоках
        if (!$user_content->checkContent($s_content_id, $aParams['stream_id'], $s_rec_id)) {
            $objResponse->alert("Пользователь удалил или изменил данные.\nЛибо запись заблокирована.");
            if ($sDrawFunc == 'stream0') {
                $objResponse->script("\$('{$aParams['stream_id']}').contentWindow.user_content.getContents();");
            } else {
                $objResponse->script("\$('{$aParams['stream_id']}').contentWindow.\$('my_div_content_{$sId}').destroy();");
                $objResponse->script("\$('{$aParams['stream_id']}').contentWindow.user_content.spinner.hide();");
            }
            return $objResponse;
        }
    }
    $s_nActId = user_content::getReasonGroup($s_content_id, $s_rec_type);
    $sSelectOptions = _getAdminActionReasonOptions($s_nActId, $aCurrBan['reason']);
    $objResponse->script("banned.banUid = '{$sUniqId}';");
    $objResponse->script("banned.buffer['{$sUniqId}'].act_id={$s_nActId};");
    $objResponse->script("banned.buffer['{$sUniqId}'].customReason[{$s_nActId}]='{$sCustomReason}';");
    $sBanDiv = '<div id="bfrm_div_sel_' . $sUniqId . '"><select id="bfrm_sel_' . $sUniqId . '"  class="b-select__select b-select__select_width_full" name="bfrm_sel_' . $sUniqId . '" onchange="banned.setDelReason(\'' . $sUniqId . '\');">' . $sSelectOptions . '</select></div>';
    $objResponse->assign('delreason_div_select', 'innerHTML', $sBanDiv);
    $sBanDiv = '<textarea id="bfrm_' . $sUniqId . '" name="bfrm_' . $sUniqId . '" cols="" rows="" class="b-textarea__textarea b-textarea__textarea_height_50">' . $sReasonText . '</textarea>';
    $objResponse->assign('delreason_div_textarea', 'innerHTML', $sBanDiv);
    $sBanDiv = '<a id="ban_btn" href="javascript:void(0);" class="b-button b-button_flat b-button_flat_green" onclick="banned.commit(banned.banUid,$(\'bfrm_\'+banned.banUid).get(\'value\'))">Сохранить</a>
        <span class="b-buttons__txt b-buttons__txt_padleft_10">или</span>
        <a href="javascript:void(0);" class="b-buttons__link b-buttons__link_dot_c10601" onclick="banned.commit(banned.banUid,(banned.buffer[banned.banUid].action=\'close\'));$(\'ov-notice22-r\').toggleClass(\'b-shadow_hide\');return false;">закрыть, не сохраняя</a>';
    $objResponse->assign('delreason_ban_btn', 'innerHTML', $sBanDiv);
    switch ($s_content_id) {
        case user_content::MODER_BLOGS:
        case user_content::MODER_COMMUNITY:
            if ($s_rec_type == 1) {
                $sH4 = 'Причина блокировки';
            } else {
                $sH4 = 'Причина удаления';
            }
            break;
        case user_content::MODER_PRJ_OFFERS:
            if ($s_rec_type == 7) {
                $sH4 = 'Причина удаления';
            } else {
                $sH4 = 'Причина блокировки';
            }
            break;
        case user_content::MODER_PROJECTS:
        case user_content::MODER_PRJ_DIALOG:
        case user_content::MODER_PORTFOLIO:
        case user_content::MODER_SDELAU:
            $sH4 = 'Причина блокировки';
            break;
        case user_content::MODER_MSSAGES:
        case user_content::MODER_ART_COM:
        case user_content::MODER_PROFILE:
        case user_content::MODER_CONTEST_COM:
        case user_content::MODER_PORTF_CHOISE:
        default:
            $sH4 = 'Причина удаления';
            break;
    }
    $objResponse->assign('delreason_d4', 'innerHTML', $sH4);
    $objResponse->script("\$('ov-notice22-r').toggleClass('b-shadow_hide');");
    $objResponse->script("\$('ov-notice22-r').setStyle('display', '');");
    $objResponse->script("\$('ban_btn').removeClass('b-button_rectangle_color_disable');");
    $objResponse->script("\$('ban_btn').addClass('b-button_rectangle_color_green');");
    return $objResponse;
}
/**
 * Перемещает проект в вакансии
 * @global type $user_content
 * @param type $sid
 * @return \xajaxResponse
 */
function makeVacancy($stream_id = '', $sid = '')
{
    global $user_content;
    $objResponse = new xajaxResponse();
    list($content_id, $rec_id, $rec_type) = explode('_', $sid);
    if ($user_content->hasContentPermissions($content_id)) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smtp.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/template.php';
        $project = new_projects::initData(new_projects::getPrj($rec_id));
        if ($project->isAllowMovedToVacancy()) {
            // Делаем проект вакансией
            $project->movedToVacancy();
            $user_content->markProjectBlocked($stream_id, $rec_id);
            // Отсылаем письмо заказчику о переносе его проекта в раздел вакансии
            $mail = new smtp();
            $mail->subject = 'Ваш проект перенесен в раздел Вакансии и ожидает публикации';
            // заголовок письма
            $mail->message = Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/projects/makevacancy.tpl.php', array('title' => $project->_project['name'], 'project_id' => $project->_project['id']));
            $mail->recipient = "{$project->_project['email']} <{$project->_project['email']}>";
            // получатель
            $mail->SmtpMail('text/html');
        }
        $objResponse->script('user_content.spinner.hide(true);');
        $objResponse->script("\$('my_div_content_{$sid}').destroy();");
        $objResponse->script('user_content.spinner.resize();');
    } else {
        _parsePermissionsDenied($objResponse);
    }
    return $objResponse;
}
/**
 * Захватывает сущности для модерирования
 * 
 * @param  int $content_id идентификатор сущности из admin_contents
 * @param  string $stream_id идентификатор потока
 * @return object xajaxResponse
 */
function chooseContent($content_id = 0, $stream_id = '')
{
    global $user_content;
    $response = array();
    if ($user_content->hasContentPermissions($content_id)) {
        $aStream = array();
        $checkStream = $user_content->checkStream($content_id, $stream_id, $_SESSION['uid'], $aStream);
        if ($checkStream) {
            $nLimit = $content_id == user_content::MODER_MSSAGES ? user_content::MESSAGES_PER_PAGE : user_content::CONTENTS_PER_PAGE;
            $user_content->chooseContent($content_id, $stream_id, $aStream['stream_num'], $nLimit);
            $response['success'] = true;
        } else {
            $response['success'] = false;
            $response['div'] = iconv('CP1251', 'UTF-8', _loseStream($objResponse));
        }
    } else {
        $response['success'] = false;
        $response['div'] = iconv('CP1251', 'UTF-8', _parsePermissionsDenied($objResponse));
    }
    echo json_encode($response);
}