/** * Работы в портфолио. Утверждение/удаление записи * * @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 resolvePortfolio($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_PORTFOLIO, $stream_id); if ($sRecId) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/portfolio.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/admin_log.php'; $portfolio = portfolio::GetPrj($rec_id); $bRet = true; $objUser = new users(); $objUser->GetUserByUID($from_id); $sObjName = $portfolio['name']; $sObjLink = '/users/' . $objUser->login . '/viewproj.php?prjid=' . $portfolio['id']; if ($action == 1 && $portfolio['is_blocked'] == 't') { portfolio::UnBlocked($rec_id); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PORTFOLIO_UNBLOCK, $from_id, $rec_id, $sObjName, $sObjLink, 0, '', 0, ''); } elseif ($action == 2 && $portfolio['is_blocked'] != 't') { $sReason = 'Содержит запрещенную информацию'; $sBlockId = portfolio::Blocked($rec_id, $reason, 0, $_SESSION['uid'], true); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PORTFOLIO_BLOCK, $from_id, $rec_id, $sObjName, $sObjLink, 0, '', 0, $sReason, $sBlockId); } $GLOBALS['DB']->update('portfolio', array('moderator_status' => $user_id), 'id = ?i', $rec_id); } return $bRet; }
/** * Блокирование/разблокирование работы в портфолио * * @param int $portfolio_id ID работы в портфолио * @param string $reason причина * @param int $reason_id ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 27) * @param string $reason_name Краткое описание причины действия (из селекта) для лога админских действий * @return object xajaxResponse */ function BlockedPortfolio($portfolio_id, $reason, $reason_id = null, $reason_name = '') { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('users')) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/portfolio.php"; $portfolio_id = intval($portfolio_id); $portfolio = portfolio::GetPrj($portfolio_id); if ($portfolio) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $objUser = new users(); $objUser->GetUserByUID($portfolio['user_id']); // лог админских действий $sObjName = $portfolio['name']; $sObjLink = '/users/' . $objUser->login . '/viewproj.php?prjid=' . $portfolio['id']; $reason_id = $reason_id ? $reason_id : 0; $reason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $reason); $reason = change_q($reason, FALSE, 0, TRUE); $user_id = $portfolio['user_id']; if ($portfolio['is_blocked'] == 't') { portfolio::UnBlocked($portfolio_id); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PORTFOLIO_UNBLOCK, $user_id, $portfolio_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason); $objResponse->assign("portfolio-block-{$portfolio_id}", 'innerHTML', ' '); $objResponse->assign("portfolio-block-{$portfolio_id}", 'style.display', 'none'); $objResponse->assign("portfolio-button-{$portfolio_id}", 'innerHTML', '<a class="admn" href="javascript:void(0);" onclick="banned.blockedPortfolio(' . $portfolio_id . ')">Заблокировать</a>'); } else { $sBlockId = portfolio::Blocked($portfolio_id, $reason, $reason_id, $_SESSION['uid']); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PORTFOLIO_BLOCK, $user_id, $portfolio_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $sBlockId); $reason = reformat($reason, 24, 0, 0, 1, 24); $html = BlockedPortfolioHTML($reason, $_SESSION['login'], "{$_SESSION['name']} {$_SESSION['surname']}"); $objResponse->assign("portfolio-block-{$portfolio_id}", 'innerHTML', $html); $objResponse->assign("portfolio-block-{$portfolio_id}", 'style.display', 'block'); $objResponse->assign("portfolio-button-{$portfolio_id}", 'innerHTML', '<a class="admn" href="javascript:void(0);" onclick="banned.unblockedPortfolio(' . $portfolio_id . ')">Разблокировать</a>'); } } else { $objResponse->alert('Несуществующее предложение'); } } return $objResponse; }