Exemple #1
0
///////////////////////////////////////////////////////////////////////
$skip_blocked = $user_obj->uid == get_uid(false) || hasPermissions('users') ? false : true;
$prj_prev = (int) portfolio::GetPrjNear($user_obj->uid, $prjid, -1, $skip_blocked);
$prj_next = (int) portfolio::GetPrjNear($user_obj->uid, $prjid, 1, $skip_blocked);
$action = trim($_GET['action']);
if ($action == 'delete') {
    $portf = new portfolio();
    if ($prjid) {
        $error .= $portf->DelPortf(get_uid(false), $prjid, hasPermissions('users'));
    }
    $pattern = "#(/users/[\\w_\\d]+/)viewproj\\.php\\?prjid=[0-9]+.*#";
    $locate_url = preg_replace($pattern, '$1', $_SERVER['REQUEST_URI']);
    header("location: {$locate_url}");
    exit;
}
$proj = portfolio::GetPrj($prjid, $uid);
$width = $height = 0;
if (!$proj || $proj['is_blocked'] == 't' && $uid != get_uid(false) && !hasPermissions('users')) {
    $fpath = '../';
    include ABS_PATH . '/404.php';
    exit;
} else {
    $spec_text = professions::GetProfName($proj['spec']);
    if ($proj['pict']) {
        $imgTitle = $proj['name'] . ' (' . $spec_text . ') - фри-лансер ' . $proj['uname'] . ' ' . $proj['usurname'] . ' [' . $proj['login'] . ']. ';
        $str = viewattach($proj['login'], $proj['pict'], 'upload', $file, -1, -1, 1048576, 0, 0, 'center', false, 1, $proj['name'], true, false, $imgTitle, $proj['wmode']);
    }
    //elseif ($proj['link'] && !$proj['descr']) header("Location: http://" . $proj['link']);
    $pathinfo = pathinfo($proj['pict']);
    $proj['pict_ext'] = strtolower($pathinfo['extension']);
    $js_file = array('banned.js');
Exemple #2
0
 /**
  * Сообщение о блокировке проекта.
  * 
  * @param int    $portfolio_id ID работы в портфолио
  * @param string $reason       причина
  *
  * @return @see messages::Add()
  */
 public function SendBlockedPortfolio($portfolio_id = 0, $reason = '')
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/portfolio.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     $portfolio = portfolio::GetPrj($portfolio_id);
     $f_user = new users();
     $f_user->GetUserByUID($portfolio['user_id']);
     $sName = $portfolio['name'] ? ' «' . $portfolio['name'] . '»' : '';
     $link = getAbsUrl('/users/' . $f_user->login . '/viewproj.php?prjid=' . $portfolio['id']);
     $message = "\n{$f_user->uname} {$f_user->usurname}!\n\nМодераторы нашего ресурса нашли вашу работу{$sName} в портфолио некорректной:\n\nПричина: " . $reason . "\n\n{$link}\n\nМы призываем вас впредь не публиковать подобных проектов, иначе модераторы лишат ваш аккаунт доступа к сайту.\n\nЭто сообщение было выслано автоматически, и ответ на него не будет рассматриваться.\n\nНадеемся на понимание, Команда Free-lance.ru.";
     self::Add(users::GetUid($err, 'admin'), $f_user->login, $message, '', 1);
 }
/**
 * Блокирование/разблокирование работы в портфолио
 * 
 * @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;
}
Exemple #4
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;
 }
Exemple #5
0
 }
 if (($project['pro_only'] == 't' && !$is_pro || $project['verify_only'] == 't' && !$is_verify) && $project['user_id'] != $_SESSION['uid'] && !hasPermissions('projects')) {
     header('Location: ' . getFriendlyURL('project', $project['id']));
     exit;
 }
 if ((int) $project['exec_id'] > 0) {
     header('Location: ' . getFriendlyURL('project', $project['id']));
     exit;
 }
 if (($answers->offers || hasPermissions('projects') || is_emp() || $is_pro && $_SESSION['is_pro_new'] == 'f' || $project['kind'] == 2 || $project['kind'] == 7) && !$project['is_blocked'] && $project['closed'] != 't' || is_pro()) {
     if ($project['kind'] != 2 && $project['kind'] != 7) {
         if ($PDA) {
             for ($i = 1; $i <= 3; ++$i) {
                 if ($_POST["ps_check_work_{$i}"] && $_POST["ps_work_{$i}_id"] > 0) {
                     $portfolio = new portfolio();
                     $work = $portfolio->GetPrj(intval($_POST["ps_work_{$i}_id"]));
                     if ($work) {
                         $_POST["ps_work_{$i}_link"] = trim($work['link']);
                         $_POST["ps_work_{$i}_name"] = trim($work['name']);
                         $_POST["ps_work_{$i}_pict"] = trim($work['pict']);
                         $_POST["ps_work_{$i}_prev_pict"] = trim($work['prev_pict']);
                     }
                     unset($work);
                 } else {
                     $_POST["ps_work_{$i}_id"] = '';
                     $_POST["ps_work_{$i}_link"] = '';
                     $_POST["ps_work_{$i}_name"] = '';
                     $_POST["ps_work_{$i}_pict"] = '';
                     $_POST["ps_work_{$i}_prev_pict"] = '';
                 }
             }