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

Public Member Functions

 __construct ($wsp_access_handler=null, $wsp_node_id=null)
 executeCommand ()
 mail ()
 mailCourses ()
 mailMembers ()
 adoptMembers ()
 Take over course members to addressbook.
 cancel ()
 Cancel action.
 showMyCourses ()
 Show user's courses.
 showMembers ()
 Show course members.
 share ()

Protected Member Functions

 addPermission ($a_obj_ids)

Protected Attributes

 $mailing_allowed

Private Attributes

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

Detailed Description

Author
Jens Conze
Version
Id:
class.ilMailSearchCoursesGUI.php 35638 2012-07-19 10:43:19Z jluetzen

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

Constructor & Destructor Documentation

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

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

References $_SESSION, $ilCtrl, $lng, and $tpl.

{
global $tpl, $ilCtrl, $lng, $ilUser, $rbacsystem;
$this->tpl = $tpl;
$this->ctrl = $ilCtrl;
$this->lng = $lng;
// personal workspace
$this->wsp_access_handler = $wsp_access_handler;
$this->wsp_node_id = $wsp_node_id;
// check if current user may send mails
include_once "Services/Mail/classes/class.ilMail.php";
$mail = new ilMail($_SESSION["AccountId"]);
$this->mailing_allowed = $rbacsystem->checkAccess('mail_visible',$mail->getMailObjectReferenceId());
$this->ctrl->saveParameter($this, "mobj_id");
$this->ctrl->saveParameter($this, "ref");
$this->umail = new ilFormatMail($ilUser->getId());
$this->abook = new ilAddressbook($ilUser->getId());
}

Member Function Documentation

ilMailSearchCoursesGUI::addPermission (   $a_obj_ids)
protected

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

References ilUtil\sendSuccess().

Referenced by share().

