/**
 * Отдает HTML для предложений фрилансеров Сделаю
 * 
 * @param  object $objResponse xajaxResponse
 * @param  string $rec_id идентификатор записи
 * @param  string $rec_type тип записи
 * @param  array $aParams массив дополнительных параметров
 * @return string
 */
function _admEditSdelauParseForm(&$objResponse, $rec_id = '', $rec_type = '', $aParams = array())
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
    $oFreelancerOffers = new freelancer_offers();
    $offer = $oFreelancerOffers->getOfferById($rec_id, false);
    $objUser = new users();
    $objUser->GetUserByUID($offer['user_id']);
    // разделы
    $categories = professions::GetAllGroupsLite();
    $professions = professions::GetAllProfessions();
    array_group($professions, 'groupid');
    $professions[0] = array();
    ob_start();
    include_once $_SERVER['DOCUMENT_ROOT'] . '/user/adm_edit_tpl/sdelau.php';
    $sHtml = ob_get_contents();
    ob_end_clean();
    // текст
    $sOnReady = "if(\$('adm_edit_msg')) \$('adm_edit_msg').set('value', (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').get('value') : null));";
    $objResponse->assign('h4_adm_edit', 'innerHTML', 'Редактировать предложение');
    $objResponse->assign('div_adm_edit', 'innerHTML', $sHtml);
    $objResponse->script($sOnReady);
    $objResponse->script("\$('div_adm_reason').setStyle('display', 'none');");
    $objResponse->script("adm_edit_content.editMenuItems = ['', 'Основное'];");
    $objResponse->script('adm_edit_content.edit();');
    $objResponse->script('xajax_getAdmEditReasons(' . admin_log::ACT_ID_EDIT_SDELAU . ');');
}
示例#2
0
/**
 * Возвращает список жалоб на предложение фрилансера в админке.
 * 
 * с xajax не работает
 * 
 * @param  int $nOfferId Идентификатор предложения на которое жалуются
 * @return string json_encode данные
 */
function getOfferComplaints($nOfferId = 0)
{
    session_start();
    $res = array();
    if (hasPermissions('projects') && $nOfferId) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
        $offers = new freelancer_offers();
        $aMsgs = $offers->getOfferComplaints($nOfferId);
        $aData = array();
        foreach ($aMsgs as $aOne) {
            $aTmp = array('login' => iconv('CP1251', 'UTF-8', $aOne['login']), 'name' => iconv('CP1251', 'UTF-8', $aOne['uname']), 'surname' => iconv('CP1251', 'UTF-8', $aOne['usurname']), 'date' => date('d.m.Y', strtotime($aOne['date'])), 'time' => date('H:i', strtotime($aOne['date'])), 'text' => $aOne['msg'] ? iconv('CP1251', 'UTF-8', hyphen_words(reformat($aOne['msg'], 60), true)) : '', 'type' => iconv('CP1251', 'UTF-8', $offers->GetComplainType($aOne['type'])));
            $aData[] = $aTmp;
        }
        $res['success'] = true;
        $res['data'] = $aData;
    } else {
        $res['success'] = false;
    }
    echo json_encode($res);
}
示例#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;
}
示例#4
0
            <table cellpadding="0" cellspacing="0" border="0" class="in-stat-menu" style="display: none; width: 160px" id="in-stat-menu2" onmouseover="hm_open(2)" onmouseout="hm_close(2)">
            <tr><td><a href="/siteadmin/ban-razban/?mode=complain">Жалобы на проект</a></td></tr>
            </table>
        </td>
        <td>
            <?php 
if ($mode == 'sdelau') {
    ?>
<strong onmouseover="hm_open(3)" onmouseout="hm_close(3)">Предложения "Сделаю"</strong><?php 
} else {
    ?>
<a href="/siteadmin/ban-razban/?mode=sdelau" onmouseover="hm_open(3)" onmouseout="hm_close(3)">Предложения "Сделаю"</a><?php 
}
?>
 <span><?php 
echo freelancer_offers::GetCountFreelancerBlockedOffers();
?>
</span><br>
            <table cellpadding="0" cellspacing="0" border="0" class="in-stat-menu" style="display: none; width: 160px" id="in-stat-menu3" onmouseover="hm_open(3)" onmouseout="hm_close(3)">
            <tr><td><a href="/siteadmin/ban-razban/?mode=offers">Жалобы на предложения</a></td></tr>
            </table>
        </td>
        <td><?php 
