ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilChatroomBlock.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
5 
12 {
16  private function getReadableAreas()
17  {
22  global $ilUser, $rbacsystem;
23 
24  $readable_rooms = array();
25 
26  $chatroom_objects = ilChatroom::getUntrashedChatReferences();
27  foreach($chatroom_objects as $object)
28  {
29  if(isset($readable_rooms[$object['obj_id']]))
30  {
31  continue;
32  }
33 
34  if($rbacsystem->checkAccess('read', '', $object['ref_id']))
35  {
36  $room = ilChatroom::byObjectId($object['obj_id']);
37  if($room && !$room->isUserBanned($ilUser->getId()))
38  {
39  $readable_rooms[$object['obj_id']] = array(
40  'ref_id' => $object['ref_id'],
41  'obj_id' => $object['obj_id'],
42  'room_id' => $room->getRoomId(),
43  'title' => $object['title'],
44  'parent_title' => $object['parent_title']
45  );
46  }
47  }
48  }
49 
50  $title = array();
51  foreach($readable_rooms as $k => $v)
52  {
53  $title[$k] = strtolower($v['title']);
54  }
55  array_multisort($title, SORT_STRING, $readable_rooms);
56 
57  return $readable_rooms;
58  }
59 
63  public function getRoomSelect()
64  {
69  global $lng, $ilUser;
70 
71  $readable = $this->getReadableAreas();
72  $tpl = new ilTemplate('tpl.chatroom_block_room_select.html', true, true, 'Modules/Chatroom');
73  $tpl->setVariable('TXT_SELECT_ROOM', $lng->txt('chat_select_room'));
74  foreach($readable as $room)
75  {
76  $tpl->setCurrentBlock('select_room_row');
77  $tpl->setVariable('ROW_VALUE', $room['ref_id']);
78  $tpl->setVariable('ROW_CAPTION', sprintf($lng->txt('room_in_container'), $room['title'], $room['parent_title']));
79 
80  if($ilUser->getPref('chatviewer_last_selected_room') == $room['ref_id'])
81  $tpl->setVariable('ROW_SELECTED', 'selected="selected"');
82 
83  $tpl->parseCurrentBlock();
84  }
85 
86  return $tpl->get();
87  }
88 
93  public function getMessages(ilChatroom $room)
94  {
98  global $ilUser;
99 
100  include 'Modules/Chatroom/classes/class.ilChatroomUser.php';
101  $messages = $room->getLastMessagesForChatViewer($room->getSetting('display_past_msgs'), new ilChatroomUser($ilUser, $room));
102 
103  $output_messages = array();
104 
105  foreach($messages as $msg)
106  {
107  $output_messages[] = $msg;
108  }
109 
110  return $output_messages;
111  }
112 }