ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilMailSearchGroupsGUI Class Reference
+ Collaboration diagram for ilMailSearchGroupsGUI:

Public Member Functions

 __construct ($wsp_access_handler=null, $wsp_node_id=null)
 
 executeCommand ()
 
 mail ()
 
 mailGroups ()
 
 mailMembers ()
 
 cancel ()
 Cancel action. More...
 
 showMembers ()
 Show course members. More...
 
 share ()
 

Protected Member Functions

 addPermission ($a_obj_ids)
 

Protected Attributes

 $tpl
 
 $ctrl
 
 $lng
 
 $user
 
 $error
 
 $rbacsystem
 
 $rbacreview
 
 $tree
 
 $cache
 
 $umail
 
 $mailing_allowed
 

Detailed Description

Author
Jens Conze
Version
$Id$ @ilCtrl_Calls ilMailSearchGroupsGUI: ilBuddySystemGUI

Definition at line 16 of file class.ilMailSearchGroupsGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilMailSearchGroupsGUI::__construct (   $wsp_access_handler = null,
  $wsp_node_id = null 
)

Definition at line 73 of file class.ilMailSearchGroupsGUI.php.

74 {
75 global $DIC;
76
77 $this->tpl = $DIC['tpl'];
78 $this->ctrl = $DIC['ilCtrl'];
79 $this->lng = $DIC['lng'];
80 $this->user = $DIC['ilUser'];
81 $this->error = $DIC['ilErr'];
82 $this->rbacsystem = $DIC['rbacsystem'];
83 $this->rbacreview = $DIC['rbacreview'];
84 $this->tree = $DIC['tree'];
85 $this->cache = $DIC['ilObjDataCache'];
86
87 // personal workspace
88 $this->wsp_access_handler = $wsp_access_handler;
89 $this->wsp_node_id = $wsp_node_id;
90
91 $this->ctrl->saveParameter($this, "mobj_id");
92 $this->ctrl->saveParameter($this, "ref");
93
94 include_once "Services/Mail/classes/class.ilMail.php";
95 $mail = new ilMail($this->user->getId());
96 $this->mailing_allowed = $this->rbacsystem->checkAccess('internal_mail', $mail->getMailObjectReferenceId());
97
98 $this->umail = new ilFormatMail($this->user->getId());
99 }
user()
Definition: user.php:4
error($a_errmsg)
set error message @access public
Class UserMail this class handles user mails.
global $DIC
Definition: saml.php:7

