ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilMailSearchCoursesGUI Class Reference
+ Collaboration diagram for ilMailSearchCoursesGUI:

Public Member Functions

 __construct ()
 executeCommand ()
 mail ()
 mailCourses ()
 mailMembers ()
 adoptMembers ()
 Take over course members to addressbook.
 cancel ()
 Cancel action.
 showMyCourses ()
 Show user's courses.
 showMembers ()
 Show course members.

Private Attributes

 $tpl = null
 $ctrl = null
 $lng = null
 $umail = null
 $abook = null

Detailed Description

Author
Jens Conze
Version
$Id$

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

Constructor & Destructor Documentation

ilMailSearchCoursesGUI::__construct ( )

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

References $ilCtrl, $lng, and $tpl.

{
global $tpl, $ilCtrl, $lng, $ilUser;
$this->tpl = $tpl;
$this->ctrl = $ilCtrl;
$this->lng = $lng;
$this->ctrl->saveParameter($this, "mobj_id");
$this->umail = new ilFormatMail($ilUser->getId());
$this->abook = new ilAddressbook($ilUser->getId());
}

Member Function Documentation

ilMailSearchCoursesGUI::adoptMembers ( )

Take over course members to addressbook.

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

References $lng, ilObjUser\_lookupEmail(), ilObjUser\_lookupLogin(), ilObjUser\_lookupName(), ilObjUser\_lookupPref(), ilUtil\sendInfo(), and showMembers().

{
global $lng;
if (is_array($_POST["search_members"]))
{
$members = array();
foreach ($_POST["search_members"] as $member)
{
$login = ilObjUser::_lookupLogin($member);
if (!$this->abook->checkEntry($login))
{
$name = ilObjUser::_lookupName($member);
$email = '';
if(ilObjUser::_lookupPref((int)$member, 'public_email') == 'y')
{
$email = ilObjUser::_lookupEmail($member);
}
$this->abook->addEntry(
$login,
$name["firstname"],
$name["lastname"],
$email
);
}
}
ilUtil::sendInfo($lng->txt("mail_members_added_addressbook"));
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_one_entry"));
}
$this->showMembers();
}

+ Here is the call graph for this function:

ilMailSearchCoursesGUI::cancel ( )

Cancel action.

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

References $_GET, and showMyCourses().

{
if ($_GET["view"] == "mycourses" &&
$_GET["ref"] == "mail")
{
$this->ctrl->returnToParent($this);
}
else
{
$this->showMyCourses();
}
}

+ Here is the call graph for this function:

ilMailSearchCoursesGUI::executeCommand ( )

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

References $cmd.

{
$forward_class = $this->ctrl->getNextClass($this);
switch($forward_class)
{
default:
if (!($cmd = $this->ctrl->getCmd()))
{
$cmd = "showMyCourses";
}
$this->$cmd();
break;
}
return true;
}
ilMailSearchCoursesGUI::mail ( )

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

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

{
global $ilUser, $lng;
if ($_GET["view"] == "mycourses")
{
if (is_array($_POST["search_crs"]))
{
$this->mailCourses();
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_course"));
$this->showMyCourses();
}
}
else if ($_GET["view"] == "crs_members")
{
if (is_array($_POST["search_members"]))
{
$this->mailMembers();
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_one_entry"));
$this->showMembers();
}
}
else
{
$this->showMyCourses();
}
}

+ Here is the call graph for this function:

ilMailSearchCoursesGUI::mailCourses ( )

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

References $lng, $ref_id, ilObject\_getAllReferences(), and ilUtil\redirect().

Referenced by mail().