{
if(!is_array($a_obj_ids))
{
$a_obj_ids = array($a_obj_ids);
}
$existing = $this->wsp_access_handler->getPermissions($this->wsp_node_id);
$added = false;
foreach($a_obj_ids as $object_id)
{
if(!in_array($object_id, $existing))
{
$added = $this->wsp_access_handler->addPermission($this->wsp_node_id, $object_id);
}
}
if($added)
{
ilUtil::sendSuccess($this->lng->txt("wsp_share_success"), true);
}
$this->ctrl->redirectByClass("ilworkspaceaccessgui", "share");
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilMailSearchCoursesGUI::adoptMembers ( )

Take over course members to addressbook.

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

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

{
global $lng;
$ids = ((int)$_GET['search_members']) ? array((int)$_GET['search_members']) : $_POST['search_members'];
if ((int)$ids && !is_array($ids))
$ids = array((int)$ids);
if ($ids )
{
$members = array();
foreach ($ids 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 286 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 51 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 68 of file class.ilMailSearchCoursesGUI.php.

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

{
global $ilUser, $lng;
if ($_GET["view"] == "mycourses")
{
$ids = ((int)$_GET['search_crs']) ? array((int)$_GET['search_crs']) : $_POST['search_crs'];
if ($ids)
{
$this->mailCourses();
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_course"));
$this->showMyCourses();
}
}
else if ($_GET["view"] == "crs_members")
{
$ids = ((int)$_GET['search_members']) ? array((int)$_GET['search_members']) : $_POST['search_members'];
if ($ids)
{
$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 104 of file class.ilMailSearchCoursesGUI.php.

References $_GET, $_POST, $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';
$ids = ((int)$_GET['search_crs']) ? array((int)$_GET['search_crs']) : $_POST['search_crs'];
foreach ($ids 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']))
// does not work if Pear is enabled and Mailbox Address contain special chars!!
// array_push($members, $rcpt);
// FIX for Mantis: 7523, 8061
array_push($members, '#'.$role['title']);
unset($rcpt);
}
else
{
// does not work if Pear is enabled and Mailbox Address contain special chars!!
// array_push($members, $rbacreview->getRoleMailboxAddress($role['obj_id']));
// FIX for Mantis: 7523, 8061
array_push($members, '#'.$role['title']);
}
}
}
}
}
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 190 of file class.ilMailSearchCoursesGUI.php.

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

Referenced by mail().

{
global $ilUser;
$members = array();
if (!is_array($this->umail->getSavedData()))
{
$this->umail->savePostData(
$ilUser->getId(),
array(),
"",
"",
"",
"",
"",
"",
"",
""
);
}
$ids = ((int)$_GET['search_members']) ? array((int)$_GET['search_members']) : $_POST['search_members'];
foreach ($ids 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::share ( )

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

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

{
global $lng;
if ($_GET["view"] == "mycourses")
{
$ids = $_REQUEST["search_crs"];
if (sizeof($ids))
{
$this->addPermission($ids);
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_course"));
$this->showMyCourses();
}
}
else if ($_GET["view"] == "crs_members")
{
$ids = $_REQUEST["search_members"];
if (sizeof($ids))
{
$this->addPermission($ids);
}
else
{
ilUtil::sendInfo($lng->txt("mail_select_one_entry"));
$this->showMembers();
}
}
else
{
$this->showMyCourses();
}
}

+ Here is the call graph for this function:

ilMailSearchCoursesGUI::showMembers ( )

Show course members.

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

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

Referenced by adoptMembers(), mail(), and share().

{
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->setTitle($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');
include_once 'Services/Contact/classes/class.ilMailSearchCoursesMembersTableGUI.php';
$context = $_GET["ref"] ? $_GET["ref"] : "mail";
$table = new ilMailSearchCoursesMembersTableGUI($this, 'crs', $context);
$table->setId('show_crs_mmbrs_tbl');
$tableData = array();
$searchTpl = new ilTemplate('tpl.mail_search_template.html', true, true, 'Services/Contact');
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);
$fullname = "";
if(in_array(ilObjUser::_lookupPref($member, 'public_profile'), array("g", 'y')))
$fullname = $name['lastname'].', '.$name['firstname'];
$rowData = array(
'MEMBERS_ID' => $member,
'MEMBERS_LOGIN' => $login,
'MEMBERS_NAME' => $fullname,
'MEMBERS_CRS_GRP' => $ilObjDataCache->lookupTitle($crs_id),
'MEMBERS_IN_ADDRESSBOOK' => $this->abook->checkEntryByLogin($login) ? $lng->txt("yes") : $lng->txt("no"),
'search_crs' => $crs_id
);
$tableData[] = $rowData;
}
}
$table->setData($tableData);
if (count($tableData))
{
//$table->addCommandButton('mail', $lng->txt("grp_mem_send_mail"));
//$table->addCommandButton('adoptMembers', $lng->txt("mail_into_addressbook"));
$searchTpl->setVariable("TXT_MARKED_ENTRIES",$lng->txt("marked_entries"));
}
$searchTpl->setVariable('TABLE', $table->getHtml());
$this->tpl->setContent($searchTpl->get());
if($_GET["ref"] != "wsp")
{
$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 302 of file class.ilMailSearchCoursesGUI.php.

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

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

{
global $lng, $ilUser, $ilObjDataCache, $tree, $tpl, $rbacsystem;
include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
$this->tpl->setTitle($this->lng->txt('mail') );
$searchTpl = new ilTemplate('tpl.mail_search_template.html', true, true, 'Services/Contact');
$_GET['view'] = 'mycourses';
$lng->loadLanguageModule('crs');
include_once 'Services/Contact/classes/class.ilMailSearchCoursesTableGUI.php';
$table = new ilMailSearchCoursesTableGUI($this, "crs", $_GET["ref"]);
$table->setId('search_crs_tbl');
include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
$crs_ids = ilCourseParticipants::_getMembershipByType($ilUser->getId(), 'crs');
$counter = 0;
$tableData = array();
if (is_array($crs_ids) && count($crs_ids) > 0)
{
$num_courses_hidden_members = 0;
include_once("./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
foreach($crs_ids as $crs_id)
{
$isOffline = $oTmpCrs->getOfflineStatus();
$hasUntrashedReferences = ilObject::_hasUntrashedReference($crs_id);
$showMemberListEnabled = (boolean)$oTmpCrs->getShowMembers();
$ref_ids = array_keys(ilObject::_getAllReferences($crs_id));
$isPrivilegedUser = $rbacsystem->checkAccess('edit', $ref_ids[0]);
if($hasUntrashedReferences && ((!$isOffline && $showMemberListEnabled) || $isPrivilegedUser))
{
$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);
$hiddenMembers = false;
if((int)$oTmpCrs->getShowMembers() == $oTmpCrs->SHOW_MEMBERS_DISABLED)
{
++$num_courses_hidden_members;
$hiddenMembers = true;
}
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;
$current_selection_list = new ilAdvancedSelectionListGUI();
$current_selection_list->setListTitle($this->lng->txt("actions"));
$current_selection_list->setId("act_".$counter);
$this->ctrl->setParameter($this, 'search_crs', $crs_id);
$this->ctrl->setParameter($this, 'view', 'mycourses');
if($_GET["ref"] == "mail")
{
if ($this->mailing_allowed)
$current_selection_list->addItem($this->lng->txt("mail_members"), '', $this->ctrl->getLinkTarget($this, "mail"));
}
else if($_GET["ref"] == "wsp")
{
$current_selection_list->addItem($this->lng->txt("wsp_share_with_members"), '', $this->ctrl->getLinkTarget($this, "share"));
}
$current_selection_list->addItem($this->lng->txt("mail_list_members"), '', $this->ctrl->getLinkTarget($this, "showMembers"));
$this->ctrl->clearParameters($this);
$rowData = array
(
"CRS_ID" => $crs_id,
"CRS_NAME" => $ilObjDataCache->lookupTitle($crs_id),
"CRS_NO_MEMBERS" => count($crs_members),
"CRS_PATH" => $path,
'COMMAND_SELECTION_LIST' => $current_selection_list->getHTML(),
"hidden_members" => $hiddenMembers,
);
$counter++;
$tableData[] = $rowData;
}
}
//if((int)$counter)
//{
// $table->addCommandButton('mail',$lng->txt('mail_members'));
// $table->addCommandButton('showMembers',$lng->txt('mail_list_members'));
//}
if($num_courses_hidden_members > 0)
{
$searchTpl->setCurrentBlock('caption_block');
$searchTpl->setVariable('TXT_LIST_MEMBERS_NOT_AVAILABLE', $this->lng->txt('mail_crs_list_members_not_available'));
$searchTpl->parseCurrentBlock();
}
}
$searchTpl->setVariable('TXT_MARKED_ENTRIES', $lng->txt('marked_entries'));
$table->setData($tableData);
if($_GET['ref'] == 'mail') $this->tpl->setVariable('BUTTON_CANCEL', $lng->txt('cancel'));
$searchTpl->setVariable('TABLE', $table->getHtml());
$tpl->setContent($searchTpl->get());
if($_GET["ref"] != "wsp")
{
$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 23 of file class.ilMailSearchCoursesGUI.php.

ilMailSearchCoursesGUI::$ctrl = null
private

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

ilMailSearchCoursesGUI::$lng = null
private
ilMailSearchCoursesGUI::$mailing_allowed
protected

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

ilMailSearchCoursesGUI::$tpl = null
private

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

Referenced by __construct(), and showMyCourses().

ilMailSearchCoursesGUI::$umail = null
private

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


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