/** * Отправляет уведомления об изменении админом сообщения в личке ("Мои контакты"). * * @param int $from_uid UID отправителя * @param int $prof_id ID профессии * @param string $reason причина редактирования * * @return bool true - успех, false - провал */ public function portfChoiceModifiedNotification($from_uid = 0, $prof_id = 0, $reason = '') { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; $from = new users(); $from->GetUserByUID($from_uid); $prj = professions::GetProfDesc($from_uid, $prof_id); $sLink = getAbsUrl('/users/' . $from->login . '/setup/#prof' . $prof_id); $sRason = $reason ? "\n\nПричина: " . $reason : ''; $sFeedback = str_replace('//', '/{службу поддержки}/', $GLOBALS['host'] . '/about/feedback/'); $message = 'Здравствуйте, ' . $from->uname . ' ' . $from->usurname . ' Модераторы нашего ресурса отредактировали ваши уточнения к разделу «' . $prj['profname'] . '» ' . $sLink . $sRason . ' Вы можете обратиться в ' . $sFeedback . '. Надеемся на понимание, Команда Free-lance.ru '; self::Add(users::GetUid($err, 'admin'), $from->login, $message, '', 1); }
/** * Отдает HTML для Редактирование Личные сообщения * * @param object $objResponse xajaxResponse * @param string $user_id UID пользователя * @param string $rec_type тип записи * @param array $aParams ID профессии * @return string */ function _admEditPortfChoiceParseForm(&$objResponse, $user_id = '', $rec_type = '', $aParams = array()) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $prof_id = $aParams['sProfId']; $prj = professions::GetProfDesc($user_id, $prof_id); $keys = kwords::getUserKeys($user_id, $prof_id); $user = new users(); $user->GetUserByUID($user_id); ob_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/user/adm_edit_tpl/portf_choise.php'; $sHtml = ob_get_contents(); ob_end_clean(); // текст $sOnReady = "if(document.getElementById('adm_edit_msg')) document.getElementById('adm_edit_msg').value = (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').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_PORTF_CHOISE . ');'); }
function editProfession($uid = '', $params = '') { $objResponse =& new xajaxResponse(); $uid = intval($uid); if ($uid != get_uid(false) || !get_uid(false)) { return $objResponse; } $params = stripslashes($params); parse_str($params, $params); $params['portf_text'] = _htmlentities($params['portf_text'], 'UTF-8'); $params['old_portf_text'] = _htmlentities($params['old_portf_text'], 'UTF-8'); $params['user_keys'] = _htmlentities($params['user_keys'], 'UTF-8'); $params = uploader::encodeCharset($params, array('utf-8', 'cp1251')); $prof_id = intval($params['prof_id']); $profession = new professions(); $profession->updateUserKeywordsProfessions($uid, $prof_id, $params['user_keys']); $profession->updateProfessionUser($uid, $prof_id, $params); if (!empty($profession->errors)) { $errors = json_encode(array_map('win2utf', $profession->errors)); $objResponse->script("portfolio.viewError({$errors}, 'profession_edit_popup')"); } else { $stop_words = new stop_words(hasPermissions('users')); $user = new users(); $user->login = $_SESSION['login']; $user->uid = $_SESSION['uid']; $user->is_pro = is_pro() ? 't' : 'f'; $is_owner = $uid == $_SESSION['uid']; $success = true; $pinfo = current(portfolio::getPortfolioCategory($prof_id)); $pinfo['mainprofname'] = $pinfo['group_name']; $pinfo['profname'] = $pinfo['prof_name']; $pinfo['gr_prevs'] = $pinfo['show_preview']; $pinfo = $profession->prepareCostText($pinfo, $stop_words); $ukeys[$prof_id] = $profession->loadProfessionUserKeyword($user->uid, $prof_id); if ($params['position'] == 2) { $afterProfID = (int) $params['position_category_db_id']; $afterProf = current(portfolio::getPortfolioCategory($afterProfID)); $newPosition = $afterProf['ordering'] + 1; if ($newPosition != $pinfo['ordering']) { if ($newPosition > $pinfo['ordering']) { $newPosition--; } $profession->changePositionProfessionsUser($newPosition, $uid, $prof_id); $change_position = true; } } else { if ($params['position'] != $pinfo['ordering']) { if (!is_pro()) { // Если пользователь не ПРо у него скрыты два раздела которые существуют они стоят на первых позициях всегда, и поэтому нельзя ставить разделу 1 позицию // позицию надо ставить исходя из позиций этих скрытых разделов. $fpos = $profession->GetProfDesc($uid, professions::BEST_PROF_ID); $spos = $profession->GetProfDesc($uid, professions::CLIENTS_PROF_ID); if ($fpos['ordering'] == $spos['ordering']) { // Оба на первой позиции $first = 2; } else { // Позиции корректны $first = 3; } } $afterProfID = 0; $profession->changePositionProfessionsUser(is_pro() ? 1 : $first, $uid, $prof_id); $change_position = true; $is_first = true; } } ob_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.profession.item.php'; $sHtml = ob_get_contents(); ob_end_clean(); if ($pinfo['show_preview'] == 't' && $params['on_preview_default'] == '0' || $pinfo['show_preview'] == 'f' && $params['on_preview_default'] == '1') { // Меняем вид работ $portfolio = new portfolio(); $works = $portfolio->GetPortf($user->uid, $prof_id, true); if (!empty($works)) { $result = portfolio::prepareDataPortfolio($works, $uid, $stop_words, true); extract($result); $work[0]['id'] = 100; ob_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.portfolio.works.php'; $sWorks = ob_get_contents(); ob_end_clean(); } else { $work[0]['id'] = null; $pp_noblocks[$prof_id] = array(); ob_start(); include $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.portfolio.works.php'; $sWorks = ob_get_contents(); ob_end_clean(); } } $objResponse->assign("profession_{$prof_id}", 'innerHTML', $sHtml); if ($sWorks != '') { $objResponse->assign("prof_works_{$prof_id}", 'innerHTML', $sWorks); } $objResponse->script("\$('profession_edit_popup').dispose(); "); if (!empty($change_position)) { $action = $is_first ? 'before' : 'after'; $objResponse->script("portfolio.setPosition({$prof_id}, {$afterProfID}, '{$action}')"); } $objResponse->script("JSScroll(\$('professions_works_{$prof_id}'));"); } return $objResponse; }