<?php /* For licensing terms, see /license.txt */ require_once '../../../global.inc.php'; if (api_is_anonymous()) { api_not_allowed(true); } $roomName = isset($_GET['room']) ? $_GET['room'] : null; $room = VideoChat::getChatRoomByName($roomName); if ($room === false) { Header::location(api_get_path(WEB_PATH)); } $friend_html = SocialManager::listMyFriendsBlock($user_id, $link_shared, $show_full_profile); $isSender = $room['from_user'] == api_get_user_id(); $isReceiver = $room['to_user'] == api_get_user_id(); if (!$isSender && !$isReceiver) { Header::location(api_get_path(WEB_PATH)); } if ($isSender) { $chatUser = api_get_user_info($room['to_user']); } elseif ($isReceiver) { $chatUser = api_get_user_info($room['from_user']); } $idUserLocal = api_get_user_id(); $userLocal = api_get_user_info($idUserLocal, true); $htmlHeadXtra[] = '<script type="text/javascript" src="' . api_get_path(WEB_PATH) . 'web/assets/simplewebrtc/latest.js' . '"></script>' . "\n"; $template = new Template(); $template->assign('room', $room); $template->assign('chat_user', $chatUser); $template->assign('user_local', $userLocal); $template->assign('block_friends', $friend_html);
$form->addHidden('to', $to_user_id); $form->addButtonSend(get_lang('Create')); $template = new Template(); $template->assign('form', $form->returnForm()); echo $template->fetch('default/javascript/chat/start_video.tpl'); break; case 'create_room': $room = VideoChat::getChatRoomByUsers(api_get_user_id(), $to_user_id); $createdRoom = false; if ($room === false) { $roomName = isset($_REQUEST['room_name']) ? Security::remove_XSS($_REQUEST['room_name']) : null; if (VideoChat::nameExists($roomName)) { echo Display::return_message(get_lang('TheVideoChatRoomXNameAlreadyExists'), 'error'); break; } $createdRoom = VideoChat::createRoom($roomName, api_get_user_id(), $to_user_id); } else { $roomName = $room['room_name']; $createdRoom = true; } if ($createdRoom === false) { echo Display::return_message(get_lang('ChatRoomNotCreated'), 'error'); break; } $videoChatLink = Display::url(Display::tag('i', null, ['class' => 'fa fa-video-camera']) . " " . get_lang('StartVideoChat'), api_get_path(WEB_LIBRARY_JS_PATH) . "chat/video.php?room={$roomName}"); $chat->send(api_get_user_id(), $to_user_id, $videoChatLink, false); echo Display::tag('p', $videoChatLink, ['class' => 'lead']); break; case 'notify_not_support': $chat->send(api_get_user_id(), $to_user_id, get_lang('TheXUserBrowserDoesNotSupportWebRTC')); break;
$chat->send(api_get_user_id(), $to_user_id, $message); break; case 'startchatsession': $chat->startSession(); break; case 'set_status': $status = isset($_REQUEST['status']) ? intval($_REQUEST['status']) : 0; $chat->setUserStatus($status); break; case 'create_room': $room = VideoChat::getChatRoomByUsers(api_get_user_id(), $to_user_id); if ($room === false) { $createdRoom = VideoChat::createRoom(api_get_user_id(), $to_user_id); if ($createdRoom === false) { echo Display::return_message(get_lang('ChatRoomNotCreated'), 'error'); break; } $room = VideoChat::getChatRoomByUsers(api_get_user_id(), $to_user_id); } $videoChatUrl = api_get_path(WEB_LIBRARY_JS_PATH) . "chat/video.php?room={$room['id']}"; $videoChatLink = Display::url(Display::returnFontAwesomeIcon('video-camera') . get_lang('StartVideoChat'), $videoChatUrl); $chat->send(api_get_user_id(), $to_user_id, $videoChatLink, false, false); echo Display::tag('p', $videoChatLink, ['class' => 'lead']); break; case 'notify_not_support': $chat->send(api_get_user_id(), $to_user_id, get_lang('TheXUserBrowserDoesNotSupportWebRTC')); break; default: echo ''; } exit;