References $DIC, error(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addPermission()

ilMailSearchGroupsGUI::addPermission (   $a_obj_ids)
protected

Definition at line 498 of file class.ilMailSearchGroupsGUI.php.

499 {
500 if (!is_array($a_obj_ids)) {
501 $a_obj_ids = array($a_obj_ids);
502 }
503
504 $existing = $this->wsp_access_handler->getPermissions($this->wsp_node_id);
505 $added = false;
506 foreach ($a_obj_ids as $object_id) {
507 if (!in_array($object_id, $existing)) {
508 $added = $this->wsp_access_handler->addPermission($this->wsp_node_id, $object_id);
509 }
510 }
511
512 if ($added) {
513 ilUtil::sendSuccess($this->lng->txt("wsp_share_success"), true);
514 }
515 $this->ctrl->redirectByClass("ilworkspaceaccessgui", "share");
516 }

Referenced by share().

+ Here is the caller graph for this function:

◆ cancel()

ilMailSearchGroupsGUI::cancel ( )

Cancel action.

Definition at line 266 of file class.ilMailSearchGroupsGUI.php.

267 {
268 if ($_GET["view"] == "mygroups" &&
269 $_GET["ref"] == "mail") {
270 $this->ctrl->returnToParent($this);
271 } else {
272 $this->showMyGroups();
273 }
274 }
$_GET["client_id"]

References $_GET.

◆ executeCommand()

ilMailSearchGroupsGUI::executeCommand ( )

Definition at line 101 of file class.ilMailSearchGroupsGUI.php.

102 {
103 $forward_class = $this->ctrl->getNextClass($this);
104 switch ($forward_class) {
105 case 'ilbuddysystemgui':
106 if (!ilBuddySystem::getInstance()->isEnabled()) {
107 $this->error->raiseError($this->lng->txt('msg_no_perm_read'), $this->error->MESSAGE);
108 }
109
110 require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php';
111 $this->ctrl->saveParameter($this, 'search_grp');
112 $this->ctrl->setReturn($this, 'showMembers');
113 $this->ctrl->forwardCommand(new ilBuddySystemGUI());
114 break;
115
116 default:
117 if (!($cmd = $this->ctrl->getCmd())) {
118 $cmd = "showMyGroups";
119 }
120
121 $this->$cmd();
122 break;
123 }
124 return true;
125 }
Class ilBuddySystemGUI.

References error(), and ilBuddySystem\getInstance().

+ Here is the call graph for this function:

◆ mail()

ilMailSearchGroupsGUI::mail ( )

Definition at line 127 of file class.ilMailSearchGroupsGUI.php.

128 {
129 if ($_GET["view"] == "mygroups") {
130 $ids = ((int) $_GET['search_grp']) ? array((int) $_GET['search_grp']) : $_POST['search_grp'];
131 if ($ids) {
132 $this->mailGroups();
133 } else {
134 ilUtil::sendInfo($this->lng->txt("mail_select_group"));
135 $this->showMyGroups();
136 }
137 } elseif ($_GET["view"] == "grp_members") {
138 $ids = ((int) $_GET['search_members']) ? array((int) $_GET['search_members']) : $_POST['search_members'];
139 if ($ids) {
140 $this->mailMembers();
141 } else {
142 ilUtil::sendInfo($this->lng->txt("mail_select_one_entry"));
143 $this->showMembers();
144 }
145 } else {
146 $this->showMyGroups();
147 }
148 }
$_POST["username"]
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $_GET, $_POST, mailGroups(), mailMembers(), ilUtil\sendInfo(), and showMembers().

+ Here is the call graph for this function:

◆ mailGroups()

ilMailSearchGroupsGUI::mailGroups ( )

Definition at line 150 of file class.ilMailSearchGroupsGUI.php.

151 {
152 $members = array();
153
154 if (!is_array($old_mail_data = $this->umail->getSavedData())) {
155 $this->umail->savePostData(
156 $this->user->getId(),
157 array(),
158 "",
159 "",
160 "",
161 "",
162 "",
163 "",
164 "",
165 ""
166 );
167 }
168
169 require_once './Services/Object/classes/class.ilObject.php';
170 require_once 'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
171
172 $ids = ((int) $_GET['search_grp']) ? array((int) $_GET['search_grp']) : $_POST['search_grp'];
173 foreach ($ids as $grp_id) {
174 $ref_ids = ilObject::_getAllReferences($grp_id);
175 foreach ($ref_ids as $ref_id) {
176 $roles = $this->rbacreview->getAssignableChildRoles($ref_id);
177 foreach ($roles as $role) {
178 if (substr($role['title'], 0, 14) == 'il_grp_member_' ||
179 substr($role['title'], 0, 13) == 'il_grp_admin_') {
180 if (isset($old_mail_data['rcp_to']) &&
181 trim($old_mail_data['rcp_to']) != '') {
182 $rcpt = (new \ilRoleMailboxAddress($role['obj_id']))->value();
183 if (!$this->umail->existsRecipient($rcpt, (string) $old_mail_data['rcp_to'])) {
184 array_push($members, $rcpt);
185 }
186 } else {
187 array_push($members, (new \ilRoleMailboxAddress($role['obj_id']))->value());
188 }
189 }
190 }
191 }
192 }
193
194 if (count($members)) {
195 $mail_data = $this->umail->appendSearchResult($members, 'to');
196 } else {
197 $mail_data = $this->umail->getSavedData();
198 }
199
200 $this->umail->savePostData(
201 $mail_data["user_id"],
202 $mail_data["attachments"],
203 $mail_data["rcp_to"],
204 $mail_data["rcp_cc"],
205 $mail_data["rcp_bcc"],
206 $mail_data["m_type"],
207 $mail_data["m_email"],
208 $mail_data["m_subject"],
209 $mail_data["m_message"],
210 $mail_data["use_placeholders"],
211 $mail_data['tpl_ctx_id'],
212 $mail_data['tpl_ctx_params']
213 );
214
215 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&type=search_res");
216 }
static _getAllReferences($a_id)
get all reference ids of object
Class ilRoleMailboxAddress.
static redirect($a_script)

References $_GET, $_POST, ilObject\_getAllReferences(), ilUtil\redirect(), and user().

Referenced by mail().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mailMembers()

ilMailSearchGroupsGUI::mailMembers ( )

Definition at line 218 of file class.ilMailSearchGroupsGUI.php.

219 {
220 $members = array();
221
222 if (!is_array($this->umail->getSavedData())) {
223 $this->umail->savePostData(
224 $this->user->getId(),
225 array(),
226 "",
227 "",
228 "",
229 "",
230 "",
231 "",
232 "",
233 ""
234 );
235 }
236
237 $ids = ((int) $_GET['search_members']) ? array((int) $_GET['search_members']) : $_POST['search_members'];
238
239 foreach ($ids as $member) {
241 array_push($members, $login);
242 }
243 $mail_data = $this->umail->appendSearchResult($members, "to");
244
245 $this->umail->savePostData(
246 $mail_data["user_id"],
247 $mail_data["attachments"],
248 $mail_data["rcp_to"],
249 $mail_data["rcp_cc"],
250 $mail_data["rcp_bcc"],
251 $mail_data["m_type"],
252 $mail_data["m_email"],
253 $mail_data["m_subject"],
254 $mail_data["m_message"],
255 $mail_data["use_placeholders"],
256 $mail_data['tpl_ctx_id'],
257 $mail_data['tpl_ctx_params']
258 );
259
260 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&type=search_res");
261 }
static _lookupLogin($a_user_id)
lookup login
$login
Definition: cron.php:13

References $_GET, $_POST, $login, ilObjUser\_lookupLogin(), ilUtil\redirect(), and user().

Referenced by mail().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ share()

ilMailSearchGroupsGUI::share ( )

Definition at line 475 of file class.ilMailSearchGroupsGUI.php.

476 {
477 if ($_GET["view"] == "mygroups") {
478 $ids = $_REQUEST["search_grp"];
479 if (sizeof($ids)) {
480 $this->addPermission($ids);
481 } else {
482 ilUtil::sendInfo($this->lng->txt("mail_select_course"));
483 $this->showMyGroups();
484 }
485 } elseif ($_GET["view"] == "grp_members") {
486 $ids = $_REQUEST["search_members"];
487 if (sizeof($ids)) {
488 $this->addPermission($ids);
489 } else {
490 ilUtil::sendInfo($this->lng->txt("mail_select_one_entry"));
491 $this->showMembers();
492 }
493 } else {
494 $this->showMyGroups();
495 }
496 }

References $_GET, addPermission(), ilUtil\sendInfo(), and showMembers().

+ Here is the call graph for this function:

◆ showMembers()

ilMailSearchGroupsGUI::showMembers ( )

Show course members.

Definition at line 399 of file class.ilMailSearchGroupsGUI.php.

400 {
401 if ($_GET["search_grp"] != "") {
402 $_POST["search_grp"] = explode(",", $_GET["search_grp"]);
403 }
404
405 if (!is_array($_POST["search_grp"]) ||
406 count($_POST["search_grp"]) == 0) {
407 ilUtil::sendInfo($this->lng->txt("mail_select_group"));
408 $this->showMyGroups();
409 } else {
410 $this->tpl->setTitle($this->lng->txt("mail_addressbook"));
411 include_once 'Services/Contact/classes/class.ilMailSearchCoursesMembersTableGUI.php';
412 $context = $_GET["ref"] ? $_GET["ref"] : "mail";
413 $table = new ilMailSearchCoursesMembersTableGUI($this, 'grp', $context, $_POST["search_grp"]);
414 $this->lng->loadLanguageModule('crs');
415
416 $tableData = array();
417 $searchTpl = new ilTemplate('tpl.mail_search_template.html', true, true, 'Services/Contact');
418
419 foreach ($_POST["search_grp"] as $grp_id) {
420 $ref_ids = ilObject::_getAllReferences($grp_id);
421 $ref_id = current($ref_ids);
422
423 if (is_object($group_obj = ilObjectFactory::getInstanceByRefId($ref_id, false))) {
424 $grp_members = $group_obj->getGroupMemberData($group_obj->getGroupMemberIds());
425
426 foreach ($grp_members as $member) {
427 $tmp_usr = new ilObjUser($member['id']);
428 if (!$tmp_usr->getActive()) {
429 continue;
430 }
431
432 $fullname = "";
433 if (in_array(ilObjUser::_lookupPref($member['id'], 'public_profile'), array("g", 'y'))) {
434 $fullname = $member['lastname'] . ', ' . $member['firstname'];
435 }
436
437 $rowData = array(
438 'members_id' => $member["id"],
439 'members_login' => $member["login"],
440 'members_name' => $fullname,
441 'members_crs_grp' => $group_obj->getTitle(),
442 'search_grp' => $grp_id,
443 );
444
445 if ('mail' == $context && ilBuddySystem::getInstance()->isEnabled()) {
446 $relation = ilBuddyList::getInstanceByGlobalUser()->getRelationByUserId($member['id']);
447 $state_name = ilStr::convertUpperCamelCaseToUnderscoreCase($relation->getState()->getName());
448 $rowData['status'] = '';
449 if ($member['id'] != $this->user->getId()) {
450 if ($relation->isOwnedByRequest()) {
451 $rowData['status'] = $this->lng->txt('buddy_bs_state_' . $state_name . '_a');
452 } else {
453 $rowData['status'] = $this->lng->txt('buddy_bs_state_' . $state_name . '_p');
454 }
455 }
456 }
457
458 $tableData[] = $rowData;
459 }
460 }
461 }
462 $table->setData($tableData);
463 if (count($tableData)) {
464 $searchTpl->setVariable("TXT_MARKED_ENTRIES", $this->lng->txt("marked_entries"));
465 }
466 $searchTpl->setVariable('TABLE', $table->getHTML());
467 $this->tpl->setContent($searchTpl->get());
468
469 if ($_GET["ref"] != "wsp") {
470 $this->tpl->show();
471 }
472 }
473 }
static getInstanceByGlobalUser()
static _lookupPref($a_usr_id, $a_keyword)
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static convertUpperCamelCaseToUnderscoreCase($value)
Convert a value given in camel case conversion to underscore case conversion (e.g.
special template class to simplify handling of ITX/PEAR
if(empty($password)) $table
Definition: pwgen.php:24
$context
Definition: webdav.php:25

References $_GET, $_POST, $context, $table, ilObject\_getAllReferences(), ilObjUser\_lookupPref(), ilStr\convertUpperCamelCaseToUnderscoreCase(), ilBuddySystem\getInstance(), ilBuddyList\getInstanceByGlobalUser(), ilObjectFactory\getInstanceByRefId(), ilUtil\sendInfo(), and user().

Referenced by mail(), and share().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $cache

ilMailSearchGroupsGUI::$cache
protected

Definition at line 61 of file class.ilMailSearchGroupsGUI.php.

◆ $ctrl

ilMailSearchGroupsGUI::$ctrl
protected

Definition at line 26 of file class.ilMailSearchGroupsGUI.php.

◆ $error

ilMailSearchGroupsGUI::$error
protected

Definition at line 41 of file class.ilMailSearchGroupsGUI.php.

◆ $lng

ilMailSearchGroupsGUI::$lng
protected

Definition at line 31 of file class.ilMailSearchGroupsGUI.php.

◆ $mailing_allowed

ilMailSearchGroupsGUI::$mailing_allowed
protected

Definition at line 71 of file class.ilMailSearchGroupsGUI.php.

◆ $rbacreview

ilMailSearchGroupsGUI::$rbacreview
protected

Definition at line 51 of file class.ilMailSearchGroupsGUI.php.

◆ $rbacsystem

ilMailSearchGroupsGUI::$rbacsystem
protected

Definition at line 46 of file class.ilMailSearchGroupsGUI.php.

◆ $tpl

ilMailSearchGroupsGUI::$tpl
protected

Definition at line 21 of file class.ilMailSearchGroupsGUI.php.

◆ $tree

ilMailSearchGroupsGUI::$tree
protected

Definition at line 56 of file class.ilMailSearchGroupsGUI.php.

◆ $umail

ilMailSearchGroupsGUI::$umail
protected

Definition at line 66 of file class.ilMailSearchGroupsGUI.php.

◆ $user

ilMailSearchGroupsGUI::$user
protected

Definition at line 36 of file class.ilMailSearchGroupsGUI.php.


The documentation for this class was generated from the following file: