/**
 * Изменение блокировки проекта.
 * 
 * @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;
}