4 require_once
'Services/Mail/classes/class.ilFormatMail.php';
5 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
37 $this->tabs_gui = $ilTabs;
39 $this->ctrl->saveParameter($this,
"mobj_id");
42 $this->lng->loadLanguageModule(
'buddysystem');
45 public function executeCommand()
55 $forward_class = $this->ctrl->getNextClass($this);
58 $this->umail->savePostData($ilUser->getId(), array(),
'',
'',
'',
'',
'',
'',
'',
'');
60 switch($forward_class)
63 include_once
'Services/Mail/classes/class.ilMailFormGUI.php';
67 case 'ilmailsearchcoursesgui':
68 include_once
'Services/Contact/classes/class.ilMailSearchCoursesGUI.php';
72 $this->ctrl->setReturn($this,
"showContacts");
76 case 'ilmailsearchgroupsgui':
77 include_once
'Services/Contact/classes/class.ilMailSearchGroupsGUI.php';
81 $this->ctrl->setReturn($this,
"showContacts");
85 case 'ilmailinglistsgui':
88 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
91 include_once
'Services/Contact/classes/class.ilMailingListsGUI.php';
95 $this->ctrl->setReturn($this,
"showContacts");
99 case 'ilusersgallerygui':
102 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
105 $this->tabs_gui->activateSubTab(
'buddy_view_gallery');
107 require_once
'Services/User/classes/class.ilUsersGalleryUsers.php';
108 require_once
'Services/User/classes/class.ilUsersGalleryGUI.php';
113 case 'ilpublicuserprofilegui':
114 require_once
'Services/User/classes/class.ilPublicUserProfileGUI.php';
116 $profile_gui->setBackUrl($this->ctrl->getLinkTarget($this,
'showContacts'));
117 $this->ctrl->forwardCommand($profile_gui);
124 if (!(
$cmd = $this->ctrl->getCmd()))
128 $cmd =
'showContacts';
132 $this->ctrl->redirectByClass(
'ilmailsearchcoursesgui');
145 private function showSubTabs()
151 global $ilHelp, $ilToolbar;
153 if($this->tabs_gui->hasTabs())
157 $this->tabs_gui->addSubTab(
'my_contacts', $this->lng->txt(
'my_contacts'), $this->ctrl->getLinkTarget($this));
159 if(in_array(strtolower($this->ctrl->getCmdClass()), array_map(
'strtolower', array(
'ilUsersGalleryGUI', get_class($this)))))
161 require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
163 $view_selection->setOptions(array(
164 self::CONTACTS_VIEW_TABLE => $this->lng->txt(
'buddy_view_table'),
165 self::CONTACTS_VIEW_GALLERY => $this->lng->txt(
'buddy_view_gallery')
167 $view_selection->setValue(
168 strtolower($this->ctrl->getCmdClass()) ==
'ilusersgallerygui' ? self::CONTACTS_VIEW_GALLERY : self::CONTACTS_VIEW_TABLE
170 $ilToolbar->addInputItem($view_selection);
172 require_once
'Services/UIComponent/Button/classes/class.ilSubmitButton.php';
174 $contact_view_btn->setCaption(
'submit');
175 $contact_view_btn->setCommand(
'changeContactsView');
176 $ilToolbar->addButtonInstance($contact_view_btn);
177 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
'changeContactsView'));
180 $this->tabs_gui->addSubTab(
'mail_my_mailing_lists', $this->lng->txt(
'mail_my_mailing_lists'), $this->ctrl->getLinkTargetByClass(
'ilmailinglistsgui'));
183 $this->tabs_gui->addSubTab(
'mail_my_courses', $this->lng->txt(
'mail_my_courses'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchcoursesgui'));
184 $this->tabs_gui->addSubTab(
'mail_my_groups', $this->lng->txt(
'mail_my_groups'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchgroupsgui'));
185 $this->has_sub_tabs =
true;
189 $ilHelp->setScreenIdComponent(
"contacts");
193 $this->tabs_gui->addTab(
'my_contacts', $this->lng->txt(
'my_contacts'), $this->ctrl->getLinkTarget($this));
195 if(in_array(strtolower($this->ctrl->getCmdClass()), array_map(
'strtolower', array(
'ilUsersGalleryGUI', get_class($this)))))
197 $this->tabs_gui->addSubTab(
'buddy_view_table', $this->lng->txt(
'buddy_view_table'), $this->ctrl->getLinkTarget($this));
198 $this->tabs_gui->addSubTab(
'buddy_view_gallery', $this->lng->txt(
'buddy_view_gallery'), $this->ctrl->getLinkTargetByClass(
'ilUsersGalleryGUI'));
201 $this->tabs_gui->addTab(
'mail_my_mailing_lists', $this->lng->txt(
'mail_my_mailing_lists'), $this->ctrl->getLinkTargetByClass(
'ilmailinglistsgui'));
204 $this->tabs_gui->addTab(
'mail_my_courses', $this->lng->txt(
'mail_my_courses'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchcoursesgui'));
205 $this->tabs_gui->addTab(
'mail_my_groups', $this->lng->txt(
'mail_my_groups'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchgroupsgui'));
211 if($this->has_sub_tabs)
213 $this->tabs_gui->activateSubTab($a_id);
217 $this->tabs_gui->activateTab($a_id);
224 protected function changeContactsView()
233 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
236 if(isset(
$_POST[
'contacts_view']))
238 switch(
$_POST[
'contacts_view'])
240 case self::CONTACTS_VIEW_GALLERY:
241 $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
244 case self::CONTACTS_VIEW_TABLE:
245 $this->ctrl->redirect($this);
250 $this->ctrl->redirect($this);
256 protected function applyContactsTableFilter()
265 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
268 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
271 $table->resetOffset();
272 $table->writeFilterToSession();
274 $this->showContacts();
280 protected function resetContactsTableFilter()
289 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
292 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
295 $table->resetOffset();
296 $table->resetFilter();
298 $this->showContacts();
304 protected function showContacts()
313 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
316 $this->tabs_gui->activateSubTab(
'buddy_view_table');
319 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
322 $this->tpl->setContent($table->getHTML());
329 protected function mailToUsers()
340 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
343 if(!isset(
$_POST[
'usr_id']) || !is_array(
$_POST[
'usr_id']) || 0 == count(
$_POST[
'usr_id']))
346 $this->showContacts();
350 $usr_ids = (array)
$_POST[
'usr_id'];
352 $mail_data = $this->umail->getSavedData();
353 if(!is_array($mail_data))
355 $this->umail->savePostData($ilUser->getId(), array(),
'',
'',
'',
'',
'',
'',
'',
'');
359 foreach($usr_ids as $usr_id)
363 $logins = array_filter($logins);
365 if(count($logins) > 0)
367 $mail_data = $this->umail->appendSearchResult($logins,
'to');
368 $this->umail->savePostData(
369 $mail_data[
'user_id'],
370 $mail_data[
'attachments'],
371 $mail_data[
'rcp_to'],
372 $mail_data[
'rcp_cc'],
373 $mail_data[
'rcp_bcc'],
374 $mail_data[
'm_type'],
375 $mail_data[
'm_email'],
376 $mail_data[
'm_subject'],
377 $mail_data[
'm_message'],
378 $mail_data[
'use_placeholders'],
379 $mail_data[
'tpl_ctx_id'],
380 $mail_data[
'tpl_ctx_params']
391 public function submitInvitation()
400 if(!isset(
$_POST[
'usr_id']) || !strlen(
$_POST[
'usr_id']))
403 $ilCtrl->redirect($this);
409 $_POST[
'usr_id'] = explode(
',', $_POST[
'usr_id']);
410 $this->inviteToChat();
415 $usr_ids = explode(
',',
$_POST[
'usr_id']);
418 $room_ids = explode(
',',
$_POST[
'room_id']);
419 $room_id = (int)$room_ids[0];
422 if(count($room_ids) > 0)
424 $scope = (int)$room_ids[1];
427 include_once
'Modules/Chatroom/classes/class.ilChatroom.php';
430 $no_access = array();
432 $valid_users = array();
433 $valid_user_to_login_map = array();
435 foreach($usr_ids as $usr_id)
440 $no_login[$usr_id] = $usr_id;
444 $ref_id = $room->getRefIdByRoomId($room_id);
448 $room->isUserBanned($usr_id)
451 $no_access[$usr_id] = $login;
455 $valid_users[$usr_id] = $usr_id;
456 $valid_user_to_login_map[$usr_id] = $login;
460 if(count($no_access) || count($no_login))
464 if(count($no_access) > 0)
466 $message .= $lng->txt(
'chat_users_without_permission') .
':<br>';
469 foreach($no_access as $usr_id => $login)
471 $list .=
'<li>' . $login .
'</li>';
481 $message .= $lng->txt(
'chat_users_without_login') .
':<br>';
484 foreach($no_login as $usr_id)
486 $list .=
'<li>' . $usr_id .
'</li>';
495 $_POST[
'usr_id'] = $usr_ids;
496 $this->inviteToChat();
500 $ref_id = $room->getRefIdByRoomId($room_id);
502 require_once
'Services/Link/classes/class.ilLink.php';
511 $link =
'<p><a target="chatframe" href="' .
$url .
'" title="' . $lng->txt(
'goto_invitation_chat') .
'">' .$lng->txt(
'goto_invitation_chat') .
'</a></p>';
514 foreach($valid_users as $id)
516 $room->inviteUserToPrivateRoom($id, $scope);
517 $room->sendInvitationNotification(
518 null, $ilUser->getId(), $id, (int)$scope,
$url 520 $userlist[] =
'<li>'.$valid_user_to_login_map[$id].
'</li>';
525 ilUtil::sendSuccess($lng->txt(
'chat_users_have_been_invited') .
'<ul>'.implode(
'', $userlist).
'</ul>' . $link,
true);
528 $ilCtrl->redirect($this);
534 protected function inviteToChat()
544 $this->tabs_gui->activateSubTab(
'buddy_view_table');
547 $lng->loadLanguageModule(
'chatroom');
549 if(!isset(
$_POST[
'usr_id']) || !is_array(
$_POST[
'usr_id']) || 0 == count(
$_POST[
'usr_id']))
552 $ilCtrl->redirect($this);
554 $usr_ids =
$_POST[
'usr_id'];
556 require_once
'Modules/Chatroom/classes/class.ilChatroom.php';
559 $chat_rooms = $ilChatroom->getAllRooms($ilUser->getId());
562 foreach($chat_rooms as $room_id => $title)
564 $subrooms[] = $ilChatroom->getPrivateSubRooms($room_id, $ilUser->getId());
567 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
570 $form->setTitle($lng->txt(
'mail_invite_users_to_chat'));
575 foreach($chat_rooms as $room_id => $room)
579 if($ilChatroom->isUserBanned($ilUser->getId()))
586 foreach($subrooms as $subroom)
588 foreach($subroom as $sub_id => $parent_id)
593 $options[
$ref_id .
',' . $sub_id] =
'+ ' . $title;
600 $form->addItem($psel);
602 $phidden->setValue(implode(
',', $usr_ids));
603 $form->addItem($phidden);
604 $form->addCommandButton(
'submitInvitation', $this->lng->txt(
'submit'));
605 $form->addCommandButton(
'showContacts', $this->lng->txt(
'cancel'));
606 $form->setFormAction($ilCtrl->getFormAction($this,
'showContacts'));
608 $tpl->setTitle($lng->txt(
'mail_invite_users_to_chat'));
609 $tpl->setContent($form->getHtml());
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static _lookupLogin($a_user_id)
lookup login
static _getStaticLink($a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
static byRoomId($room_id, $initObject=false)
Returns ilChatroom by given $room_id.
ilUsersGalleryGUI: ilPublicUserProfileGUI ilUsersGalleryGUI: ilObjCourseGUI, ilObjGroupGUI ...
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
GUI class for public user profile presentation.
if(!is_array($argv)) $options
static lookupPrivateRoomTitle($proom_id)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable...
static redirect($a_script)
http redirect to other script
static checkPermissionsOfUser($usr_id, $permissions, $ref_id)
Checks user permissions in question for a given user id in relation to a given ref_id.
Class ilUsersGalleryUsers.