5 require_once
'./Services/User/classes/class.ilObjUser.php';
6 require_once
'Services/Mail/classes/class.ilMailbox.php';
7 require_once
'Services/Mail/classes/class.ilFormatMail.php';
8 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
27 public function __construct($wsp_access_handler = null, $wsp_node_id = null)
36 $this->wsp_access_handler = $wsp_access_handler;
37 $this->wsp_node_id = $wsp_node_id;
39 $this->ctrl->saveParameter($this,
"mobj_id");
40 $this->ctrl->saveParameter($this,
"ref");
43 include_once
"Services/Mail/classes/class.ilMail.php";
45 $this->mailing_allowed = $rbacsystem->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId());
50 public function executeCommand()
57 $forward_class = $this->ctrl->getNextClass($this);
58 switch($forward_class)
60 case 'ilbuddysystemgui':
63 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
66 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php';
67 $this->ctrl->saveParameter($this,
'search_grp');
68 $this->ctrl->setReturn($this,
'showMembers');
73 if (!(
$cmd = $this->ctrl->getCmd()))
75 $cmd =
"showMyGroups";
88 if (
$_GET[
"view"] ==
"mygroups")
90 $ids = ((int)
$_GET[
'search_grp']) ? array((
int)
$_GET[
'search_grp']) :
$_POST[
'search_grp'];
101 else if (
$_GET[
"view"] ==
"grp_members")
103 $ids = ((int)
$_GET[
'search_members']) ? array((
int)
$_GET[
'search_members']) :
$_POST[
'search_members'];
111 $this->showMembers();
126 if (!is_array($old_mail_data = $this->umail->getSavedData()))
128 $this->umail->savePostData(
142 require_once
'./Services/Object/classes/class.ilObject.php';
143 $ids = ((int)
$_GET[
'search_grp']) ? array((
int)
$_GET[
'search_grp']) :
$_POST[
'search_grp'];
144 foreach ($ids as $grp_id)
149 $roles = $rbacreview->getAssignableChildRoles($ref_id);
150 foreach ($roles as $role)
152 if (substr($role[
'title'], 0, 14) ==
'il_grp_member_' ||
153 substr($role[
'title'], 0, 13) ==
'il_grp_admin_')
155 if(isset($old_mail_data[
'rcp_to']) &&
156 trim($old_mail_data[
'rcp_to']) !=
'')
158 $rcpt = $rbacreview->getRoleMailboxAddress($role[
'obj_id']);
159 if(!$this->umail->doesRecipientStillExists($rcpt, $old_mail_data[
'rcp_to']))
161 array_push($members, $rcpt);
166 array_push($members, $rbacreview->getRoleMailboxAddress($role[
'obj_id']));
174 $mail_data = $this->umail->appendSearchResult($members,
'to');
176 $mail_data = $this->umail->getSavedData();
178 $this->umail->savePostData(
179 $mail_data[
"user_id"],
180 $mail_data[
"attachments"],
181 $mail_data[
"rcp_to"],
182 $mail_data[
"rcp_cc"],
183 $mail_data[
"rcp_bcc"],
184 $mail_data[
"m_type"],
185 $mail_data[
"m_email"],
186 $mail_data[
"m_subject"],
187 $mail_data[
"m_message"],
188 $mail_data[
"use_placeholders"],
189 $mail_data[
'tpl_ctx_id'],
190 $mail_data[
'tpl_ctx_params']
202 if (!is_array($this->umail->getSavedData()))
204 $this->umail->savePostData(
218 $ids = ((int)
$_GET[
'search_members']) ? array((
int)
$_GET[
'search_members']) :
$_POST[
'search_members'];
220 foreach ($ids as $member)
223 array_push($members, $login);
225 $mail_data = $this->umail->appendSearchResult($members,
"to");
227 $this->umail->savePostData(
228 $mail_data[
"user_id"],
229 $mail_data[
"attachments"],
230 $mail_data[
"rcp_to"],
231 $mail_data[
"rcp_cc"],
232 $mail_data[
"rcp_bcc"],
233 $mail_data[
"m_type"],
234 $mail_data[
"m_email"],
235 $mail_data[
"m_subject"],
236 $mail_data[
"m_message"],
237 $mail_data[
"use_placeholders"],
238 $mail_data[
'tpl_ctx_id'],
239 $mail_data[
'tpl_ctx_params']
252 $ids = ((int)
$_GET[
'search_members']) ? array((
int)
$_GET[
'search_members']) :
$_POST[
'search_members'];
256 foreach ($ids as $member)
260 if (!$this->abook->checkEntry($login))
268 $this->abook->addEntry(
283 $this->showMembers();
291 if (
$_GET[
"view"] ==
"mygroups" &&
292 $_GET[
"ref"] ==
"mail")
294 $this->ctrl->returnToParent($this);
309 include_once
'Modules/Group/classes/class.ilGroupParticipants.php';
311 $this->tpl->setTitle($this->lng->txt(
'mail_addressbook'));
313 $searchTpl =
new ilTemplate(
'tpl.mail_search_template.html',
true,
true,
'Services/Contact');
315 $_GET[
'view'] =
'mygroups';
317 $lng->loadLanguageModule(
'crs');
319 $this->ctrl->setParameter($this,
'view',
'mygroups');
321 include_once
'Services/Contact/classes/class.ilMailSearchCoursesTableGUI.php';
323 $table->setId(
'search_grps_tbl');
327 $tableData = array();
328 if (is_array($grp_ids) &&
332 include_once(
"./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
333 foreach($grp_ids as $grp_id)
338 $grp_members = $oGroupParticipants->getParticipants();
340 foreach ($grp_members as $key => $member)
344 if($tmp_usr->checkTimeLimit()==
false || $tmp_usr->getActive() == false )
346 unset($grp_members[$key]);
353 $path_arr = $tree->getPathFull(
$ref_id, $tree->getRootId());
356 foreach($path_arr as
$data)
362 $path .= $data[
'title'];
367 $current_selection_list->setListTitle($this->lng->txt(
"actions"));
368 $current_selection_list->setId(
"act_".$counter);
370 $this->ctrl->setParameter($this,
'search_grp', $grp_id);
371 $this->ctrl->setParameter($this,
'view',
'mygroups');
373 if(
$_GET[
"ref"] ==
"mail")
375 if ($this->mailing_allowed)
376 $current_selection_list->addItem($this->lng->txt(
"mail_members"),
'', $this->ctrl->getLinkTarget($this,
"mail"));
378 else if(
$_GET[
"ref"] ==
"wsp")
380 $current_selection_list->addItem($this->lng->txt(
"wsp_share_with_members"),
'', $this->ctrl->getLinkTarget($this,
"share"));
382 $current_selection_list->addItem($this->lng->txt(
"mail_list_members"),
'', $this->ctrl->getLinkTarget($this,
"showMembers"));
384 $this->ctrl->clearParameters($this);
389 'CRS_NAME' => $ilObjDataCache->lookupTitle($grp_id),
390 'CRS_NO_MEMBERS' => count($grp_members),
392 'COMMAND_SELECTION_LIST' => $current_selection_list->getHTML()
395 $tableData[] = $rowData;
399 $table->setData($tableData);
402 $this->tpl->setVariable(
'TXT_MARKED_ENTRIES',$lng->txt(
'marked_entries'));
405 $searchTpl->setVariable(
'TABLE', $table->getHtml());
406 $this->tpl->setContent($searchTpl->get());
408 if(
$_GET[
"ref"] !=
"wsp")
417 public function showMembers()
425 if (
$_GET[
"search_grp"] !=
"")
427 $_POST[
"search_grp"] = explode(
",",
$_GET[
"search_grp"]);
430 if (!is_array(
$_POST[
"search_grp"]) ||
431 count(
$_POST[
"search_grp"]) == 0)
438 $this->tpl->setTitle($this->lng->txt(
"mail_addressbook"));
439 include_once
'Services/Contact/classes/class.ilMailSearchCoursesMembersTableGUI.php';
440 $context =
$_GET[
"ref"] ?
$_GET[
"ref"] :
"mail";
442 $lng->loadLanguageModule(
'crs');
444 $tableData = array();
445 $searchTpl =
new ilTemplate(
'tpl.mail_search_template.html',
true,
true,
'Services/Contact');
447 foreach(
$_POST[
"search_grp"] as $grp_id)
454 $grp_members = $group_obj->getGroupMemberData($group_obj->getGroupMemberIds());
456 foreach($grp_members as $member)
459 if($tmp_usr->checkTimeLimit()==
false || $tmp_usr->getActive() == false )
468 $fullname = $member[
'lastname'].
', '.$member[
'firstname'];
471 'members_id' => $member[
"id"],
472 'members_login' => $member[
"login"],
473 'members_name' => $fullname,
474 'members_crs_grp' => $group_obj->getTitle(),
475 'search_grp' => $grp_id,
480 $relation = ilBuddyList::getInstanceByGlobalUser()->getRelationByUserId($member[
'id']);
482 $rowData[
'status'] =
'';
483 if($member[
'id'] != $ilUser->getId())
485 if($relation->isOwnedByRequest())
487 $rowData[
'status'] = $this->lng->txt(
'buddy_bs_state_' . $state_name .
'_a');
491 $rowData[
'status'] = $this->lng->txt(
'buddy_bs_state_' . $state_name .
'_p');
496 $tableData[] = $rowData;
500 $table->setData($tableData);
501 if (count($tableData))
503 $searchTpl->setVariable(
"TXT_MARKED_ENTRIES",$lng->txt(
"marked_entries"));
505 $searchTpl->setVariable(
'TABLE', $table->getHtml());
506 $this->tpl->setContent($searchTpl->get());
508 if(
$_GET[
"ref"] !=
"wsp")
519 if (
$_GET[
"view"] ==
"mygroups")
532 else if (
$_GET[
"view"] ==
"grp_members")
542 $this->showMembers();
553 if(!is_array($a_obj_ids))
555 $a_obj_ids = array($a_obj_ids);
558 $existing = $this->wsp_access_handler->getPermissions($this->wsp_node_id);
560 foreach($a_obj_ids as $object_id)
562 if(!in_array($object_id, $existing))
564 $added = $this->wsp_access_handler->addPermission($this->wsp_node_id, $object_id);
572 $this->ctrl->redirectByClass(
"ilworkspaceaccessgui",
"share");
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static convertUpperCamelCaseToUnderscoreCase($value)
Convert a value given in camel case conversion to underscore case conversion (e.g.
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
addPermission($a_obj_ids)
static _getMembershipByType($a_usr_id, $a_type, $a_only_member_role=false)
get membership by type Get course or group membership
_lookupPref($a_usr_id, $a_keyword)
static _getAllReferences($a_id)
get all reference ids of object
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Class Mail this class handles base functions for mail handling.
special template class to simplify handling of ITX/PEAR
__construct($wsp_access_handler=null, $wsp_node_id=null)
_lookupEmail($a_user_id)
Lookup email.
adoptMembers()
Take over course members to addressbook.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
User interface class for advanced drop-down selection lists.
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
static redirect($a_script)
http redirect to other script
showMyGroups()
Show user's courses.