Beispiel #1
0
 /**
  * Работы в портфолио. Утверждение/удаление записи
  * 
  * @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;
 }
Beispiel #2
0
/**
 * Блокирование/разблокирование работы в портфолио
 * 
 * @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;
}