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
4require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
5require_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}
global $tpl
Definition: ilias.php:8
$failure
$_GET["client_id"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
setVariable($variable, $value='')
Sets a variable value.
Definition: IT.php:613
Class ilChatroomFormFactory.
Class ilChatroomGUIHandler.
Class ilChatroomUser.
getChatNameSuggestions()
Returns an array of chat-name suggestions.
getUserId()
Returns Ilias User ID.
setUsername($username)
Sets and stores given username in SESSION.
buildLogin()
Returns user login.
getUsername()
Returns username from Object or SESSION.
Class ilChatroomViewGUI.
renderFileUploadForm(ilTemplate $roomTpl)
Prepares Fileupload form and displays it.
cancelJoin($message)
Calls ilUtil::sendFailure method using given $message as parameter.
Class ilChatroom.
isSubscribed($chat_userid)
Returns true if entry exists in userTable matching given $chat_userid and $this->roomId.
isUserBanned($user_id)
Returns true if there's an entry in banTable matching roomId and given $user_id @global ilDBInterface...
addPrivateRoom($title, ilChatroomUser $owner, $settings)
static byObjectId($object_id)
Returns ilChatroom object by given $object_id.
getConnectedUsers()
Returns an array of connected users.
static checkUserPermissions($permissions, $ref_id, $send_info=true)
Checks user permissions by given array and ref_id.
getActivePrivateRooms($userid)
subscribeUserToPrivateRoom($room_id, $user_id)
getLastMessages($number, $chatuser=null)
getRoomId()
Returns roomID from $this->roomId.
getUniquePrivateRoomTitle($title)
getSetting($name)
Returns setting from $this->settings array by given name.
isAllowedToEnterPrivateRoom($chat_userid, $proom_id)
static initJS()
Init javascript.
const PANEL_STYLE_SECONDARY
const HEADING_STYLE_BLOCK
static getInstance()
Get instance.
ILIAS Setting Class.
special template class to simplify handling of ITX/PEAR
parseCurrentBlock($part="DEFAULT")
Überladene Funktion, die auf den aktuelle Block vorher noch ein replace ausführt @access public.
setCurrentBlock($part="DEFAULT")
Überladene Funktion, die sich hier lokal noch den aktuellen Block merkt.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$params
Definition: example_049.php:96
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:17
$ilUser
Definition: imgupload.php:18