Размер файла: 3.76Kb
<?php
$preventing_output = true;
$output = array ();
if (empty ($_POST['room_id']))
$room_id = 1;
else
$room_id = (int) $_POST['room_id'];
require 'controller/prestart.php';
$gcProcess->addRequest ('roomId', $room_id);
/* Отправка сообщений */
if (!empty ($_POST['msg']))
$gcProcess->addRequest ('msg', $_POST['msg']);
/* Отправка сообщений */
if (!empty ($_POST['msgs']))
{
$gcProcess->addRequest ('msgs', $_POST['msgs']);
}
/* Получение новых сообщений */
if (!empty ($_POST['get_new_msgs']))
{
$gcProcess->addRequest ('getNewMsgs', 1);
$gcProcess->addRequest ('lastChatMsgId', $_POST['last_chat_msg_id']);
if ($_POST['get_new_msgs'] != 1)
$gcProcess->addRequest ('msg', $_POST['get_new_msgs']);
}
/* Получение списка пользователей online */
if (!empty ($_POST['get_users_online']))
$gcProcess->addRequest ('getUsersOnline', 1);
/* Получение данных о текущем рейтинге */
if (!empty ($_POST['get_rating_info']))
$gcProcess->addRequest ('getRatingInfo', 1);
/* Получение сообщений сервера */
if (!empty ($_POST['get_room_data']))
$gcProcess->addRequest ('getRoomData', 1);
if (!empty ($_POST['get_quick_msgs']))
$gcProcess->addRequest ('getQuickMsgs', 1);
if (!empty ($_POST['get_friends_number']))
$gcProcess->addRequest ('getFriendsNumber', 1);
$gcProcess->requestTo ('ajax_chat.php');
require 'controller/start.php';
/* Вывод таблицы смайлов */
if (!empty ($_POST['get_smiles']))
{
$gcSmarty->display ('ajax_chat_smiles_list.tpl');
exit ();
}
/* Массив новых сообщений */
if (!empty ($result['msgs']))
{
$output['msgs'] = $result['msgs'];
$output['max_msg_id'] = 0;
foreach ($output['msgs'] AS $key => $msg)
{
/* Определяем максимальный ID */
if ($msg['id'] > $output['max_msg_id'])
$output['max_msg_id'] = $msg['id'];
$output['msgs'][$key]['user_nick'] = $result['usersInfo'][$msg['user_id']]['nick'];
$output['msgs'][$key]['user_sex'] = $result['usersInfo'][$msg['user_id']]['sex'];
}
/* Сортируем сообщения */
sort ($output['msgs']);
}
/* Передаем счетчики пользователей в комнатах */
if (!empty ($result['usersInTheRoomsCounters']))
$output['users_in_the_rooms_counters'] = $result['usersInTheRoomsCounters'];
/* Пользователи в комнате */
if (!empty ($result['usersInTheRoom']))
{
$gcSmarty->assign ('users_in_the_room', $result['usersInTheRoom']);
$gcSmarty->assign ('users_info', $result['usersInfo']);
$output['users_in_the_room'] = $gcSmarty->fetch ('ajax_chat_users_in_the_room.tpl'); ;
}
if (!empty ($_POST['get_rating_info']))
{
/* Получение информации о лидере */
$output['leader'] = $result['usersInfo'][$result['leaderId']];
$gcSmarty->assign ('leader', &$output['leader']);
$output['leader']['nick'] = $gcSmarty->fetch ('ajax_chat_leader_nick.tpl');
$output['user'] = $result['usersInfo'][$result['myId']];
$output['user']['rank'] = $result['userRank'];
}
/* Данные комнаты */
if (!empty ($result['module']))
{
$gcSmarty->assign ('module', $result['module']);
$output['room_data'] = $gcSmarty->fetch ('module_'.$result['module']['name'].'.tpl');
}
/* Быстрые сообщения */
if (!empty ($result['quickMsg']))
{
$gcSmarty->assign ('quickMsg', $result['quickMsg']);
$gcSmarty->assign ('usersInfo', $result['usersInfo']);
$output['quick_msg'] = $gcSmarty->fetch ('ajax_chat_quick_msg.tpl');
}
if (!empty ($result['friendsNumber']))
$output['friends_number'] = $result['friendsNumber'];
header ('Content-type: application/json');
echo json_encode ($output);