31 $this->lng = $DIC->language();
42 $tokens = (array) explode(
'_', $value);
45 foreach ($tokens as
$token) {
46 $value .= ucfirst($token);
49 if ($upper_case_first ===
false) {
50 $value = strtolower(substr($value, 0, 1)) . substr($value, 1);
66 $stopCommands = array(
'create');
68 if (in_array($command, $stopCommands)) {
73 $public_room_ref = $settings->get(
'public_room_ref');
76 $firstObjId = current(array_keys($objIds));
78 $admin_ref = current($refIds);
80 $DIC->ctrl()->setParameterByClass(
'ilObjChatroomAdminGUI',
'ref_id', $admin_ref);
85 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilObjChatroomAdminGUI',
'view-clientsettings'),
86 'permission' =>
'read',
88 'clientsettings' => array(
89 'lng' =>
'client_settings',
90 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilObjChatroomAdminGUI',
'view-clientsettings'),
91 'permission' =>
'read' 97 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilObjChatroomAdminGUI',
'smiley'),
98 'permission' =>
'read' 101 $DIC->ctrl()->setParameterByClass(
'ilObjChatroomGUI',
'ref_id', $public_room_ref);
104 'lng' =>
'public_chat_settings',
105 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilObjChatroomGUI',
'settings-general'),
106 'permission' =>
'read',
110 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'settings-general'),
111 'permission' =>
'read' 115 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilObjChatroomGUI',
'ban-show'),
116 'permission' =>
'read' 121 $DIC->ctrl()->setParameterByClass(
'ilPermissionGUI',
'ref_id', $public_room_ref);
123 'lng' =>
'public_chat_permissions',
124 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilPermissionGUI',
'perm'),
125 'permission' =>
'read',
127 $DIC->ctrl()->clearParametersByClass(
'ilPermissionGUI');
129 $DIC->ctrl()->setParameterByClass(
'ilPermissionGUI',
'ref_id', $admin_ref);
130 $config[
'perm_settings'] = array(
131 'lng' =>
'perm_settings',
132 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilpermissiongui',
'perm'),
133 'permission' =>
'edit_permission',
135 $DIC->ctrl()->clearParametersByClass(
'ilPermissionGUI');
137 $commandParts = explode(
'_', $command, 2);
138 if ($command ==
'ban_show') {
139 $commandParts[0] =
'settings';
140 $commandParts[1] =
'ban';
141 } elseif ($command ==
'settings_general') {
142 $commandParts[0] =
'settings';
143 $commandParts[1] =
'settings';
144 } elseif ($command ==
'view_saveclientsettings') {
145 $commandParts[0] =
'view';
146 $commandParts[1] =
'clientsettings';
147 } elseif ($DIC->ctrl()->getCmdClass() ==
'ilpermissiongui' && $_REQUEST[
'ref_id'] == $public_room_ref) {
148 $commandParts[0] =
'perm';
149 $DIC->ctrl()->setParameterByClass(
'ilPermissionGUI',
'ref_id', $public_room_ref);
150 } elseif ($DIC->ctrl()->getCmdClass() ==
'ilpermissiongui' && $_REQUEST[
'ref_id'] == $admin_ref) {
151 $commandParts[0] =
'perm_settings';
152 $DIC->ctrl()->setParameterByClass(
'ilPermissionGUI',
'ref_id', $admin_ref);
166 return strtolower(preg_replace(
'/(.*?)-(.*?)/',
'$1_$2', $value));
181 require_once
'Modules/Chatroom/classes/class.ilChatroom.php';
182 foreach (
$config as $id => $tabDefinition) {
183 if (!$inRoom && !$DIC->rbac()->system()->checkAccess($tabDefinition[
'permission'], $this->gui->getRefId())) {
187 } elseif (isset($tabDefinition[
'enabled']) && !$tabDefinition[
'enabled']) {
191 $tabs->
addTab($id, $this->
getLabel($tabDefinition, $id), $tabDefinition[
'link']);
193 if ($command[0] == $id && isset($tabDefinition[
'subtabs']) &&
194 is_array($tabDefinition[
'subtabs'])
196 foreach ($tabDefinition[
'subtabs'] as $subid => $subTabDefinition) {
197 if (!$inRoom && !$DIC->rbac()->system()->checkAccess($tabDefinition[
'permission'], $this->gui->getRefId())) {
201 } elseif (isset($subTabDefinition[
'enabled']) && !$subTabDefinition[
'enabled']) {
206 $this->
getLabel($subTabDefinition, $subid),
207 $subTabDefinition[
'link']
225 if (isset($tabDefinition[
'lng'])) {
226 return $this->lng->txt($tabDefinition[
'lng']);
228 return $this->lng->txt($id);
242 if (count($commandParts) > 1) {
243 if (isset(
$config[$commandParts[0]])) {
244 $DIC->tabs()->activateTab($commandParts[0]);
246 if (isset(
$config[$commandParts[0]][
'subtabs'][$commandParts[1]])) {
247 $DIC->tabs()->activateSubTab($commandParts[1]);
250 } elseif (count($commandParts) == 1) {
251 $DIC->tabs()->activateTab($commandParts[0]);
265 $stopCommands = array(
'create');
267 if (in_array($command, $stopCommands)) {
271 require_once
'Modules/Chatroom/classes/class.ilChatroom.php';
277 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'view'),
278 'permission' =>
'read' 282 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'history-byday'),
283 'permission' =>
'read',
284 'enabled' => $room ? $room->getSetting(
'enable_history') :
false,
287 'lng' =>
'history_by_day',
288 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'history-byday'),
289 'permission' =>
'read' 291 'bysession' => array(
292 'lng' =>
'history_by_session',
293 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'history-bysession'),
294 'permission' =>
'read' 299 'lng' =>
'info_short',
300 'link' => $DIC->ctrl()->getLinkTargetByClass(array(get_class($this->gui),
'ilinfoscreengui'),
'info'),
301 'permission' =>
'read' 305 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'settings-general'),
306 'permission' =>
'write',
309 'lng' =>
'settings_general',
310 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'settings-general'),
311 'permission' =>
'write' 317 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'ban-show'),
318 'permission' =>
'moderate',
321 'lng' =>
'bans_table',
322 'link' => $DIC->ctrl()->getLinkTarget($this->gui,
'ban-show'),
323 'permission' =>
'moderate' 329 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilexportgui',
''),
330 'permission' =>
'write' 333 'lng' =>
'permissions',
334 'link' => $DIC->ctrl()->getLinkTargetByClass(
'ilpermissiongui',
'perm'),
335 'permission' =>
'edit_permission' 339 $commandParts = explode(
'_', $command, 2);
341 if ($DIC->ctrl()->getCmdClass() ==
'ilpermissiongui') {
342 $commandParts[0] =
'perm';
static convertUnderscoreCaseToLowerCamelCaseConversion($value, $upper_case_first=false)
Convert a value given in underscore case conversion to lower camel case conversion (e...
getLabel($tabDefinition, $id)
Returns label for tab by $tabDefinition or $id.
__construct(ilObjectGUI $gui)
static _getObjectsByType($a_obj_type="", $a_owner="")
Get objects by type.
static _getAllReferences($a_id)
get all reference ids of object
buildTabs(ilTabsGUI $tabs, $config, $command, $inRoom=true)
Builds tabs and subtabs using given $tabs, $config and $command parameters.
activateTab(array $commandParts, $config)
Activates tab or subtab if existing.
getTabsForCommand($command)
Builds $config and $commandparts arrays to assign them as parameters when calling $this->buildTabs an...
static checkUserPermissions($permissions, $ref_id, $send_info=true)
Checks user permissions by given array and ref_id.
getAdminTabsForCommand($command)
Builds $config and $commandparts arrays to assign them as parameters when calling $this->buildTabs an...
Class ilObjectGUI Basic methods of all Output classes.
addSubTab($a_id, $a_text, $a_link, $a_frame="")
Add a Subtab.
Class ilChatroomTabGUIFactory.
static convertLowerCamelCaseToUnderscoreCaseConversion($value)
Convert a value given in lower camel case conversion to underscore case conversion (e...
addTab($a_id, $a_text, $a_link, $a_frame="")
Add a Tab.
static byObjectId($object_id)
Returns ilChatroom object by given $object_id.