{
global $ilUser, $lng, $rbacreview;
$members = array();
if (!is_array($old_mail_data = $this->umail->getSavedData()))
{
$this->umail->savePostData(
$ilUser->getId(),
array(),
"",
"",
"",
"",
"",
"",
"",
""
);
}
require_once 'classes/class.ilObject.php';
foreach ($_POST["search_crs"] as $crs_id)
{
$ref_ids = ilObject::_getAllReferences($crs_id);
foreach ($ref_ids as $ref_id)
{
$roles = $rbacreview->getAssignableChildRoles($ref_id);
foreach ($roles as $role)
{
if (substr($role['title'], 0, 14) == 'il_crs_member_' ||
substr($role['title'], 0, 13) == 'il_crs_tutor_' ||
substr($role['title'], 0, 13) == 'il_crs_admin_')
{
if(isset($old_mail_data['rcp_to']) &&
trim($old_mail_data['rcp_to']) != '')
{
$rcpt = $rbacreview->getRoleMailboxAddress($role['obj_id']);
if(!$this->umail->doesRecipientStillExists($rcpt, $old_mail_data['rcp_to']))
array_push($members, $rcpt);
unset($rcpt);
}
else
{
array_push($members, $rbacreview->getRoleMailboxAddress($role['obj_id']));
}
}
}
}
}
if(count($members))
$mail_data = $this->umail->appendSearchResult($members, 'to');
else
$mail_data = $this->umail->getSavedData();
$this->umail->savePostData(
$mail_data["user_id"],
$mail_data["attachments"],
$mail_data["rcp_to"],
$mail_data["rcp_cc"],
$mail_data["rcp_bcc"],
$mail_data["m_type"],
$mail_data["m_email"],
$mail_data["m_subject"],
$mail_data["m_message"],
$mail_data["use_placeholders"]
);
#$this->ctrl->returnToParent($this);
ilUtil::redirect("ilias.php?baseClass=ilMailGUI&type=search_res");
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilMailSearchCoursesGUI::mailMembers ( )

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

References ilObjUser\_lookupLogin(), and ilUtil\redirect().

Referenced by mail().

{
$members = array();
if (!is_array($this->umail->getSavedData()))
{
$this->umail->savePostData(
$ilUser->getId(),
array(),
"",
"",
"",
"",
"",
"",
"",
""
);
}
foreach ($_POST["search_members"] as $member)
{
$login = ilObjUser::_lookupLogin($member);
array_push($members, $login);
}
$mail_data = $this->umail->appendSearchResult($members,"to");
$this->umail->savePostData(
$mail_data["user_id"],
$mail_data["attachments"],
$mail_data["rcp_to"],
$mail_data["rcp_cc"],
$mail_data["rcp_bcc"],
$mail_data["m_type"],
$mail_data["m_email"],
$mail_data["m_subject"],
$mail_data["m_message"],
$mail_data["use_placeholders"]
);
#$this->ctrl->returnToParent($this);
ilUtil::redirect("ilias.php?baseClass=ilMailGUI&type=search_res");
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilMailSearchCoursesGUI::showMembers ( )

Show course members.

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

References $_GET, $_SESSION, $lng, ilObjUser\_lookupLogin(), ilObjUser\_lookupName(), ilObjUser\_lookupPref(), ilUtil\_sortIds(), ilObjectFactory\getInstanceByObjId(), ilUtil\sendInfo(), and showMyCourses().

Referenced by adoptMembers(), and mail().

{
global $lng, $ilUser, $ilObjDataCache;
include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
if ($_GET["search_crs"] != "")
{
$_POST["search_crs"] = explode(",", $_GET["search_crs"]);
$_GET["search_crs"] = "";
}
else if ($_SESSION["search_crs"] != "")
{
$_POST["search_crs"] = explode(",", $_SESSION["search_crs"]);
$_SESSION["search_crs"] = "";
}
if (!is_array($_POST["search_crs"]) ||
count($_POST["search_crs"]) == 0)
{
ilUtil::sendInfo($lng->txt("mail_select_course"));
$this->showMyCourses();
}
else
{
foreach($_POST['search_crs'] as $crs_id)
{
if($oTmpCrs->getShowMembers() == $oTmpCrs->SHOW_MEMBERS_DISABLED)
{
unset($_POST['search_crs']);
ilUtil::sendInfo($lng->txt('mail_crs_list_members_not_available_for_at_least_one_crs'));
return $this->showMyCourses();
}
unset($oTmpCrs);
}
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_addressbook_search.html", "Services/Mail");
$this->tpl->setVariable("HEADER", $this->lng->txt("mail"));
$this->ctrl->setParameter($this, "view", "crs_members");
if ($_GET["ref"] != "") $this->ctrl->setParameter($this, "ref", $_GET["ref"]);
if (is_array($_POST["search_crs"])) $this->ctrl->setParameter($this, "search_crs", implode(",", $_POST["search_crs"]));
$this->tpl->setVariable("ACTION", $this->ctrl->getFormAction($this));
$this->ctrl->clearParameters($this);
$lng->loadLanguageModule('crs');
$this->tpl->setCurrentBlock("members_course");
$this->tpl->setVariable("MEMBERS_TXT_COURSE",$lng->txt("course"));
$this->tpl->parseCurrentBlock();
$this->tpl->setVariable("MEMBERS_TXT_LOGIN",$lng->txt("login"));
$this->tpl->setVariable("MEMBERS_TXT_NAME",$lng->txt("name"));
$this->tpl->setVariable("MEMBERS_TXT_IN_ADDRESSBOOK",$lng->txt("mail_in_addressbook"));
$counter = 0;
foreach($_POST["search_crs"] as $crs_id)
{
$members_obj = ilCourseParticipants::_getinstanceByObjId($crs_id);
$tmp_members = $members_obj->getParticipants();
$course_members = ilUtil::_sortIds($tmp_members,'usr_data','lastname','usr_id');
foreach ($course_members as $member)
{
$tmp_usr = new ilObjUser($member);
if($tmp_usr->checkTimeLimit()== false || $tmp_usr->getActive() == false )
{
unset($tmp_usr);
continue;
}
unset($tmp_usr);
$name = ilObjUser::_lookupName($member);
$login = ilObjUser::_lookupLogin($member);
$this->tpl->setCurrentBlock("loop_members");
$this->tpl->setVariable("LOOP_MEMBERS_CSSROW",++$counter%2 ? 'tblrow1' : 'tblrow2');
$this->tpl->setVariable("LOOP_MEMBERS_ID",$member);
$this->tpl->setVariable("LOOP_MEMBERS_LOGIN",$login);
if(ilObjUser::_lookupPref($member, 'public_profile') == 'y')
{
$this->tpl->setVariable('LOOP_MEMBERS_NAME', $name['lastname'].', '.$name['firstname']);
}
$this->tpl->setVariable("LOOP_MEMBERS_CRS_GRP", $ilObjDataCache->lookupTitle($crs_id));
$this->tpl->setVariable("LOOP_MEMBERS_IN_ADDRESSBOOK", $this->abook->checkEntryByLogin($login) ? $lng->txt("yes") : $lng->txt("no"));
$this->tpl->parseCurrentBlock();
}
}
if ($counter == 0)
{
$this->tpl->setCurrentBlock("members_not_found");
$this->tpl->setVariable("TXT_MEMBERS_NOT_FOUND",$lng->txt("mail_search_members_not_found"));
$this->tpl->parseCurrentBlock();
$this->tpl->touchBlock("entries_not_found");
}
else
{
$this->tpl->setVariable("BUTTON_MAIL",$lng->txt("grp_mem_send_mail"));
$this->tpl->setVariable("BUTTON_ADOPT",$lng->txt("mail_into_addressbook"));
$this->tpl->setVariable("TXT_MARKED_ENTRIES",$lng->txt("marked_entries"));
}
$this->tpl->setVariable("BUTTON_CANCEL",$lng->txt("cancel"));
$this->tpl->show();
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilMailSearchCoursesGUI::showMyCourses ( )

Show user's courses.

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

References $_GET, $data, $lng, $ref_id, ilObject\_getAllReferences(), ilCourseParticipants\_getInstanceByObjId(), ilParticipants\_getMembershipByType(), ilObject\_hasUntrashedReference(), and ilObjectFactory\getInstanceByObjId().

Referenced by cancel(), mail(), and showMembers().

{
global $lng, $ilUser, $ilObjDataCache, $tree;
include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
$this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.mail_addressbook_search.html', 'Services/Mail');
$this->tpl->setVariable('HEADER', $this->lng->txt('mail'));
$_GET['view'] = 'mycourses';
$this->ctrl->setParameter($this, 'view', 'mycourses');
if ($_GET['ref'] != '') $this->ctrl->setParameter($this, 'ref', $_GET['ref']);
if (is_array($_POST['search_crs'])) $this->ctrl->setParameter($this, 'search_crs', implode(',', $_POST['search_crs']));
$this->tpl->setVariable('ACTION', $this->ctrl->getFormAction($this));
$this->ctrl->clearParameters($this);
$lng->loadLanguageModule('crs');
//$user = new ilObjUser($ilUser->getId());
//$crs_ids = $user->getCourseMemberships();
include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
$crs_ids = ilCourseParticipants::_getMembershipByType($ilUser->getId(), 'crs');
$counter = 0;
if (is_array($crs_ids) &&
count($crs_ids) > 0)
{
$this->tpl->setVariable('CRS_TXT_COURSES', $lng->txt('mail_my_courses'));
$this->tpl->setVariable('CRS_TXT_COURSES_PATHS', $lng->txt('path'));
$this->tpl->setVariable('CRS_TXT_NO_MEMBERS', $lng->txt('crs_count_members'));
$num_courses_hidden_members = 0;
foreach($crs_ids as $crs_id)
{
{
$oCrsParticipants = ilCourseParticipants::_getInstanceByObjId($crs_id);
$crs_members = $oCrsParticipants->getParticipants();
foreach($crs_members as $key => $member)
{
$tmp_usr = new ilObjUser($member);
if($tmp_usr->checkTimeLimit()== false || $tmp_usr->getActive() == false )
{
unset($crs_members[$key]);
}
}
unset($tmp_usr);
if((int)$oTmpCrs->getShowMembers() == $oTmpCrs->SHOW_MEMBERS_DISABLED)
{
++$num_courses_hidden_members;
$this->tpl->setCurrentBlock('caption_asterisk');
$this->tpl->touchBlock('caption_asterisk');
$this->tpl->parseCurrentBlock();
}
unset($oTmpCrs);
$ref_ids = ilObject::_getAllReferences($crs_id);
$ref_id = current($ref_ids);
$path_arr = $tree->getPathFull($ref_id, $tree->getRootId());
$path_counter = 0;
$path = '';
foreach($path_arr as $data)
{
if($path_counter++)
{
$path .= " -> ";
}
$path .= $data['title'];
}
$path = $this->lng->txt('path').': '.$path;
$this->tpl->setCurrentBlock('loop_crs');
$this->tpl->setVariable('LOOP_CRS_CSSROW', ++$counter % 2 ? 'tblrow1' : 'tblrow2');
$this->tpl->setVariable('LOOP_CRS_ID', $crs_id);
$this->tpl->setVariable('LOOP_CRS_NAME', $ilObjDataCache->lookupTitle($crs_id));
$this->tpl->setVariable('LOOP_CRS_NO_MEMBERS', count($crs_members));
$this->tpl->setVariable('LOOP_CRS_PATH', $path);
$this->tpl->parseCurrentBlock();
}
}
if((int)$counter)
{
$this->tpl->setVariable('BUTTON_MAIL',$lng->txt('mail_members'));
$this->tpl->setVariable('BUTTON_LIST',$lng->txt('mail_list_members'));
}
if($num_courses_hidden_members > 0)
{
$this->tpl->setCurrentBlock('caption_block');
$this->tpl->setVariable('TXT_LIST_MEMBERS_NOT_AVAILABLE', $this->lng->txt('mail_crs_list_members_not_available'));
$this->tpl->parseCurrentBlock();
}
}
if($counter == 0)
{
$this->tpl->setCurrentBlock('crs_not_found');
$this->tpl->setVariable('TXT_CRS_NOT_FOUND', $lng->txt('mail_search_courses_not_found'));
$this->tpl->parseCurrentBlock();
$this->tpl->touchBlock('entries_not_found');
}
else
{
$this->tpl->setVariable('TXT_MARKED_ENTRIES', $lng->txt('marked_entries'));
}
if($_GET['ref'] == 'mail') $this->tpl->setVariable('BUTTON_CANCEL', $lng->txt('cancel'));
$this->tpl->show();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

ilMailSearchCoursesGUI::$abook = null
private

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

ilMailSearchCoursesGUI::$ctrl = null
private

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

ilMailSearchCoursesGUI::$lng = null
private
ilMailSearchCoursesGUI::$tpl = null
private

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

Referenced by __construct().

ilMailSearchCoursesGUI::$umail = null
private

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


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