/** * Устанавливает поля в форме удаления сущностей * * @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); }