/** * Изменение блокировки проекта. * * @param int $project_id ID проекта * @param int $act_id ID нового действия (admin_actions) * @param int $src_id ID исходного действия (projects_blocked) * @param string $reason причина * @param int $reason_id ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 9) * * @return object xajaxResponse */ function updatePrjBlock($project_id, $act_id, $src_id, $reason = '', $reason_id = null) { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('projects')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $projects = new projects(); $project = $projects->GetPrjCust($project_id); $sObjLink = '/projects/?pid=' . $project_id; // лог админских действий $reason_id = $reason_id ? $reason_id : null; $reason = str_replace('%USERNAME%', $project['uname'] . ' ' . $project['usurname'], $reason); $reason = change_q($reason, false, 0, true); if ($act_id == 10 && $src_id) { // разблокируем проект $projects->UnBlocked($project_id); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, 10, $project['user_id'], $project_id, $project['name'], $sObjLink, 0, '', $reason_id, $reason); // так как появилось новое действие в логе? $objResponse->script('window.location="/siteadmin/admin_log/?site=proj";'); } elseif ($act_id == 9 && $src_id) { // редактируем текущую блокировку в projects_blocked, admin_log обновится триггером admin_log::updateProjBlock($src_id, $reason, $reason_id); $reason = reformat($project['blocked_reason'], 24, 0, 0, 1, 24); $objResponse->script('window.location.reload(true)'); } elseif ($act_id == 9 && !$src_id) { // блокируем проект $sBlockId = $projects->Blocked($project_id, $reason, $reason_id, $_SESSION['uid']); $project = $projects->GetPrjCust($project_id); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_PROJ, 9, $project['user_id'], $project_id, $project['name'], $sObjLink, 0, '', $reason_id, $reason, $sBlockId); // так как появилось новое действие в логе? $objResponse->script('window.location="/siteadmin/admin_log/?site=proj";'); } } return $objResponse; }