Вход Регистрация
Файл: 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);

                     
$letterstr_replace('{sitename}'$inConf->sitename$letter);
                     
$letterstr_replace('{profilelink}'$profilelink$letter);
                     
$letterstr_replace('{date}'$postdate$letter);
                     
$letterstr_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);

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