ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilChatroomViewGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
5 require_once 'Modules/Chatroom/classes/class.ilChatroomUser.php';
6 
14 {
21  public function joinWithCustomName()
22  {
27  global $ilUser, $lng;
28 
29  $this->gui->switchToVisibleMode();
30  $this->setupTemplate();
31  $room = ilChatroom::byObjectId($this->gui->object->getId());
32  $chat_user = new ilChatroomUser($ilUser, $room);
33  $failure = false;
34  $username = '';
35 
36  if($_REQUEST['custom_username_radio'] == 'custom_username')
37  {
38  $username = $_REQUEST['custom_username_text'];
39  }
40  elseif(method_exists($chat_user, 'build' . $_REQUEST['custom_username_radio']))
41  {
42  $username = $chat_user->{'build' . $_REQUEST['custom_username_radio']}();
43  }
44  else
45  {
46  $failure = true;
47  }
48 
49  if(!$failure && trim($username) != '')
50  {
51  if(!$room->isSubscribed($chat_user->getUserId()))
52  {
53  $chat_user->setUsername($chat_user->buildUniqueUsername($username));
54  }
55 
56  $this->showRoom($room, $chat_user);
57  }
58  else
59  {
60  ilUtil::sendFailure($lng->txt('no_username_given'));
61  $this->showNameSelection($chat_user);
62  }
63  }
64 
68  private function setupTemplate()
69  {
73  global $tpl;
74 
75  $tpl->addJavaScript('Modules/Chatroom/js/colorpicker/jquery.colorPicker.js');
76  $tpl->addJavaScript('Modules/Chatroom/js/chat.js');
77  $tpl->addJavaScript('Modules/Chatroom/js/iliaschat.jquery.js');
78  $tpl->addJavaScript('Services/jQuery/js/jquery.outside.events.min.js');
79  $tpl->addJavaScript('Modules/Chatroom/js/json2.js');
80 
81  $tpl->addJavaScript('./Services/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js');
82 
83  $tpl->addCSS('Modules/Chatroom/js/colorpicker/colorPicker.css');
84  $tpl->addCSS('Modules/Chatroom/templates/default/style.css');
85  }
86 
92  private function showRoom(ilChatroom $room, ilChatroomUser $chat_user)
93  {
102  global $tpl, $ilUser, $ilCtrl, $rbacsystem, $lng, $ilNavigationHistory;
103 
104  if(!ilChatroom::checkUserPermissions('read', $this->gui->ref_id))
105  {
106  $ilCtrl->setParameterByClass('ilrepositorygui', 'ref_id', ROOT_FOLDER_ID);
107  $ilCtrl->redirectByClass('ilrepositorygui', '');
108  }
109 
110  $user_id = $chat_user->getUserId($ilUser);
111 
112  $ilNavigationHistory->addItem($_GET['ref_id'], $ilCtrl->getLinkTargetByClass('ilrepositorygui', 'view'), 'chtr');
113 
114  if($room->isUserBanned($user_id))
115  {
116  $this->cancelJoin($lng->txt('banned'));
117  return;
118  }
119 
120  $scope = $room->getRoomId();
121  $connector = $this->gui->getConnector();
122  $response = @$connector->connect($scope, $user_id);
123 
124  if(!$response)
125  {
126  ilUtil::sendFailure($lng->txt('unable_to_connect'), true);
127  $ilCtrl->redirectByClass('ilinfoscreengui', 'info');
128  }
129 
130  if(!$room->isSubscribed($chat_user->getUserId()))
131  {
132  $room->connectUser($chat_user);
133  }
134 
135  $subScope = 0;
136  $response = $connector->sendEnterPrivateRoom($scope, $subScope, $user_id);
137  if(!$response)
138  {
139  ilUtil::sendFailure($lng->txt('unable_to_connect'), true);
140  $ilCtrl->redirectByClass('ilinfoscreengui', 'info');
141  }
142 
143  $connection_info = json_decode($response);
144  $settings = $connector->getSettings();
145  $known_private_room = $room->getActivePrivateRooms($ilUser->getId());
146 
147  $initial = new stdClass();
148  $initial->users = $room->getConnectedUsers();
149  $initial->private_rooms = array_values($known_private_room);
150  $initial->redirect_url = $ilCtrl->getLinkTarget($this->gui, 'view-lostConnection', '', false, false);
151  $initial->private_rooms_enabled = (boolean)$room->getSetting('private_rooms_enabled');
152  $initial->subdirectory = $settings->getSubDirectory();
153 
154  $initial->userinfo = array(
155  'moderator' => $rbacsystem->checkAccess('moderate', (int)$_GET['ref_id']),
156  'id' => $chat_user->getUserId(),
157  'login' => $chat_user->getUsername()
158  );
159 
160  $smileys = array();
161 
162  include_once('Modules/Chatroom/classes/class.ilChatroomSmilies.php');
163 
164  if($settings->getSmiliesEnabled())
165  {
166  $smileys_array = ilChatroomSmilies::_getSmilies();
167  foreach($smileys_array as $smiley_array)
168  {
169  $new_keys = array();
170  $new_val = '';
171  foreach($smiley_array as $key => $value)
172  {
173  if($key == 'smiley_keywords')
174  {
175  $new_keys = explode("\n", $value);
176  }
177 
178  if($key == 'smiley_fullpath')
179  {
180  $new_val = $value;
181  }
182  }
183 
184  if(!$new_keys || !$new_val)
185  {
186  continue;
187  }
188 
189  foreach($new_keys as $new_key)
190  {
191  $smileys[$new_key] = $new_val;
192  }
193  }
194 
195  $initial->smileys = $smileys;
196  }
197  else
198  {
199  $initial->smileys = '{}';
200  }
201 
202  $initial->messages = array();
203 
204  if(isset($_REQUEST['sub']))
205  {
206  if($known_private_room[$_REQUEST['sub']])
207  {
208  if(!$room->isAllowedToEnterPrivateRoom($chat_user->getUserId(), $_REQUEST['sub']))
209  {
210  $initial->messages[] = array(
211  'type' => 'error',
212  'message' => $lng->txt('not_allowed_to_enter'),
213  );
214  }
215  else
216  {
217  $scope = $room->getRoomId();
218  $params = array();
219  $params['user'] = $chat_user->getUserId();
220  $params['sub'] = $_REQUEST['sub'];
221 
222  $params['message'] = json_encode(
223  array(
224  'type' => 'private_room_entered',
225  'user' => $user_id
226  )
227  );
228 
229  $connector = $this->gui->getConnector();
230  $response = $connector->sendEnterPrivateRoom($scope, $_REQUEST['sub'], $chat_user->getUserId());
231 
232  if($this->isSuccessful($response))
233  {
234  $room->subscribeUserToPrivateRoom($params['sub'], $params['user']);
235  }
236 
237  $initial->enter_room = $_REQUEST['sub'];
238  }
239  }
240  else
241  {
242  $initial->messages[] = array(
243  'type' => 'error',
244  'message' => $lng->txt('user_invited'),
245  );
246  }
247  }
248 
249  if((int)$room->getSetting('display_past_msgs'))
250  {
251  $initial->messages = array_merge($initial->messages, array_reverse($room->getLastMessages($room->getSetting('display_past_msgs'), $chat_user)));
252  }
253 
254  $roomTpl = new ilTemplate('tpl.chatroom.html', true, true, 'Modules/Chatroom');
255  $roomTpl->setVariable('SESSION_ID', $connection_info->{'session-id'});
256  $roomTpl->setVariable('BASEURL', $settings->generateClientUrl());
257  $roomTpl->setVariable('INSTANCE', $settings->getInstance());
258  $roomTpl->setVariable('SCOPE', $scope);
259  $roomTpl->setVariable('MY_ID', $user_id);
260  $roomTpl->setVariable('INITIAL_DATA', json_encode($initial));
261  $roomTpl->setVariable('POSTURL', $ilCtrl->getLinkTarget($this->gui, 'postMessage', '', true, true));
262 
263  $roomTpl->setVariable('ACTIONS', $lng->txt('actions'));
264  $roomTpl->setVariable('LBL_CREATE_PRIVATE_ROOM', $lng->txt('create_private_room_label'));
265  $roomTpl->setVariable('LBL_USER', $lng->txt('user'));
266  $roomTpl->setVariable('LBL_USER_TEXT', $lng->txt('invite_username'));
267  $roomTpl->setVariable('LBL_AUTO_SCROLL', $lng->txt('auto_scroll'));
268 
269  $roomTpl->setVariable('INITIAL_USERS', json_encode($room->getConnectedUsers()));
270 
271  $this->renderFontSettings($roomTpl, array());
272  $this->renderFileUploadForm($roomTpl);
273  $this->renderSendMessageBox($roomTpl);
274  $this->renderLanguageVariables($roomTpl);
275 
276  require_once 'Services/UIComponent/Modal/classes/class.ilModalGUI.php';
278 
279  $roomRightTpl = new ilTemplate('tpl.chatroom_right.html', true, true, 'Modules/Chatroom');
280  $this->renderRightUsersBlock($roomRightTpl);
281 
282  require_once 'Services/UIComponent/Panel/classes/class.ilPanelGUI.php';
283  $right_content_panel = ilPanelGUI::getInstance();
284  $right_content_panel->setHeading($lng->txt('users'));
285  $right_content_panel->setPanelStyle(ilPanelGUI::PANEL_STYLE_SECONDARY);
286  $right_content_panel->setHeadingStyle(ilPanelGUI::HEADING_STYLE_BLOCK);
287  $right_content_panel->setBody($roomRightTpl->get());
288 
289  $tpl->setContent($roomTpl->get());
290  $tpl->setRightContent($right_content_panel->getHTML());
291  }
292 
297  private function cancelJoin($message)
298  {
299  ilUtil::sendFailure($message);
300  }
301 
308  private function renderFontSettings(ilTemplate $roomTpl, array $defaultSettings)
309  {
314  global $lng, $ilCtrl;
315 
316  $font_family = array(
317  'sans' => 'Sans Serif',
318  'times' => 'Times',
319  'monospace' => 'Monospace',
320  );
321 
322  $font_style = array(
323  'italic' => $lng->txt('italic'),
324  'bold' => $lng->txt('bold'),
325  'normal' => $lng->txt('normal'),
326  'underlined' => $lng->txt('underlined'),
327  );
328 
329  $font_size = array(
330  'small' => $lng->txt('small'),
331  'normal' => $lng->txt('normal'),
332  'large' => $lng->txt('large')
333  );
334 
335  $default_font_color = '#000000';
336 
337  $default_font_family = (
338  isset($defaultSettings['font_family']) &&
339  isset($font_family[$defaultSettings['font_family']]) ?
340  $defaultSettings['font_family'] : 'sans'
341  );
342 
343  $default_font_style = (
344  isset($defaultSettings['font_style']) &&
345  isset($font_family[$defaultSettings['font_style']]) ?
346  $defaultSettings['font_style'] : 'normal'
347  );
348 
349  $default_font_size = (
350  isset($defaultSettings['font_size']) &&
351  isset($font_family[$defaultSettings['font_size']]) ?
352  $defaultSettings['font_size'] : 'normal'
353  );
354 
355  $roomTpl->setVariable('VAL_FONTCOLOR', $default_font_color);
356 
357  foreach($font_family as $font => $label)
358  {
359  $roomTpl->setCurrentBlock('chat_fontfamily');
360  $roomTpl->setVariable('VAL_FONTFAMILY', $font);
361  $roomTpl->setVariable('LBL_FONTFAMILY', $label);
362  $roomTpl->setVariable(
363  'SELECTED_FONTFAMILY', $font == $default_font_family ?
364  'selected="selected"' : ''
365  );
366  $roomTpl->parseCurrentBlock();
367  }
368 
369  foreach($font_style as $font => $label)
370  {
371  $roomTpl->setCurrentBlock('chat_fontstyle');
372  $roomTpl->setVariable('VAL_FONTSTYLE', $font);
373  $roomTpl->setVariable('LBL_FONTSTYLE', $label);
374  $roomTpl->setVariable(
375  'SELECTED_FONTSTYLE', $font == $default_font_style ?
376  'selected="selected"' : ''
377  );
378  $roomTpl->parseCurrentBlock();
379  }
380 
381  foreach($font_size as $font => $label)
382  {
383  $roomTpl->setCurrentBlock('chat_fontsize');
384  $roomTpl->setVariable('VAL_FONTSIZE', $font);
385  $roomTpl->setVariable('LBL_FONTSIZE', $label);
386  $roomTpl->setVariable(
387  'SELECTED_FONTSIZE',
388  $font == $default_font_size ? 'selected="selected"' : ''
389  );
390  $roomTpl->parseCurrentBlock();
391  }
392 
393  $roomTpl->setVariable('LBL_FONTCOLOR', $lng->txt('fontcolor'));
394  $roomTpl->setVariable('LBL_FONTFAMILY', $lng->txt('fontfamily'));
395  $roomTpl->setVariable('LBL_FONTSTYLE', $lng->txt('fontstyle'));
396  $roomTpl->setVariable('LBL_FONTSIZE', $lng->txt('fontsize'));
397 
398  $logoutLink = $ilCtrl->getLinkTarget($this->gui, 'view-logout');
399  $roomTpl->setVariable('LOGOUT_LINK', $logoutLink);
400  }
401 
406  public function renderFileUploadForm(ilTemplate $roomTpl)
407  {
408  // @todo: Not implemented yet
409  return;
410 
411  require_once 'Modules/Chatroom/classes/class.ilChatroomFormFactory.php';
412  $formFactory = new ilChatroomFormFactory();
413  $file_upload = $formFactory->getFileUploadForm();
414  //$file_upload->setFormAction( $ilCtrl->getFormAction($this->gui, 'UploadFile-uploadFile') );
415  $roomTpl->setVariable('FILE_UPLOAD', $file_upload->getHTML());
416  }
417 
421  protected function renderSendMessageBox(ilTemplate $roomTpl)
422  {
426  global $lng;
427 
428  $roomTpl->setVariable('LBL_MESSAGE', $lng->txt('chat_message'));
429  $roomTpl->setVariable('LBL_TOALL', $lng->txt('chat_message_to_all'));
430  $roomTpl->setVariable('LBL_OPTIONS', $lng->txt('chat_message_options'));
431  $roomTpl->setVariable('LBL_DISPLAY', $lng->txt('chat_message_display'));
432  $roomTpl->setVariable('LBL_SEND', $lng->txt('send'));
433  }
434 
438  protected function renderLanguageVariables(ilTemplate $roomTpl)
439  {
443  global $lng;
444 
445  $js_translations = array(
446  'LBL_MAINROOM' => 'chat_mainroom',
447  'LBL_LEAVE_PRIVATE_ROOM' => 'leave_private_room',
448  'LBL_LEFT_PRIVATE_ROOM' => 'left_private_room',
449  'LBL_JOIN' => 'chat_join',
450  'LBL_DELETE_PRIVATE_ROOM' => 'delete_private_room',
451  'LBL_DELETE_PRIVATE_ROOM_QUESTION' => 'delete_private_room_question',
452  'LBL_INVITE_TO_PRIVATE_ROOM' => 'invite_to_private_room',
453  'LBL_KICK' => 'chat_kick',
454  'LBL_BAN' => 'chat_ban',
455  'LBL_KICK_QUESTION' => 'kick_question',
456  'LBL_BAN_QUESTION' => 'ban_question',
457  'LBL_ADDRESS' => 'chat_address',
458  'LBL_WHISPER' => 'chat_whisper',
459  'LBL_CONNECT' => 'chat_connection_established',
460  'LBL_DISCONNECT' => 'chat_connection_disconnected',
461  'LBL_TO_MAINROOM' => 'chat_to_mainroom',
462  'LBL_CREATE_PRIVATE_ROOM_JS' => 'chat_create_private_room_button',
463  'LBL_WELCOME_TO_CHAT' => 'welcome_to_chat',
464  'LBL_USER_INVITED' => 'user_invited',
465  'LBL_USER_KICKED' => 'user_kicked',
466  'LBL_USER_INVITED_SELF' => 'user_invited_self',
467  'LBL_PRIVATE_ROOM_CLOSED' => 'private_room_closed',
468  'LBL_PRIVATE_ROOM_ENTERED' => 'private_room_entered',
469  'LBL_PRIVATE_ROOM_LEFT' => 'private_room_left',
470  'LBL_PRIVATE_ROOM_ENTERED_USER' => 'private_room_entered_user',
471  'LBL_KICKED_FROM_PRIVATE_ROOM' => 'kicked_from_private_room',
472  'LBL_OK' => 'ok',
473  'LBL_INVITE' => 'chat_invite',
474  'LBL_CANCEL' => 'cancel',
475  'LBL_WHISPER_TO' => 'whisper_to',
476  'LBL_SPEAK_TO' => 'speak_to',
477  'LBL_HISTORY_CLEARED' => 'history_cleared',
478  'LBL_CLEAR_ROOM_HISTORY' => 'clear_room_history',
479  'LBL_CLEAR_ROOM_HISTORY_QUESTION' => 'clear_room_history_question',
480  'LBL_END_WHISPER' => 'end_whisper',
481  'LBL_SHOW_SETTINGS_JS' => 'show_settings',
482  'LBL_HIDE_SETTINGS' => 'hide_settings',
483  'LBL_TIMEFORMAT' => 'lang_timeformat_no_sec',
484  'LBL_DATEFORMAT' => 'lang_dateformat'
485  );
486  foreach($js_translations as $placeholder => $lng_variable)
487  {
488  $roomTpl->setVariable($placeholder, json_encode($lng->txt($lng_variable)));
489  }
490 
491  $roomTpl->setVariable('LBL_CREATE_PRIVATE_ROOM', $lng->txt('chat_create_private_room_button'));
492  $roomTpl->setVariable('LBL_CREATE_PRIVATE_ROOM_TEXT', $lng->txt('create_private_room_text'));
493  $roomTpl->setVariable('LBL_LAYOUT', $lng->txt('layout'));
494  $roomTpl->setVariable('LBL_SHOW_SETTINGS', $lng->txt('show_settings'));
495  $roomTpl->setVariable('LBL_USER_IN_ROOM', $lng->txt('user_in_room'));
496  $roomTpl->setVariable('LBL_USER_IN_ILIAS', $lng->txt('user_in_ilias'));
497  }
498 
502  protected function renderRightUsersBlock(ilTemplate $roomTpl)
503  {
507  global $lng;
508 
509  $roomTpl->setVariable('LBL_NO_FURTHER_USERS', $lng->txt('no_further_users'));
510  }
511 
518  private function showNameSelection(ilChatroomUser $chat_user)
519  {
525  global $lng, $ilCtrl, $tpl;
526 
527  require_once 'Modules/Chatroom/classes/class.ilChatroomFormFactory.php';
528 
529  $name_options = $chat_user->getChatNameSuggestions();
530  $formFactory = new ilChatroomFormFactory();
531  $selectionForm = $formFactory->getUserChatNameSelectionForm($name_options);
532 
533  $ilCtrl->saveParameter($this->gui, 'sub');
534 
535  $selectionForm->addCommandButton('view-joinWithCustomName', $lng->txt('enter'));
536  $selectionForm->setFormAction(
537  $ilCtrl->getFormAction($this->gui, 'view-joinWithCustomName')
538  );
539 
540  $tpl->setVariable('ADM_CONTENT', $selectionForm->getHtml());
541  }
542 
549  public function executeDefault($method)
550  {
556  global $ilUser, $lng, $ilCtrl;
557 
558  include_once 'Modules/Chatroom/classes/class.ilChatroom.php';
559 
560  ilChatroom::checkUserPermissions('read', $this->gui->ref_id);
561 
562  $this->gui->switchToVisibleMode();
563  $this->setupTemplate();
564 
565  $chatSettings = new ilSetting('chatroom');
566  if(!$chatSettings->get('chat_enabled'))
567  {
568  $ilCtrl->redirect($this->gui, 'settings-general');
569  exit;
570  }
571 
572  $room = ilChatroom::byObjectId($this->gui->object->getId());
573 
574  if(!$room->getSetting('allow_anonymous') && $ilUser->isAnonymous())
575  {
576  $this->cancelJoin($lng->txt('anonymous_not_allowed'));
577  return;
578  }
579 
580  $chat_user = new ilChatroomUser($ilUser, $room);
581 
582  if($room->getSetting('allow_custom_usernames'))
583  {
584  if($room->isSubscribed($chat_user->getUserId()))
585  {
586  $chat_user->setUsername($chat_user->getUsername());
587  $this->showRoom($room, $chat_user);
588  }
589  else
590  {
591  $this->showNameSelection($chat_user);
592  }
593  }
594  else
595  {
596  $chat_user->setUsername($ilUser->getLogin());
597  $this->showRoom($room, $chat_user);
598  }
599  }
600 
604  public function invitePD()
605  {
610  global $ilUser, $ilCtrl;
611 
612  $chatSettings = new ilSetting('chatroom');
613  if(!$chatSettings->get('chat_enabled'))
614  {
615  $ilCtrl->redirect($this->gui, 'settings-general');
616  }
617 
618  $room = ilChatroom::byObjectId($this->gui->object->getId());
619  $chat_user = new ilChatroomUser($ilUser, $room);
620  $user_id = $_REQUEST['usr_id'];
621  $connector = $this->gui->getConnector();
622  $title = $room->getUniquePrivateRoomTitle($chat_user->buildLogin());
623  $subRoomId = $room->addPrivateRoom($title, $chat_user, array('public' => false));
624 
625  $room->inviteUserToPrivateRoom($user_id, $subRoomId);
626  $connector->sendCreatePrivateRoom($room->getRoomId(), $subRoomId, $chat_user->getUserId(), $title);
627  $connector->sendInviteToPrivateRoom($room->getRoomId(), $subRoomId, $chat_user->getUserId(), $user_id);
628 
629  $room->sendInvitationNotification($this->gui, $chat_user, $user_id, $subRoomId);
630 
631  $_REQUEST['sub'] = $subRoomId;
632 
633  $_SESSION['show_invitation_message'] = $user_id;
634 
635  $ilCtrl->setParameter($this->gui, 'sub', $subRoomId);
636  $ilCtrl->redirect($this->gui, 'view');
637  }
638 
642  public function logout()
643  {
648  global $tree, $ilCtrl;
649 
653  $pid = $tree->getParentId($this->gui->getRefId());
654  $ilCtrl->setParameterByClass('ilrepositorygui', 'ref_id', $pid);
655  $ilCtrl->redirectByClass('ilrepositorygui', '');
656  }
657 
661  public function lostConnection()
662  {
667  global $lng, $ilCtrl;
668 
669  if(isset($_GET['msg']))
670  {
671  switch($_GET['msg'])
672  {
673  case 'kicked':
674  ilUtil::sendFailure($lng->txt('kicked'), true);
675  break;
676 
677  case 'banned':
678  ilUtil::sendFailure($lng->txt('banned'), true);
679  break;
680 
681  default:
682  ilUtil::sendFailure($lng->txt('lost_connection'), true);
683  break;
684  }
685  }
686  else
687  {
688  ilUtil::sendFailure($lng->txt('lost_connection'), true);
689  }
690 
691  $ilCtrl->redirectByClass('ilinfoscreengui', 'info');
692  }
693 }
ILIAS Setting Class.
$failure
getUserId()
Returns Ilias User ID.
getActivePrivateRooms($userid)
getUniquePrivateRoomTitle($title)
setUsername($username)
Sets and stores given username in SESSION.
getRoomId()
Returns roomID from $this->roomId.
$_SESSION["AccountId"]
$_GET["client_id"]
isUserBanned($user_id)
Returns true if there&#39;s an entry in banTable matching roomId and given $user_id ilDBInterface $ilDB...
executeDefault($requestedMethod)
getLastMessages($number, $chatuser=null)
Class ilChatroomViewGUI.
getSetting($name)
Returns setting from $this->settings array by given name.
isSubscribed($chat_userid)
Returns true if entry exists in userTable matching given $chat_userid and $this->roomId.
Class ilChatroomFormFactory.
global $tpl
Definition: ilias.php:8
static initJS()
Init javascript.
setVariable($variable, $value='')
Sets a variable value.
Definition: IT.php:613
static checkUserPermissions($permissions, $ref_id, $send_info=true)
Checks user permissions by given array and ref_id.
Class ilChatroomGUIHandler.
addPrivateRoom($title, ilChatroomUser $owner, $settings)
special template class to simplify handling of ITX/PEAR
getConnectedUsers()
Returns an array of connected users.
subscribeUserToPrivateRoom($room_id, $user_id)
isSuccessful($response)
Checks for success param in an json decoded response.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
setCurrentBlock($part="DEFAULT")
Überladene Funktion, die sich hier lokal noch den aktuellen Block merkt.
Class ilChatroom.
renderFileUploadForm(ilTemplate $roomTpl)
Prepares Fileupload form and displays it.
getChatNameSuggestions()
Returns an array of chat-name suggestions.
static getInstance()
Get instance.
cancelJoin($message)
Calls ilUtil::sendFailure method using given $message as parameter.
Class ilChatroomUser.
global $lng
Definition: privfeed.php:17
const PANEL_STYLE_SECONDARY
static byObjectId($object_id)
Returns ilChatroom object by given $object_id.
getUsername()
Returns username from Object or SESSION.
const HEADING_STYLE_BLOCK
$params
Definition: example_049.php:96
parseCurrentBlock($part="DEFAULT")
Überladene Funktion, die auf den aktuelle Block vorher noch ein replace ausführt public...
isAllowedToEnterPrivateRoom($chat_userid, $proom_id)