ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilMailSearchCoursesGUI Class Reference
+ Collaboration diagram for ilMailSearchCoursesGUI:

Public Member Functions

 __construct ($wsp_access_handler=null, $wsp_node_id=null)
 
 executeCommand ()
 
 mail ()
 
 mailCourses ()
 
 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 ilMailSearchCoursesGUI: ilBuddySystemGUI

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

Constructor & Destructor Documentation

◆ __construct()

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

Definition at line 73 of file class.ilMailSearchCoursesGUI.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 // check if current user may send mails
92 include_once "Services/Mail/classes/class.ilMail.php";
93 $mail = new ilMail($this->user->getId());
94 $this->mailing_allowed = $this->rbacsystem->checkAccess('internal_mail', $mail->getMailObjectReferenceId());
95
96 $this->ctrl->saveParameter($this, "mobj_id");
97 $this->ctrl->saveParameter($this, "ref");
98
99 $this->umail = new ilFormatMail($this->user->getId());
100 }
user()
Definition: user.php:4
error($a_errmsg)
set error message @access public
Class UserMail this class handles user mails.
$DIC
Definition: xapitoken.php:46

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

+ Here is the call graph for this function:

Member Function Documentation

◆ addPermission()

ilMailSearchCoursesGUI::addPermission (   $a_obj_ids)
protected

Definition at line 534 of file class.ilMailSearchCoursesGUI.php.

535 {
536 if (!is_array($a_obj_ids)) {
537 $a_obj_ids = array($a_obj_ids);
538 }
539
540 $existing = $this->wsp_access_handler->getPermissions($this->wsp_node_id);
541 $added = false;
542 foreach ($a_obj_ids as $object_id) {
543 if (!in_array($object_id, $existing)) {
544 $added = $this->wsp_access_handler->addPermission($this->wsp_node_id, $object_id);
545 }
546 }
547
548 if ($added) {
549 ilUtil::sendSuccess($this->lng->txt("wsp_share_success"), true);
550 }
551 $this->ctrl->redirectByClass("ilworkspaceaccessgui", "share");
552 }

Referenced by share().

+ Here is the caller graph for this function:

◆ cancel()

ilMailSearchCoursesGUI::cancel ( )

Cancel action.

Definition at line 270 of file class.ilMailSearchCoursesGUI.php.

271 {
272 if ($_GET["view"] == "mycourses" &&
273 $_GET["ref"] == "mail") {
274 $this->ctrl->returnToParent($this);
275 } else {
276 $this->showMyCourses();
277 }
278 }
$_GET["client_id"]

References $_GET.

◆ executeCommand()

ilMailSearchCoursesGUI::executeCommand ( )

Definition at line 102 of file class.ilMailSearchCoursesGUI.php.

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

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

+ Here is the call graph for this function:

◆ mail()

ilMailSearchCoursesGUI::mail ( )

Definition at line 128 of file class.ilMailSearchCoursesGUI.php.

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

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

+ Here is the call graph for this function:

◆ mailCourses()

ilMailSearchCoursesGUI::mailCourses ( )

Definition at line 152 of file class.ilMailSearchCoursesGUI.php.

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

ilMailSearchCoursesGUI::mailMembers ( )

Definition at line 222 of file class.ilMailSearchCoursesGUI.php.

223 {
224 $members = array();
225
226 if (!is_array($this->umail->getSavedData())) {
227 $this->umail->savePostData(
228 $this->user->getId(),
229 array(),
230 "",
231 "",
232 "",
233 "",
234 "",
235 "",
236 "",
237 ""
238 );
239 }
240
241 $ids = ((int) $_GET['search_members']) ? array((int) $_GET['search_members']) : $_POST['search_members'];
242
243 foreach ($ids as $member) {
245 array_push($members, $login);
246 }
247 $mail_data = $this->umail->appendSearchResult($members, "to");
248
249 $this->umail->savePostData(
250 $mail_data["user_id"],
251 $mail_data["attachments"],
252 $mail_data["rcp_to"],
253 $mail_data["rcp_cc"],
254 $mail_data["rcp_bcc"],
255 $mail_data["m_email"],
256 $mail_data["m_subject"],
257 $mail_data["m_message"],
258 $mail_data["use_placeholders"],
259 $mail_data['tpl_ctx_id'],
260 $mail_data['tpl_ctx_params']
261 );
262
263 #$this->ctrl->returnToParent($this);
264 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&type=search_res");
265 }
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()

