/** * Рексизиты финансов. Утверждение/удаление записи * * @param string $stream_id идентификатор потока * @param int $user_id идентификатор модератора * @param int $from_id идентификатор пользователя * @param int $rec_id идентификатор записи * @param int $rec_type тип записи * @param int $action действие: 1 - утверждено, 2 - удалено * @param string $is_sent было ли отправлено уведомление * @param string $reason причина удаления */ function resolveSbrReqv($stream_id = '', $user_id = 0, $from_id = 0, $rec_id = 0, $rec_type = 0, $action = 1, $is_sent = '', $reason = '') { $bRet = false; $sQuery = 'UPDATE moderation SET moder_num = ?i, status = ?i WHERE rec_id = ?i AND rec_type = ?i AND stream_id = ? RETURNING rec_id'; $sRecId = $GLOBALS['DB']->val($sQuery, $this->nResolveCnt, $action, $rec_id, self::MODER_SBR_REQV, $stream_id); if ($sRecId) { $data = $GLOBALS['DB']->row("\n SELECT \n sr.*,\n COALESCE(srb.src_id::boolean, FALSE) AS is_blocked \n FROM sbr_reqv AS sr\n LEFT JOIN sbr_reqv_blocked AS srb ON srb.src_id = sr.user_id\n WHERE sr.user_id = ?i\n LIMIT 1\n ", $rec_id); if ($data) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Finance/FinanceSmail.php'; $finSmail = new FinanceSmail(); $bRet = true; if ($action == 1 && $data['is_blocked'] == 't') { //разблокируем если было блокированно $GLOBALS['DB']->query("\n DELETE FROM sbr_reqv_blocked \n WHERE src_id = ?i\n ", $rec_id); //Обновляем статус на "Проверенные данные" if ($GLOBALS['DB']->update('sbr_reqv', array('validate_status' => 2), 'user_id = ?i', $rec_id)) { $finSmail->financeUnBlocked($rec_id); } } elseif ($action == 2 && $data['is_blocked'] != 't') { //блокируем $sBlockId = $GLOBALS['DB']->val("\n INSERT INTO sbr_reqv_blocked (\n src_id, \n admin, \n reason, \n reason_id, \n blocked_time) \n VALUES(?i, ?i, ?, ?i, NOW()) RETURNING id\n ", $rec_id, $user_id, $reason, 0); //Обновляем статус на "Отклоненные данные" if ($GLOBALS['DB']->update('sbr_reqv', array('validate_status' => -1), 'user_id = ?i', $rec_id)) { $finSmail->financeBlocked($rec_id, $reason); } } } } return $bRet; }
/** * Удаление сущности * * @param string $sId составной уникальный ID сущности * @param int $sUid UID сздателя сущности * @param string $sReason причина удаления * @param string $sDrawFunc имя функции для выполнения после сохранения * @param string $sParams JSON кодированные дополнительные параметры * @return xajaxResponse */ function setDeleted($sId = '', $sUid = 0, $sReason = '', $sDrawFunc = '', $sParams = '') { session_start(); $objResponse = new xajaxResponse(); list($rec_content_id, $rec_id, $rec_type) = explode('_', $sId); $aParams = _jsonArray($sParams); if ($sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2') { // удаление в потоках resolveContent($aParams['content_id'], $aParams['stream_id'], $sId, 2, $sUid, $aParams['content_cnt'], $aParams['status'], $aParams['is_sent'], $sReason, $objResponse); } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/permissions.php'; $aPermissions = permissions::getUserPermissions($_SESSION['uid']); $user_content = new user_content($_SESSION['uid'], $aPermissions); $bSend = false; if ($user_content->hasContentPermissions($rec_content_id)) { if (strpos($sReason, '%USERNAME%') !== false && $sUid) { $user = new users(); $user->GetUserByUID($sUid); $sReason = str_replace('%USERNAME%', $user->uname . ' ' . $user->usurname, $sReason); } switch ($rec_content_id) { case user_content::MODER_MSSAGES: switch ($sDrawFunc) { // дейсвие из переписки между юзерами case 'updateLetter': updateLetter($rec_id, $sUid, 2, $sReason, $objResponse); break; case 'delLetter': // в потоке - важно чтобы поток не был потерян либо перехвачен // в потоке - важно чтобы поток не был потерян либо перехвачен default: delLetter($aParams['stream_id'], $sUid, $rec_id . '_' . $rec_type, $sReason, $objResponse); break; } break; case user_content::MODER_BLOGS: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php'; if ($rec_type == 1) { // post blogs::MarkDeleteBlog($_SESSION['uid'], $rec_id, $group, $base, $thread_id, $page, $msg, 0, $sReason); } else { // comment blogs::MarkDeleteMsg($_SESSION['uid'], $rec_id, getRemoteIP(), $err, 0, $sReason); } $bSend = true; break; case user_content::MODER_TSERVICES: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/tservices/tservices.php'; $tserviceObj = new tservices(); if ($tserviceObj->Blocked($rec_id, $_SESSION['uid'], $sReason)) { $objResponse->script("\$('ov-notice22-r').toggleClass('b-shadow_hide');"); $objResponse->script("\$\$('#__tservices_blocked,#__tservices_unblocked').toggleClass('b-button_hide');"); } break; case user_content::MODER_SBR_REQV: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Finance/FinanceSmail.php'; if (sbr_meta::reqvBlocked($rec_id, $_SESSION['uid'], $sReason, 0, $_SESSION['login'])) { $finSmail = new FinanceSmail(); $finSmail->financeBlocked($rec_id, $sReason); $objResponse->script("\$('ov-notice22-r').toggleClass('b-shadow_hide');"); $objResponse->script("\$\$('#__finance_blocked,#__finance_unblocked').toggleClass('b-button_hide');"); } break; default: break; } if ($bSend) { $user_content->sendNotification($_SESSION['uid'], $sUid, $rec_content_id, $rec_id, $rec_type, 2, $sReason); $objResponse->script('window.location.reload(true)'); } } return $objResponse; } $objResponse->script("delete banned.buffer['delreason_{$sId}'];"); $objResponse->script("parent.\$\$(\"div[id^='ov-notice']\").setStyle('display', 'none');"); $objResponse->script("parent.\$('ov-notice22-r').toggleClass('b-shadow_hide');"); return $objResponse; }