/** * Отдает 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 . ');'); }
/** * Возвращает список жалоб на предложение фрилансера в админке. * * с 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); }
/** * Изменение блокировки предложения фрилансера. * * @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; }
<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 } ?>
/** * Предложения фрилансеров "Сделаю". Утверждение/удаление записи * * @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; }
<?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;
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; }
/** * Блокирование/разблокирование предложения фрилансера * * @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', ' '); $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', ' ')"); //$objResponse->assign("freelance-offer-block-$offer_id", 'innerHTML', ' '); } else { $objResponse->alert('Несуществующее предложение'); } } return $objResponse; }
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