Просмотр файла globalchat/ajax_chat_router.php

Размер файла: 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);