if ($mode == 'commune') {
    ?>
<strong>Сообщества</strong><?php 
} else {
    ?>
<a href="/siteadmin/ban-razban/?mode=commune">Сообщества</a><?php 
}
?>
示例#5
0
 /**
  * Предложения фрилансеров "Сделаю". Утверждение/удаление записи
  * 
  * @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 resolveSdelau($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_SDELAU, $stream_id);
     if ($sRecId) {
         $bRet = true;
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/admin_log.php';
         $frl_offers = new freelancer_offers();
         $offer = $frl_offers->getOfferById($rec_id);
         $sObjName = $offer['title'];
         $sObjLink = '';
         // нет ссылки на конкретное предложение
         $update = array();
         if ($action == 1 && $offer['admin']) {
             //утверждаем
             $update = array('is_blocked' => false, 'reason' => '', 'reason_id' => 0, 'admin' => 0);
             admin_log::addLog(admin_log::OBJ_CODE_OFFER, 14, $from_id, $rec_id, $sObjName, $sObjLink, 0, '', 0, '');
         } elseif ($action == 2 && $topic['is_blocked_s'] != 't') {
             $sReason = 'Содержит запрещенную информацию';
             $update = array('is_blocked' => true, 'reason' => $reason, 'reason_id' => 0, 'admin' => $user_id, 'deleted_reason' => $reason);
             admin_log::addLog(admin_log::OBJ_CODE_OFFER, 13, $from_id, $rec_id, $sObjName, $sObjLink, 0, '', 0, $sReason, $rec_id);
         }
         $update['moderator_status'] = $user_id;
         $GLOBALS['DB']->update('freelance_offers', $update, 'id = ?i', $rec_id);
     }
     return $bRet;
 }
示例#6
0
<?php

$g_page_id = "0|36";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer_offers.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php";
$rpath = "../../";
include $_SERVER['DOCUMENT_ROOT'] . "/404.php";
exit;
$stretch_page = true;
$showMainDiv = true;
$page_title = "Сервис «Сделаю» - фриланс, удаленная работа на FL.ru";
$header = "{$rpath}/header.php";
$content = 'content.php';
$js_file = array('banned.js', 'warning.js');
$footer = "{$rpath}/footer.html";
$template = 'template2.php';
$uid = get_uid();
$frl_offers = new freelancer_offers();
$f_offers = $frl_offers->GetFreelancerOffers(false, 0, 3, false, true);
$hidden_block_button = true;
include $rpath . $template;
示例#7
0
session_start();
$uid = get_uid();
$error_page = "../../404.php";
$template_page = "../../template2.php";
include "../../403.php";
exit;
if (is_emp() && !hasPermissions('projects')) {
    $content = "tpl.error-offers.php";
    include $template_page;
    exit;
}
if (!$_SESSION['uid']) {
    include "../../fbd.php";
    exit;
}
$frl_offers = new freelancer_offers();
$categories = professions::GetAllGroupsLite();
$categories_specs = professions::GetAllProfessions(intval($project['category']) ? intval($project['category']) : $categories[0]['id']);
$action = __paramInit('string', 'action', 'action');
$fid = intval($_GET['fid']);
if ($action == 'edit' && intval($_GET['fid']) <= 0) {
    include $error_page;
    exit;
}
$content = "tpl.public-offers.php";
$js_file = array('tawl.js');
if ($action) {
    if ($_POST['action']) {
        if (trim($_POST['title']) == "") {
            $error['title'] = true;
        }
示例#8
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;
}
示例#9
0
    include TPL_ANSWERS_DIR . '/tpl.answers-item.php';
}
?>
<!--<div class="b-page__lenta <?php 
echo $cls;
?>
">-->
    <div class="b-page__lenta ">
        <?php 
if ($kind == 8) {
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/teams.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/rating.php';
    $frl_offers = new freelancer_offers();
    $page = __paramInit('int', 'page', 'page', 1);
    if (!$page || $page < 0) {
        $page = 1;
    }
    $all_cnt = $frl_offers->getCountFreelancerOffers($filter_apply ? $filter : false);
    $pages = ceil($all_cnt / freelancer_offers::FRL_COUNT_PAGES);
    $f_offers = $frl_offers->getFreelancerOffers($filter_apply ? $filter : false, ($page - 1) * freelancer_offers::FRL_COUNT_PAGES, freelancer_offers::FRL_COUNT_PAGES, $filter_only_my_offs);
    ?>
            <?php 
    if ($f_offers) {
        include $_SERVER['DOCUMENT_ROOT'] . '/public/offer/tpl.offers-item.php';
    } else {
        ?>
            <div class="b-layout__txt b-layout__txt_bold b-layout__txt_center b-layout__txt_padtop_30 b-layout__txt_fontsize_15">Попробуйте изменить критерии поиска</div>
            <?php