Файл: InstantSocial/uploud/api/getprofile.php
Строк: 115
<?php
/*******************************************************************************/
// InstantCMS v1.8 //
// http://www.instantcms.ru/ //
// API to http://nextgame.ru //
// written by Marat Fatikhov //
// (nickname Марат on a site) //
// E-mail: f-marat@mail.ru //
// //
// LICENSED BY GNU/GPL v2 //
// //
/********************************************************************************/
define("VALID_CMS", 1);
define('PATH', $_SERVER['DOCUMENT_ROOT']);
include(PATH.'/core/cms.php');
include(PATH.'/includes/nextgame.inc.php');
$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();
$inCore->loadClass('user');
$inUser = cmsUser::getInstance();
// получаем данные из запроса
$uid = $inCore->request('uid', 'str', '');
$time = $inCore->request('time', 'str', '');
$sig = $inCore->request('sig', 'str', '');
if (!$uid || !$time || !$sig){
echo ErrorReply('1', 'Неверные параметры запроса');
exit();
}
//проверяем сигнатуру
if(!isSignatureValid ()){
echo ErrorReply('2', 'Неверная сигнатура');
exit();
}
//начинаем готовить данные для ответа
$site_reply = '<?xml version="1.0" encoding="UTF-8"?><profiles>';
// заносим id пользователей в массив $users
$users = explode(',', $uid);
//перебираем массив и заполняем для каждого данные в ответ
foreach($users as $value ){
$user_id = $value;
$sql = "SELECT u.nickname as nickname, u.birthdate as birthdate, p.city as city, p.gender as gender, p.imageurl as imageurl
FROM cms_users u
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE u.id='$user_id' AND u.is_deleted = 0 AND u.is_locked = 0 LIMIT 1";
$result = $inDB->query($sql);
// проверяем, есть ли пользователь
if($inDB->num_rows($result) !== 1) {
echo ErrorReply('3', 'Пользователь не найден');
exit();
}
$info = $inDB->fetch_assoc($result);
$site_reply .='<user><uid>'.$user_id.'</uid>';
//проверяем формат ввода "никнейм" или "имя-фамилия"
$reg_config = $inCore->loadComponentConfig('registration');
switch($reg_config['name_mode']){
case "nickname":
$site_reply .= '<nickname>'.$info['nickname'].'</nickname>';
break;
case "realname":
$realname = explode(' ', trim($info['nickname']));
if(count($realname)!==2){
$site_reply .= '<first_name>'.$info['nickname'].'</first_name><last_name> </last_name>';
}else{
$firstname = $realname[0];
$lastname = $realname[1];
$site_reply .= '<first_name>'.$realname[0].'</first_name><last_name>'.$realname[1].'</last_name>';
}
break;
default:
$site_reply .= '<first_name>'.$info['nickname'].'</first_name><last_name> </last_name><nickname>'.$info['nickname'].'</nickname>';
}
//определяем возраст пользователя
if($info['birthdate'] && $info['birthdate'] !== '1980-01-01'){
$site_reply .= '<birthday>'.$info['birthdate'].'</birthday>';
}
//определяем пол пользователя
if($info['gender']){
if($info['gender'] == 'm'){
$sex = 'M';
} else{
$sex = 'F';
}
$site_reply .= '<sex>'.$sex.'</sex>';
}
//вставляем аватар
if($info['imageurl'] && file_exists(PATH.'/images/users/avatars/'.$info['imageurl'])){
$avatar_url = 'http://'.$_SERVER['SERVER_NAME'].'/images/users/avatars/'.$info['imageurl'];
$site_reply .= '<avatar_url>'.$avatar_url.'</avatar_url>';
}
//вставляем страну
$site_reply .= '<country>Россия</country>';
//вставляем город
if($info['city']){
$site_reply .= '<city>'.$info['city'].'</city>';
}
$site_reply .= '</user>';
}
$site_reply .= '</profiles>';
if($site_reply){
$site_reply = iconv('cp1251', 'utf-8', $site_reply);
echo $site_reply;
} else{
echo ErrorReply('-2', 'Неизвестная ошибка');
}
?>