Файл: InstantSocial/uploud/api/invite.php
Строк: 99
<?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', '');
$sender_id = $inCore->request('sender_id', 'int', 0);
$app_id = $inCore->request('app_id', 'int', 0);
$time = $inCore->request('time', 'str', '');
$sig = $inCore->request('sig', 'str', '');
if (!$uid || !$time || !$sig || !$sender_id || !$app_id ){
echo ErrorReply('1', 'Неверные параметры запроса');
exit();
}
//проверяем сигнатуру
if(!isSignatureValid ()){
echo ErrorReply('2', 'Неверная сигнатура');
exit();
}
// проверяем отправителя на пользователя
if(!$inDB->get_field('cms_users', "id= {$sender_id}", 'id')) {
echo ErrorReply('4', 'Отправитель сообщения не найден');
exit();
}
//начинаем формировать ответ платформе
$site_reply = '<?xml version="1.0" encoding="UTF-8"?><invite>';
// заносим id пользователей в массив $users
$users = explode(',', $uid);
//перебираем массив и заполняем для каждого данные в ответ
foreach($users as $value ){
$user_id = $value;
// проверяем, является ли получатель пользователем
if(!$inDB->get_field('cms_users', "id= {$user_id}", 'id')) {
echo ErrorReply('3', 'Пользователь не найден');
exit();
}
//формируем код для получения ссылки на игру
$url = 'http://api2.nextgame.ru/iframe/js/link/?app_id='.$app_id.'&site_id='.SITE_ID.'&user_id='.$user_id.'&ng_ref_id='.$sender_id ;
$url = addServerSignature($url);
$code = '<script type='text/javascript' src=''.$url.''></script>';
//готовим сообщение с приглашением
$sender_link = $inUser->getGenderLink($sender_id);
$message = 'Ваш друг '.$sender_link.' приглашает Вас в приложение '.$code.' .';
$ismessage = $inUser->sendMessage(USER_UPDATER, $user_id, $message);
if($ismessage){
//проверяем подписку на уведомления
$needmail = $inDB->get_field('cms_user_profiles', "user_id='{$user_id}'", 'email_newmsg');
//Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
$isonline = $inDB->get_field('cms_online', "user_id='{$user_id}'", 'id');
//если подписан и не онлайн, отправляем уведомление на email
if (!$isonline && $needmail){
$inConf = cmsConfig::getInstance();
$postdate = date('d/m/Y H:i:s');
$to_email = $inDB->get_field('cms_users', "id='{$user_id}'", 'email');
$from_nick = "Служба обновлений";
$host = 'http://'.$_SERVER['SERVER_NAME'];
$answerlink = $host.'/users/'.$user_id.'/messages.html';
$letter_path = PATH.'/includes/letters/newmessage.txt';
$letter = file_get_contents($letter_path);
$letter= str_replace('{sitename}', $inConf->sitename, $letter);
$letter= str_replace('{answerlink}', $answerlink, $letter);
$letter= str_replace('{date}', $postdate, $letter);
$letter= str_replace('{from}', $from_nick, $letter);
$inCore->mailText($to_email, 'У Вас новое сообщение! - '.$inConf->sitename, $letter);
}
}
$site_reply .= '<user>'.$user_id.'</user>';
}
//отправляем данные площадке
$site_reply .= '</invite>';
echo iconv('cp1251', 'utf-8', $site_reply);
?>