/**
 * Сохранение предложений фрилансеров Сделаю
 * 
 * @param object $objResponse xajaxResponse
 * @param string $rec_id идентификатор записи
 * @param string $rec_type тип записи
 * @param array $aForm массив данных
 * @param string $sDrawFunc имя функции для выполнения после сохранения
 */
function _admEditSdelauSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '')
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
    $alert = array();
    if (trim($aForm['name']) == '') {
        $alert[1] = 'Поле не заполнено';
    } elseif (strlen($aForm['name']) > freelancer_offers::MAX_SIZE_TITLE) {
        $alert[1] = 'Максимальное количество символов ' . freelancer_offers::MAX_SIZE_TITLE;
    }
    if (trim($aForm['msg']) == '') {
        $alert[2] = 'Поле не заполнено';
    } elseif (strlen_real($aForm['msg']) > freelancer_offers::MAX_SIZE_DESCRIPTION) {
        $alert[2] = 'Максимальное количество символов ' . freelancer_offers::MAX_SIZE_DESCRIPTION;
    }
    if ($aForm['categories'] == 0) {
        $alert[3] = 'Не выбран раздел и подраздел';
    }
    if (!$alert) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
        $oFreelancerOffers = new freelancer_offers();
        $update = array('title' => $aForm['name'], 'descr' => $aForm['msg'], 'category_id' => intval($aForm['categories']), 'subcategory_id' => intval($aForm['subcategories']), 'modify_date' => date('Y-m-d H:i:s'));
        $oFreelancerOffers->Update(intval($rec_id), $update);
        $sReason = _parseReason($aForm['user_id'], $aForm['adm_edit_text']);
        messages::sdelauModifiedNotification($aForm['msg'], $aForm['login'], $aForm['uname'], $aForm['usurname'], $sReason);
        $content_id = user_content::MODER_SDELAU;
        _admEditAfterAll($objResponse, $content_id, $rec_id, $rec_type, $sDrawFunc, $aForm);
    } else {
        _setErrors($objResponse, $alert, array(1 => 'name', 2 => 'msg', 3 => 'categories'), $sDrawFunc);
    }
}
Ejemplo n.º 2
0
     if ($id_offer > 0) {
         //$_SESSION['bill.GET']['addinfo'] = "<a href='/?kind=8#o_{$id_offer}'>Перейти к оплаченному предложению</a>";
         header("Location: /public/offer/offer_published.php?offer_id={$id_offer}");
     }
     break;
 case "update":
     if (!$fid) {
         $fid = intval($_POST['fid']);
     }
     $is_edit = true;
     if (isset($error)) {
         $categories_specs = professions::GetAllProfessions($_POST['categories']);
         break;
     }
     $update = array("title" => $_POST['title'], "descr" => $_POST['descr'], "category_id" => (int) $_POST['categories'], "subcategory_id" => (int) $_POST['subcategories']);
     $frl_offers->Update(intval($_POST['fid']), $update);
     if (isset($_POST['page'])) {
         $page = intval($_POST['page']);
     }
     $page_uri = "";
     if ($page < 0) {
         $page = 0;
     }
     if ($page > 0) {
         $page_uri = "&page={$page}";
     }
     $back = __paramInit('string', 'red', 'red', '');
     $back = $back ? $back : '/projects/?kind=8' . $page_uri . '#o_' . $fid;
     header("Location: {$back}");
     break;
 case "edit":
Ejemplo n.º 3
0
/**
 * Изменение блокировки предложения фрилансера.
 * 
 * @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;
}
Ejemplo n.º 4
0
/**
 * Блокирование/разблокирование предложения фрилансера
 * 
 * @param  int    $offer_id
 * @param  string $reason        причина
 * @param  int    $reason_id     ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 13)
 * @param  string $reason_name   Краткое описание причины действия (из селекта) для лога админских действий
 * @return object xajaxResponse
 */
function BlockedFreelanceOffer($offer_id, $reason, $reason_id = null, $reason_name = '')
{
    session_start();
    $objResponse = new xajaxResponse();
    if (hasPermissions('projects')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.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 ($offer['is_blocked'] == 't') {
                // был заблокирован - разблокируем
                $update = array('is_blocked' => false, 'reason' => '', 'reason_id' => 0, 'admin' => 0);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_OFFER, 14, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason);
                $objResponse->assign("freelance-offer-reason-txt-{$offer_id}", 'innerHTML', '&nbsp;');
                $objResponse->assign("freelance-offer-reason-{$offer_id}", 'style.display', 'none');
                $objResponse->assign("freelance-offer-button-{$offer_id}", 'innerHTML', '<a class="b-buttons__link b-buttons__link_dot_c10601 b-buttons__link_margleft_10" href="javascript:void(0);" onclick="banned.blockedFreelanceOffer(' . $offer_id . ')">Заблокировать</a>');
            } else {
                // был разблокирован - блокируем
                $objUser = new users();
                $objUser->GetUserByUID($offer['user_id']);
                $update = array('is_blocked' => true, 'reason' => $reason, 'reason_id' => $reason_id, 'admin' => $_SESSION['uid']);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_OFFER, 13, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $offer_id);
                $reason = reformat($reason, 24, 0, 0, 1, 24);
                $html = BlockedFreelanceOfferHTML($reason);
                $objResponse->assign("freelance-offer-reason-txt-{$offer_id}", 'innerHTML', $reason);
                $objResponse->assign("freelance-offer-reason-{$offer_id}", 'style.display', 'block');
                $objResponse->assign("freelance-offer-button-{$offer_id}", 'innerHTML', '<a class="b-buttons__link b-buttons__link_dot_c10601 b-buttons__link_margleft_10" href="javascript:void(0);" onclick="banned.unblockedFreelanceOffer(' . $offer_id . ')">Разблокировать</a>');
                $objResponse->script("if(banned.reload==1){window.location.reload(true);}");
            }
            $frl_offers->Update($offer_id, $update);
            $objResponse->script("\$('freelance-offer-block-{$offer_id}').set('html', '&nbsp;')");
            //$objResponse->assign("freelance-offer-block-$offer_id", 'innerHTML', '&nbsp;');
        } else {
            $objResponse->alert('Несуществующее предложение');
        }
    }
    return $objResponse;
}