Вход Регистрация
Файл: InstantSocial/uploud/api/wallpost.php
Строк: 100
<?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();


$poster_type = $inCore->request('poster_type', 'str', '');
$poster_id =  $inCore->request('poster_id', 'int', 0);
$uid         = $inCore->request('uid', 'str', '');
$message = $inCore->request('message', 'str', '');
$time        = $inCore->request('time', 'str', '');
$sig        = $inCore->request('sig', 'str', '');

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

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

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

//начинаем формировать ответ сайта
$site_reply = '<?xml version="1.0" encoding="UTF-8"?><posts>';

// заносим 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();
     }

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

      
switch($poster_type){
          case 
'user':

              
// проверяем отправителя на пользователя

              
if(!$inDB->get_field('cms_users', "id= {$poster_id}", 'id')) {
                 echo 
ErrorReply('4', 'Отправитель сообщения не найден');
                 exit();
              }
              
              
$inCore->loadModel('users');
              
$model = new cms_model_users();
    
              
$usr  = $model->getUserShort($user_id);
              if (!
$usr) { cmsCore::error404(); }
              
              
              
$sql = "INSERT INTO cms_user_wall (user_id, author_id, pubdate, content, usertype)
                        VALUES ('
$user_id', '$poster_id', NOW(), '$message', 'user')";
              
$inDB->query($sql);
              
$wall_id = $inDB->get_last_id('cms_user_wall');
              
                  
//отправляем сообщение получателю, если подписан
                    
$usr['email_newmsg']   = $inDB->get_field('cms_user_profiles', "user_id='{$user_id}'", 'email_newmsg');
                    if (
$usr['email_newmsg'] && $user_id != $poster_id){
                            
$inConf = cmsConfig::getInstance();

                                        
$to_email       = $inDB->get_field('cms_users', 'id='.$user_id, 'email');
                    
$postdate       = date('d/m/Y H:i:s');
                                        
$from_nick      = $inDB->get_field('cms_users', "id='{$poster_id}'", 'nickname');
                    
$host = 'http://'.$_SERVER['SERVER_NAME'];
                                        
                                  
$profilelink    = $host . cmsUser::getProfileURL($usr['login']);

                    
$letter_path    = PATH.'/includes/letters/newwallpost.txt';
                    
$letter         = file_get_contents($letter_path);

                     
$letter= str_replace('{sitename}', $inConf->sitename, $letter);
                     
$letter= str_replace('{profilelink}', $profilelink, $letter);
                     
$letter= str_replace('{date}', $postdate, $letter);
                     
$letter= str_replace('{from}', $from_nick, $letter);
                     
                     global 
$_LANG;
                     
                     
$inCore->mailText($to_email, $_LANG['NEW_POST_ON_WALL'].'! - '.$inConf->sitename, $letter);
                    }
                    
                    
//формируем ответ сайта
                    
$site_reply .= '<post_id="'.$wall_id.'"><user_id="'.$user_id.'">';
                    
                    
                        break;
          
          case 
'app':
                    
                    
//формируем код для получения ссылки на игру
                    
$first_sql = "SELECT id
                                 FROM cms_user_wall
                                 ORDER BY id DESC LIMIT 1 " 
;

                    
$result = $inDB->query($first_sql);
                    
                    
$wall_id = 0;
                    if(
$inDB->num_rows($result)) {
                    
$info = $inDB->fetch_assoc($result);
                    
$wall_id = $info['id']+1; }
                    
                    
$url = 'http://api2.nextgame.ru/iframe/js/link/?app_id='.$poster_id.'&site_id='.SITE_ID.'&post_id='.$wall_id.'&poster_id='.$user_id.'&linktype=1' ;
                    
$code =  '<script type='text/javascript' src=''.$url.''></script>';
                    
$message_text = 'Сообщение от приложения '.$code.' :<br>"'.$message.'"';
                    
                     
$message_text = mysql_real_escape_string($message_text);
                    
                    
$sql = "INSERT INTO cms_user_wall (user_id, author_id, pubdate, content, usertype)
                            VALUES ('
$user_id', '$user_id', NOW(), '$message_text', 'user')";

                    
$inDB->query($sql);
                    
                    
$wall_id = $inDB->get_last_id('cms_user_wall');
                    
                    
$url = 'http://api2.nextgame.ru/iframe/js/link/?app_id='.$poster_id.'&site_id='.SITE_ID.'&post_id='.$wall_id.'&poster_id='.$user_id.'&linktype=1' ;
                    
$code =  '<script type='text/javascript' src=''.$url.''></script>';
                    
$message_text = 'Сообщение от приложения '.$code.' :<br>"'.$message.'"';
                    
                    
$message_text = mysql_real_escape_string($message_text);
                    
                     
$sql = "UPDATE cms_user_wall
                             SET content='
{$message_text}'
                             WHERE id='
{$wall_id}' ";
                    
                     
$inDB->query($sql);


                  
//формируем ответ сайта
                    
$site_reply .= '<post_id="'.$wall_id.'"><user_id="'.$user_id.'">';


                        break;
          
      }
}
//отправляем ответ платформе
$site_reply .= '</posts>';
echo 
iconv('cp1251', 'utf-8', $site_reply);

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