ilMailSearchCoursesGUI::share ( )

Definition at line 511 of file class.ilMailSearchCoursesGUI.php.

512 {
513 if ($_GET["view"] == "mycourses") {
514 $ids = $_REQUEST["search_crs"];
515 if (is_array($ids) && sizeof($ids)) {
516 $this->addPermission($ids);
517 } else {
518 ilUtil::sendInfo($this->lng->txt("mail_select_course"));
519 $this->showMyCourses();
520 }
521 } elseif ($_GET["view"] == "crs_members") {
522 $ids = $_REQUEST["search_members"];
523 if (is_array($ids) && sizeof($ids)) {
524 $this->addPermission($ids);
525 } else {
526 ilUtil::sendInfo($this->lng->txt("mail_select_one_entry"));
527 $this->showMembers();
528 }
529 } else {
530 $this->showMyCourses();
531 }
532 }

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

+ Here is the call graph for this function:

◆ showMembers()

ilMailSearchCoursesGUI::showMembers ( )

Show course members.

Definition at line 404 of file class.ilMailSearchCoursesGUI.php.

405 {
406 include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
407
408 if ($_GET["search_crs"] != "") {
409 $_POST["search_crs"] = explode(",", $_GET["search_crs"]);
410 $_GET["search_crs"] = "";
411 } elseif ($_SESSION["search_crs"] != "") {
412 $_POST["search_crs"] = explode(",", $_SESSION["search_crs"]);
413 $_SESSION["search_crs"] = "";
414 }
415
416 if (is_array($_POST['search_crs'])) {
417 $_POST['search_crs'] = array_filter(array_map('intval', $_POST['search_crs']));
418 }
419
420 if (!is_array($_POST["search_crs"]) ||
421 count($_POST["search_crs"]) == 0) {
422 ilUtil::sendInfo($this->lng->txt("mail_select_course"));
423 $this->showMyCourses();
424 } else {
425 foreach ($_POST['search_crs'] as $crs_id) {
426 $oTmpCrs = ilObjectFactory::getInstanceByObjId($crs_id);
427 if ($oTmpCrs->getShowMembers() == $oTmpCrs->SHOW_MEMBERS_DISABLED) {
428 unset($_POST['search_crs']);
429 ilUtil::sendInfo($this->lng->txt('mail_crs_list_members_not_available_for_at_least_one_crs'));
430 return $this->showMyCourses();
431 }
432 unset($oTmpCrs);
433 }
434
435 $this->tpl->setTitle($this->lng->txt("mail_addressbook"));
436
437 $this->ctrl->setParameter($this, "view", "crs_members");
438 if ($_GET["ref"] != "") {
439 $this->ctrl->setParameter($this, "ref", $_GET["ref"]);
440 }
441 if (is_array($_POST["search_crs"])) {
442 $this->ctrl->setParameter($this, "search_crs", implode(",", $_POST["search_crs"]));
443 }
444 $this->tpl->setVariable("ACTION", $this->ctrl->getFormAction($this));
445 $this->ctrl->clearParameters($this);
446
447 $this->lng->loadLanguageModule('crs');
448 include_once 'Services/Contact/classes/class.ilMailSearchCoursesMembersTableGUI.php';
449 $context = $_GET["ref"] ? $_GET["ref"] : "mail";
450 $table = new ilMailSearchCoursesMembersTableGUI($this, 'crs', $context, $_POST["search_crs"]);
451 $tableData = array();
452 $searchTpl = new ilTemplate('tpl.mail_search_template.html', true, true, 'Services/Contact');
453 foreach ($_POST["search_crs"] as $crs_id) {
454 $members_obj = ilCourseParticipants::_getinstanceByObjId($crs_id);
455 $tmp_members = $members_obj->getParticipants();
456 $course_members = ilUtil::_sortIds($tmp_members, 'usr_data', 'lastname', 'usr_id');
457
458 foreach ($course_members as $member) {
459 $tmp_usr = new ilObjUser($member);
460 if (!$tmp_usr->getActive()) {
461 continue;
462 }
463
464 $name = ilObjUser::_lookupName($member);
466
467 $fullname = "";
468 if (in_array(ilObjUser::_lookupPref($member, 'public_profile'), array("g", 'y'))) {
469 $fullname = $name['lastname'] . ', ' . $name['firstname'];
470 }
471
472 $rowData = array(
473 'members_id' => $member,
474 'members_login' => $login,
475 'members_name' => $fullname,
476 'members_crs_grp' => $this->cache->lookupTitle($crs_id),
477 'search_crs' => $crs_id
478 );
479
480 if ('mail' == $context && ilBuddySystem::getInstance()->isEnabled()) {
481 $relation = ilBuddyList::getInstanceByGlobalUser()->getRelationByUserId($member);
482 $state_name = ilStr::convertUpperCamelCaseToUnderscoreCase($relation->getState()->getName());
483 $rowData['status'] = '';
484 if ($member != $this->user->getId()) {
485 if ($relation->isOwnedByActor()) {
486 $rowData['status'] = $this->lng->txt('buddy_bs_state_' . $state_name . '_a');
487 } else {
488 $rowData['status'] = $this->lng->txt('buddy_bs_state_' . $state_name . '_p');
489 }
490 }
491 }
492
493 $tableData[] = $rowData;
494 }
495 }
496 $table->setData($tableData);
497
498 if (count($tableData)) {
499 $searchTpl->setVariable("TXT_MARKED_ENTRIES", $this->lng->txt("marked_entries"));
500 }
501
502 $searchTpl->setVariable('TABLE', $table->getHtml());
503 $this->tpl->setContent($searchTpl->get());
504
505 if ($_GET["ref"] != "wsp") {
506 $this->tpl->printToStdout();
507 }
508 }
509 }
$_SESSION["AccountId"]
static getInstanceByGlobalUser()
static _lookupPref($a_usr_id, $a_keyword)
static _lookupName($a_user_id)
lookup user name
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object 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
static _sortIds($a_ids, $a_table, $a_field, $a_id_name)
Function that sorts ids by a given table field using WHERE IN E.g: __sort(array(6,...
if($format !==null) $name
Definition: metadata.php:230
$context
Definition: webdav.php:26

References $_GET, $_POST, $_SESSION, $context, $login, $name, ilObjUser\_lookupLogin(), ilObjUser\_lookupName(), ilObjUser\_lookupPref(), ilUtil\_sortIds(), ilStr\convertUpperCamelCaseToUnderscoreCase(), ilBuddySystem\getInstance(), ilBuddyList\getInstanceByGlobalUser(), ilObjectFactory\getInstanceByObjId(), 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

ilMailSearchCoursesGUI::$cache
protected

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

◆ $ctrl

ilMailSearchCoursesGUI::$ctrl
protected

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

◆ $error

ilMailSearchCoursesGUI::$error
protected

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

◆ $lng

ilMailSearchCoursesGUI::$lng
protected

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

◆ $mailing_allowed

ilMailSearchCoursesGUI::$mailing_allowed
protected

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

◆ $rbacreview

ilMailSearchCoursesGUI::$rbacreview
protected

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

◆ $rbacsystem

ilMailSearchCoursesGUI::$rbacsystem
protected

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

◆ $tpl

ilMailSearchCoursesGUI::$tpl
protected

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

◆ $tree

ilMailSearchCoursesGUI::$tree
protected

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

◆ $umail

ilMailSearchCoursesGUI::$umail
protected

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

◆ $user

ilMailSearchCoursesGUI::$user
protected

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


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