/** * Изменение "избранности" фрилансера - добавление в избранные, если еще не выбран и удаление, если уже выбран. * * @param integer $frl_id код фрилансера * @param integer $prof_id код профессии * @param integer $uid код юзера * @return array результат (0-ой элемент: количество выбранных юзеров) и тип выполненой операции (1-ый элемент: 0 - удален, 1 - добавлен) */ function ChangeFav($frl_id, $prof_id, $uid) { global $DB; if ($frl_id != $uid) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/teams.php'; $teams = new teams(); $ret = array(0, 0); if (!$teams->teamsIsInFavorites($uid, $frl_id)) { if ($prof_id > 0) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; $mirrored = professions::GetMirroredProfs($prof_id); $profs = "'" . implode("', '", $mirrored) . "'"; $teams->teamsAddFavorites($uid, $frl_id, false); $m = $teams->teamsFavorites($uid, $error); $myteam = array(); for ($i = 0; $i < count($m); $i++) { $myteam[] = $m[$i]['uid']; } if ($myteam) { //$DB->debug = '/var/tmp/DB.log'; $sql = "SELECT COUNT(*) FROM portf_choise WHERE user_id IN (" . implode(',', $myteam) . ") AND prof_id IN ({$profs})"; $ret[0] = $DB->val($sql); //$DB->debug = ''; } } else { $teams->teamsAddFavorites($uid, $frl_id, false); $ret[0] = $teams->teamsFavoritesCount($uid, $error); } $ret[1] = 1; } else { if ($prof_id > 0) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; $mirrored = professions::GetMirroredProfs($prof_id); $profs = "'" . implode("', '", $mirrored) . "'"; $teams->user_id = $uid; $teams->target_id = $frl_id; $teams->teamsDelFavorites(); $m = $teams->teamsFavorites($uid, $error); $myteam = array(); for ($i = 0; $i < count($m); $i++) { $myteam[] = $m[$i]['uid']; } if ($myteam) { $sql = "SELECT COUNT(*) FROM portf_choise WHERE user_id IN (" . implode(',', $myteam) . ") AND prof_id IN ({$profs})"; $ret[0] = $DB->val($sql); } } else { $teams->user_id = $uid; $teams->target_id = $frl_id; $teams->teamsDelFavorites(); $ret[0] = $teams->teamsFavoritesCount($uid, $error); } return $ret; } } else { $ret[0] = $teams->teamsFavoritesCount($uid, $error); } return $ret; }
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stat_collector.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php"; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $team = new teams(); $stop_words = new stop_words(hasPermissions('projects')); stat_collector::setStamp(); foreach ($f_offers as $i => $offer) { unset($user_ago); if ($offer['birthday'] !== NULL && $offer['birthday'] > "1910-01-01") { $user_ago = ElapsedYears(strtotime($offer['birthday'])); } $info_for_reg = @unserialize($offer['info_for_reg']); $offer['sf'] = abs($offer['se']) + abs($offer['sg']) + abs($offer['sl']); $offer['ef'] = abs($offer['e_plus']) + abs($offer['e_null']) + abs($offer['e_minus']); if (get_uid(false)) { $offer['is_fav'] = $team->teamsIsInFavorites($_SESSION['uid'], $offer['uid']); } $sTitle = htmlspecialchars($offer['title']); $sTitle = $offer['moderator_status'] === '0' && $offer['is_pro'] != 't' ? $stop_words->replace($sTitle) : $sTitle; $sTitle = reformat($sTitle, 35, 0, 1); $sDescr = htmlspecialchars($offer['descr']); $sDescr = $offer['moderator_status'] === '0' && $offer['is_pro'] != 't' ? $stop_words->replace($sDescr) : $sDescr; $sDescr = reformat($sDescr, 50); ?> <a name="o_<?php echo $offer['id']; ?> "> </a> <div class="b-freelancer b-freelancer_bordbot_f0 b-freelancer_padbot_30 b-freelancer_padtop_20"> <span class="b-freelancer__date b-freelancer__date_float_right b-freelancer__date_padtop_10 b-freelancer__date_padleft_10"><?php
<div class="b-layout b-layout_padbot_10"> <?php include_once $_SERVER['DOCUMENT_ROOT'] . '/user/header_note.php'; ?> </div> <?php } ?> <?php if ($access_favorite) { ?> <div class="b-layout__txt b-layout__txt_lineheight_1"> <span class="b-icon b-icon__cont b-icon_top_-1 b-icon__cont_fav"></span><div class="b-layout__txt b-layout__txt_inline-block b-layout__txt_lineheight_1"> <?php if (!empty($_SESSION['uid']) && $team->teamsIsInFavorites($_SESSION['uid'], $user->uid)) { ?> <a class="b-layout__link b-layout__link_bordbot_dot_0f71c8 b-layout__txt_top_1" href="<?php if ($_SESSION["uid"]) { ?> /users/<?php echo htmlspecialchars($_SESSION['login']); ?> /setup/deluser/<?php echo htmlspecialchars($user->login); ?> " onclick="del('<?php echo htmlspecialchars($_SESSION['login']); ?> ','<?php echo htmlspecialchars($user->login);
/** * Возвращает часть ответа с информацией о пользователе * * @param array $aData информация о пользователе из базы * @param bool $bShowEmail включить пользователя Email в ответ * @param bool $bExtended получить расширенную информацию (аналог профиля на сайте) * @return array */ private function _getUserData($aData = array(), $bShowEmail = false, $bExtended = false) { $this->_oSession->view_online_status($aData['login'], false); $u = new users(); if (!is_emp($aData['role'])) { require_once ABS_PATH . '/classes/professions.php'; $prof_id = $aData['spec'] ? $aData['spec'] : 0; $prof_group_id = $aData['spec'] ? professions::GetProfField($aData['spec'], 'prof_group') : 0; } else { $prof_id = 0; $prof_group_id = 0; } $aReturn = array('id' => $aData['uid'], 'status' => $aData['self_deleted'] == 't' ? 2 : 1, 'username' => $aData['login'] ? iconv('cp1251', 'utf-8', $aData['login']) : '', 'firstname' => $aData['uname'] ? iconv('cp1251', 'utf-8', $aData['uname']) : '', 'lastname' => $aData['usurname'] ? iconv('cp1251', 'utf-8', $aData['usurname']) : '', 'role' => is_emp($aData['role']) ? 2 : 1, 'pro' => $aData['is_pro'] == 't' ? 1 : 0, 'verified' => $aData['is_verify'] == 't' ? 1 : 0, 'online' => $this->_oSession->is_active ? 1 : 0, 'spec' => $aData['spec'] ? $aData['spec'] : 0, 'avatar' => array('url' => $aData['photo'] ? WDCPREFIX . '/users/' . $aData['login'] . '/foto/' : '', 'file' => $aData['photo'] ? substr($aData['photo'], 2) . '?' . strtotime($aData['photo_modified_time']) : ''), 'gender' => $aData['sex'] == 't' ? 1 : ($aData['sex'] == 'f' ? 2 : 0), 'country_id' => intval($aData['country']), 'city_id' => intval($aData['city']), 'age' => ElapsedYears(strtotime($u->GetField($aData['uid'], $e, 'birthday'))), 'birthday' => $u->GetField($aData['uid'], $e, 'birthday'), 'prof_id' => $prof_id, 'prof_group_id' => $prof_group_id, 'create_time' => strtotime($aData['reg_date']), 'update_time' => $aData['modified_time'] ? strtotime($aData['modified_time']) : 0); if ($bShowEmail) { $aReturn['email'] = $aData['email'] ? iconv('cp1251', 'utf-8', $aData['email']) : ''; } if ($bExtended) { require_once ABS_PATH . '/classes/rating.php'; require_once ABS_PATH . '/classes/teams.php'; $rating = new rating($aData['uid'], $aData['is_pro'], $aData['is_verify'], @$aData['is_profi'], 1); $team = new teams(); $aReturn['rating'] = rating::round($rating->data['total']); $aReturn['favorite'] = $team->teamsIsInFavorites($_SESSION['uid'], $aData['uid']); $aReturn['contacts'] = is_view_contacts(get_uid(false)) ? $this->_getUserContactsData($aData) : array(); $aReturn['reviews'] = $this->_getUserOpinionsData($aData); } return $aReturn; }