function AddInTeamNew($login) { $objResponse = new xajaxResponse(); if ($_SESSION['login']) { $team = new teams(); if ($team->teamsAddFavorites($_SESSION['uid'], $login)) { return false; } $objResponse->script("\n \$('team_{$login}').removeClass('uprj-bar');\n \$('team_{$login}').addClass('uprj-bar-act');\n\n r = \$('team_{$login}').getElement('.uprj-st1');\n r.set('html', 'Этот исполнитель у вас в избранных (<a href=\"javascript:void(0)\" onclick=\"delFromFav(\\'{$login}\\')\" class=\"lnk-dot-grey\">убрать</a>)');\n r.removeClass('uprj-st1');\n r.addClass('uprj-st2');\n "); } return $objResponse; }
/** * Изменение "избранности" фрилансера - добавление в избранные, если еще не выбран и удаление, если уже выбран. * * @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; }
/** * Добавление/удаление пользователя из избранного * * @param array $aParams массив входящих данных * @return array $aResult ответ */ protected function x____users_favorites_set($aParams = array()) { $this->_validDevice($aParams); $nId = intvalPgSql($aParams['user_id']); $nStatus = intvalPgSql($aParams['status']); if (!empty($nId)) { require_once ABS_PATH . '/classes/users.php'; $oUser = new users(); $oUser->GetUserByUID($nId); if ($oUser->uid) { if (empty($oUser->is_banned)) { require_once ABS_PATH . '/classes/teams.php'; $nInFav = teams::teamsIsInFavorites($_SESSION['uid'], $nId); if ($nInFav && $nStatus) { $this->error(EXTERNAL_ERR_FAVORITES_IN); } if (!$nInFav && !$nStatus) { $this->error(EXTERNAL_ERR_FAVORITES_NOT_IN); } if ($nStatus) { if (teams::teamsAddFavorites($_SESSION['uid'], $oUser->login)) { $this->error(EXTERNAL_ERR_SERVER_ERROR); } } else { if (teams::teamsDelFavoritesByLogin($_SESSION['uid'], $oUser->login)) { $this->error(EXTERNAL_ERR_SERVER_ERROR); } } } else { $this->error(EXTERNAL_ERR_USER_BANNED); } } else { $this->error(EXTERNAL_ERR_USER_NOTFOUND); } } else { $this->error(EXTERNAL_ERR_EMPTY_USER_ID); } return array(); }