4 require_once
'Services/Mail/classes/class.ilFormatMail.php';
5 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
82 $this->tpl = $DIC[
'tpl'];
83 $this->ctrl = $DIC[
'ilCtrl'];
84 $this->lng = $DIC[
'lng'];
85 $this->tabs_gui = $DIC[
'ilTabs'];
86 $this->help = $DIC[
'ilHelp'];
87 $this->toolbar = $DIC[
'ilToolbar'];
88 $this->
user = $DIC[
'ilUser'];
89 $this->error = $DIC[
'ilErr'];
90 $this->rbacsystem = $DIC[
'rbacsystem'];
92 $this->ctrl->saveParameter($this,
"mobj_id");
95 $this->lng->loadLanguageModule(
'buddysystem');
102 $forward_class = $this->ctrl->getNextClass($this);
105 $this->umail->savePostData($this->
user->getId(), array(),
'',
'',
'',
'',
'',
'',
'',
'');
107 switch ($forward_class) {
108 case 'ilmailformgui':
109 include_once
'Services/Mail/classes/class.ilMailFormGUI.php';
113 case 'ilmailsearchcoursesgui':
114 include_once
'Services/Contact/classes/class.ilMailSearchCoursesGUI.php';
118 $this->ctrl->setReturn($this,
"showContacts");
122 case 'ilmailsearchgroupsgui':
123 include_once
'Services/Contact/classes/class.ilMailSearchGroupsGUI.php';
127 $this->ctrl->setReturn($this,
"showContacts");
131 case 'ilmailinglistsgui':
132 include_once
'Services/Contact/classes/class.ilMailingListsGUI.php';
136 $this->ctrl->setReturn($this,
"showContacts");
140 case 'ilusersgallerygui':
142 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
145 $this->tabs_gui->activateSubTab(
'buddy_view_gallery');
147 require_once
'Services/User/Gallery/classes/class.ilUsersGalleryContacts.php';
148 require_once
'Services/User/Gallery/classes/class.ilUsersGalleryGUI.php';
153 case 'ilpublicuserprofilegui':
154 require_once
'Services/User/classes/class.ilPublicUserProfileGUI.php';
156 $profile_gui->setBackUrl($this->ctrl->getLinkTarget($this,
'showContacts'));
157 $this->ctrl->forwardCommand($profile_gui);
164 if (!($cmd = $this->ctrl->getCmd())) {
166 $cmd =
'showContacts';
168 $this->ctrl->redirectByClass(
'ilmailsearchcoursesgui');
183 if ($this->tabs_gui->hasTabs()) {
185 $this->tabs_gui->addSubTab(
'my_contacts', $this->lng->txt(
'my_contacts'), $this->ctrl->getLinkTarget($this));
187 if (in_array(strtolower($this->ctrl->getCmdClass()), array_map(
'strtolower', array(
'ilUsersGalleryGUI', get_class($this))))) {
188 require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
190 $view_selection->setOptions(array(
191 self::CONTACTS_VIEW_TABLE => $this->lng->txt(
'buddy_view_table'),
192 self::CONTACTS_VIEW_GALLERY => $this->lng->txt(
'buddy_view_gallery')
194 $view_selection->setValue(
195 strtolower($this->ctrl->getCmdClass()) ==
'ilusersgallerygui' ? self::CONTACTS_VIEW_GALLERY : self::CONTACTS_VIEW_TABLE
197 $this->toolbar->addInputItem($view_selection);
199 require_once
'Services/UIComponent/Button/classes/class.ilSubmitButton.php';
201 $contact_view_btn->setCaption(
'submit');
202 $contact_view_btn->setCommand(
'changeContactsView');
203 $this->toolbar->addButtonInstance($contact_view_btn);
204 $this->toolbar->setFormAction($this->ctrl->getFormAction($this,
'changeContactsView'));
211 $this->tabs_gui->addSubTab(
212 'mail_my_mailing_lists',
213 $this->lng->txt(
'mail_my_mailing_lists'),
214 $this->ctrl->getLinkTargetByClass(
'ilmailinglistsgui')
219 $this->tabs_gui->addSubTab(
'mail_my_courses', $this->lng->txt(
'mail_my_courses'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchcoursesgui'));
220 $this->tabs_gui->addSubTab(
'mail_my_groups', $this->lng->txt(
'mail_my_groups'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchgroupsgui'));
221 $this->has_sub_tabs =
true;
223 $this->help->setScreenIdComponent(
'contacts');
226 $this->tabs_gui->addTab(
'my_contacts', $this->lng->txt(
'my_contacts'), $this->ctrl->getLinkTarget($this));
228 if (in_array(strtolower($this->ctrl->getCmdClass()), array_map(
'strtolower', array(
'ilUsersGalleryGUI', get_class($this))))) {
229 $this->tabs_gui->addSubTab(
'buddy_view_table', $this->lng->txt(
'buddy_view_table'), $this->ctrl->getLinkTarget($this));
230 $this->tabs_gui->addSubTab(
'buddy_view_gallery', $this->lng->txt(
'buddy_view_gallery'), $this->ctrl->getLinkTargetByClass(
'ilUsersGalleryGUI'));
237 $this->tabs_gui->addTab(
238 'mail_my_mailing_lists',
239 $this->lng->txt(
'mail_my_mailing_lists'),
240 $this->ctrl->getLinkTargetByClass(
'ilmailinglistsgui')
245 $this->tabs_gui->addTab(
'mail_my_courses', $this->lng->txt(
'mail_my_courses'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchcoursesgui'));
246 $this->tabs_gui->addTab(
'mail_my_groups', $this->lng->txt(
'mail_my_groups'), $this->ctrl->getLinkTargetByClass(
'ilmailsearchgroupsgui'));
255 if ($this->has_sub_tabs) {
256 $this->tabs_gui->activateSubTab($a_id);
258 $this->tabs_gui->activateTab($a_id);
268 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
271 if (isset(
$_POST[
'contacts_view'])) {
272 switch (
$_POST[
'contacts_view']) {
273 case self::CONTACTS_VIEW_GALLERY:
274 $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
277 case self::CONTACTS_VIEW_TABLE:
278 $this->ctrl->redirect($this);
283 $this->ctrl->redirect($this);
292 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
295 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
299 $table->writeFilterToSession();
310 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
313 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
328 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
331 $this->tabs_gui->activateSubTab(
'buddy_view_table');
334 require_once
'Services/Contact/BuddySystem/classes/tables/class.ilBuddySystemRelationsTableGUI.php';
337 $this->tpl->setContent(
$table->getHTML());
347 $this->error->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->error->MESSAGE);
350 if (!isset(
$_POST[
'usr_id']) || !is_array(
$_POST[
'usr_id']) || 0 == count(
$_POST[
'usr_id'])) {
356 $usr_ids = (array)
$_POST[
'usr_id'];
358 $mail_data = $this->umail->getSavedData();
359 if (!is_array($mail_data)) {
360 $this->umail->savePostData($this->
user->getId(), array(),
'',
'',
'',
'',
'',
'',
'',
'');
364 foreach ($usr_ids as $usr_id) {
367 $logins = array_filter($logins);
369 if (count($logins) > 0) {
370 $mail_data = $this->umail->appendSearchResult($logins,
'to');
371 $this->umail->savePostData(
372 $mail_data[
'user_id'],
373 $mail_data[
'attachments'],
374 $mail_data[
'rcp_to'],
375 $mail_data[
'rcp_cc'],
376 $mail_data[
'rcp_bcc'],
377 $mail_data[
'm_type'],
378 $mail_data[
'm_email'],
379 $mail_data[
'm_subject'],
380 $mail_data[
'm_message'],
381 $mail_data[
'use_placeholders'],
382 $mail_data[
'tpl_ctx_id'],
383 $mail_data[
'tpl_ctx_params']
396 if (!isset(
$_POST[
'usr_id']) || !strlen(
$_POST[
'usr_id'])) {
398 $this->ctrl->redirect($this);
403 $_POST[
'usr_id'] = explode(
',', $_POST[
'usr_id']);
409 $usr_ids = explode(
',',
$_POST[
'usr_id']);
412 $room_ids = explode(
',',
$_POST[
'room_id']);
413 $room_id = (int) $room_ids[0];
416 if (count($room_ids) > 0) {
417 $scope = (int) $room_ids[1];
420 include_once
'Modules/Chatroom/classes/class.ilChatroom.php';
423 $no_access = array();
425 $valid_users = array();
426 $valid_user_to_login_map = array();
428 foreach ($usr_ids as $usr_id) {
431 $no_login[$usr_id] = $usr_id;
435 $ref_id = $room->getRefIdByRoomId($room_id);
439 $room->isUserBanned($usr_id)
441 $no_access[$usr_id] =
$login;
443 $valid_users[$usr_id] = $usr_id;
444 $valid_user_to_login_map[$usr_id] =
$login;
448 if (count($no_access) || count($no_login)) {
451 if (count($no_access) > 0) {
452 $message .= $this->lng->txt(
'chat_users_without_permission') .
':<br>';
455 foreach ($no_access as $usr_id =>
$login) {
464 if (count($no_login)) {
465 $message .= $this->lng->txt(
'chat_users_without_login') .
':<br>';
468 foreach ($no_login as $usr_id) {
469 $list .=
'<li>' . $usr_id .
'</li>';
478 $_POST[
'usr_id'] = $usr_ids;
483 $ref_id = $room->getRefIdByRoomId($room_id);
485 require_once
'Services/Link/classes/class.ilLink.php';
491 $link =
'<p><a target="chatframe" href="' .
$url .
'" title="' . $this->lng->txt(
'goto_invitation_chat') .
'">' . $this->lng->txt(
'goto_invitation_chat') .
'</a></p>';
494 foreach ($valid_users as
$id) {
495 $room->inviteUserToPrivateRoom($id, $scope);
496 $room->sendInvitationNotification(
498 $this->
user->getId(),
503 $userlist[] =
'<li>' . $valid_user_to_login_map[
$id] .
'</li>';
507 ilUtil::sendSuccess($this->lng->txt(
'chat_users_have_been_invited') .
'<ul>' . implode(
'', $userlist) .
'</ul>' . $link,
true);
510 $this->ctrl->redirect($this);
518 $this->tabs_gui->activateSubTab(
'buddy_view_table');
521 $this->lng->loadLanguageModule(
'chatroom');
523 if (!isset(
$_POST[
'usr_id']) || !is_array(
$_POST[
'usr_id']) || 0 == count(
$_POST[
'usr_id'])) {
525 $this->ctrl->redirect($this);
527 $usr_ids =
$_POST[
'usr_id'];
529 require_once
'Modules/Chatroom/classes/class.ilChatroom.php';
532 $chat_rooms = $ilChatroom->getAccessibleRoomIdByTitleMap($this->
user->getId());
535 foreach ($chat_rooms as $room_id =>
$title) {
536 $subrooms[] = $ilChatroom->getPrivateSubRooms($room_id, $this->
user->getId());
539 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
542 $form->setTitle($this->lng->txt(
'mail_invite_users_to_chat'));
544 $psel =
new ilSelectInputGUI($this->lng->txt(
'chat_select_room'),
'room_id');
548 foreach ($chat_rooms as $room_id => $room) {
551 if ($ilChatroom->isUserBanned($this->user->getId())) {
555 $options[$ref_id] = $room;
557 foreach ($subrooms as $subroom) {
558 foreach ($subroom as $sub_id => $parent_id) {
559 if ($parent_id == $ref_id) {
561 $options[$ref_id .
',' . $sub_id] =
'+ ' .
$title;
567 $psel->setOptions($options);
568 $form->addItem($psel);
570 $phidden->setValue(implode(
',', $usr_ids));
571 $form->addItem($phidden);
572 $form->addCommandButton(
'submitInvitation', $this->lng->txt(
'submit'));
573 $form->addCommandButton(
'showContacts', $this->lng->txt(
'cancel'));
574 $form->setFormAction($this->ctrl->getFormAction($this,
'showContacts'));
576 $this->tpl->setTitle($this->lng->txt(
'mail_invite_users_to_chat'));
577 $this->tpl->setContent(
$form->getHTML());
static _lookupLogin($a_user_id)
lookup login
if(isset($_REQUEST['delete'])) $list
static getInstanceByGlobalUser()
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.
if(!array_key_exists('StateId', $_REQUEST)) $id
ilUsersGalleryGUI: ilPublicUserProfileGUI ilUsersGalleryGUI: ilCourseMembershipGUI, ilGroupMembershipGUI
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
GUI class for public user profile presentation.
catch(Exception $e) $message
if(isset($_POST['submit'])) $form
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...
if(empty($password)) $table
static redirect($a_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.