/** * Изменение блокировки предложения фрилансера. * * @param int $offer_id ID предложения фрилансера * @param int $act_id ID нового действия (admin_actions) * @param int $src_id ID исходного действия (в данном случае равен $obj_id или 0 - просто индикатор) * @param string $reason причина * @param int $reason_id ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 13) * * @return object xajaxResponse */ function updateOfferBlock($offer_id, $act_id, $src_id, $reason = '', $reason_id = null) { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('projects')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php'; $frl_offers = new freelancer_offers(); $offer_id = intval($offer_id); $offer = $frl_offers->getOfferById($offer_id); if ($offer) { $objUser = new users(); $objUser->GetUserByUID($offer['user_id']); $sObjName = $offer['title']; $sObjLink = ''; // нет ссылки на конкретное предложение $reason_id = $reason_id ? $reason_id : 0; $reason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $reason); $reason = change_q($reason, false, 0, true); if ($act_id == 14 && $src_id) { // разблокируем предложение $update = array('is_blocked' => 'f', 'reason' => '', 'reason_id' => 0, 'admin' => 0); $frl_offers->Update($offer_id, $update); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_OFFER, 14, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason); // так как появилось новое действие в логе $objResponse->script('window.location="/siteadmin/admin_log/?site=offer";'); } elseif ($act_id == 13 && $src_id) { // редактируем текущую блокировку предложения admin_log::updateOfferBlock($src_id, $reason, $reason_id); $objResponse->script('window.location.reload(true)'); } elseif ($act_id == 13 && !$src_id) { // блокируем предложение $update = array('is_blocked' => 't', 'reason' => $reason, 'reason_id' => $reason_id, 'admin' => $_SESSION['uid']); $frl_offers->Update($offer_id, $update); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_OFFER, 13, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $offer_id); // так как появилось новое действие в логе $objResponse->script('window.location="/siteadmin/admin_log/?site=offer";'); } } else { $objResponse->script('adminLogOverlayClose();'); $objResponse->alert('Несуществующее предложение'); } } return $objResponse; }