Вход Регистрация
Файл: InstantSocial/uploud/api/sendmessage.php
Строк: 92
<?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', 'int', 0);
$sender_id = $inCore->request('sender_id', 'int', 0);
$message = $inCore->request('message', 'str', '');
$type = $inCore->request('type', 'str', '');
$time        = $inCore->request('time', 'str', '');
$sig        = $inCore->request('sig', 'str', '');

if (!
$uid || !$type || !$time || !$sig || !$sender_id || !$message){
     echo 
ErrorReply('1', 'Неверные параметры запроса');
     exit();
}

//проверяем сигнатуру
if(!isSignatureValid ()){
       echo 
ErrorReply('2', 'Неверная сигнатура');
     exit();
}

// проверяем, является ли получатель пользователем
if(!$inDB->get_field('cms_users', "id= {$uid}", 'id')) {
      echo 
ErrorReply('3', 'Пользователь не найден');
      exit();
}

// если есть отправитель, проверяем на пользователя
if($type == 'user'){
      if(!
$inDB->get_field('cms_users', "id= {$sender_id}", 'id')) {
      echo 
ErrorReply('4', 'Отправитель сообщения не найден');
      exit();
      }
}

$message = iconv('utf-8', 'cp1251', $message);

//проверяем условия и готовим разные сообщения

switch($type){
     case 
'user':
         
$ismessage = $inUser->sendMessage($sender_id, $uid, $message);
         break;
     case 
'app':
         
$add_message = getLinkGame($uid , $sender_id );
         
$message = 'Приложение '.$add_message.' отправило Вам сообщение следующего содержания: <br>'.$message ;
         
$ismessage = $inUser->sendMessage(USER_UPDATER, $uid, $message);
}

if(
$ismessage){

           
//проверяем подписку на уведомления
            
$needmail = $inDB->get_field('cms_user_profiles', "user_id='{$uid}'", 'email_newmsg');

            
//Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
            
$isonline = $inDB->get_field('cms_online', "user_id='{$uid}'", 'id');

            
//если подписан и не онлайн, отправляем уведомление на email
            
if (!$isonline && $needmail){
                
$inConf     = cmsConfig::getInstance();

                
$postdate   = date('d/m/Y H:i:s');
                
$to_email   = $inDB->get_field('cms_users', "id='{$uid}'", 'email');
                
$from_nick  = "Служба обновлений";
                
$host = 'http://'.$_SERVER['SERVER_NAME'];
                
$answerlink = $host.'/users/'.$uid.'/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);
            }
            
            
// формируем данные для ответа площадке nextgame
            
$delivered = 'true';
} else {
$delivered = 'false';}

//отправляем данные площадке
$site_reply = '<?xml version="1.0" encoding="UTF-8"?><msg><uid>'.$uid.'</uid><delivered>'.$delivered.'</delivered></msg>';
echo 
iconv('cp1251', 'utf-8', $site_reply);

?>
Онлайн: 0
Реклама