/////////////////////////////////////////////////////////////////////// $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');
/** * Сообщение о блокировке проекта. * * @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; }
/** * Работы в портфолио. Утверждение/удаление записи * * @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; }
} 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"] = ''; } }