Public Member Functions | Private Attributes

ilMailSearchGroupsGUI Class Reference
[Services/Mail]

Public Member Functions

 __construct ()
 executeCommand ()
 mail ()
 mailGroups ()
 mailMembers ()
 adoptMembers ()
 Take over course members to addressbook.
 cancel ()
 Cancel action.
 showMyGroups ()
 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.ilMailSearchGroupsGUI.php.


Constructor & Destructor Documentation

ilMailSearchGroupsGUI::__construct (  ) 

Definition at line 44 of file class.ilMailSearchGroupsGUI.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

ilMailSearchGroupsGUI::adoptMembers (  ) 

Take over course members to addressbook.

Definition at line 211 of file class.ilMailSearchGroupsGUI.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:

ilMailSearchGroupsGUI::cancel (  ) 

Cancel action.

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

References $_GET, and showMyGroups().

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

Here is the call graph for this function:

ilMailSearchGroupsGUI::executeCommand (  ) 

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

References $cmd.

        {
                $forward_class = $this->ctrl->getNextClass($this);
                switch($forward_class)
                {
                        default:
                                if (!($cmd = $this->ctrl->getCmd()))
                                {
                                        $cmd = "showMyGroups";
                                }

                                $this->$cmd();
                                break;
                }
                return true;
        }

ilMailSearchGroupsGUI::mail (  ) 

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

References $_GET, $lng, mailGroups(), mailMembers(), ilUtil::sendInfo(), showMembers(), and showMyGroups().

        {
                global $ilUser, $lng;

                if ($_GET["view"] == "mygroups")
                {
                        if (is_array($_POST["search_grp"]))
                        {
                                $this->mailGroups();
                        }
                        else
                        {
                                ilUtil::sendInfo($lng->txt("mail_select_group"));
                                $this->showMyGroups();
                        }
                }
                else if ($_GET["view"] == "grp_members")
                {
                        if (is_array($_POST["search_members"]))
                        {
                                $this->mailMembers();
                        }
                        else
                        {
                                ilUtil::sendInfo($lng->txt("mail_select_one_entry"));
                                $this->showMembers();
                        }
                }
                else
                {
                        $this->showMyGroups();
                }
        }

Here is the call graph for this function:

ilMailSearchGroupsGUI::mailGroups (  ) 

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

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

Referenced by mail().

        {
                global $ilUser, $lng, $rbacreview;

                $members = array();

                if (!is_array($this->umail->getSavedData()))
                {
                        $this->umail->savePostData(
                                $ilUser->getId(),
                                array(),
                                "",
                                "",
                                "",
                                "",
                                "",
                                "",
                                "",
                                ""
                        );
                }
                
                require_once 'classes/class.ilObject.php';
                foreach ($_POST["search_grp"] as $grp_id)
                {
                        $ref_ids = ilObject::_getAllReferences($grp_id);
                        foreach ($ref_ids as $ref_id)
                        {
                                $roles = $rbacreview->getAssignableChildRoles($ref_id);
                                foreach ($roles as $role)
                                {
                                        if (substr($role['title'],0,14) == 'il_grp_member_')
                                        {
                                                array_push($members, $rbacreview->getRoleMailboxAddress($role['obj_id']));
                                        }
                                }
                        }
                }
                $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"]
                );
                
                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:

ilMailSearchGroupsGUI::mailMembers (  ) 

Definition at line 165 of file class.ilMailSearchGroupsGUI.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"]
                );
        
                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:

ilMailSearchGroupsGUI::showMembers (  ) 

Show course members.

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

References $_GET, $lng, $ref_id, ilObject::_getAllReferences(), ilObjUser::_lookupPref(), ilObjectFactory::getInstanceByRefId(), ilUtil::sendInfo(), and showMyGroups().

Referenced by adoptMembers(), and mail().

        {
                global $lng, $ilUser;

                if ($_GET["search_grp"] != "")
                {
                        $_POST["search_grp"] = explode(",", $_GET["search_grp"]);
                }

                if (!is_array($_POST["search_grp"]) ||
                        count($_POST["search_grp"]) == 0)
                {
                        ilUtil::sendInfo($lng->txt("mail_select_group"));
                        $this->showMyGroups();
                }
                else
                {
                        $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, "cmd", "post");
                        $this->ctrl->setParameter($this, "view", "grp_members");
                        if ($_GET["ref"] != "") $this->ctrl->setParameter($this, "ref", $_GET["ref"]);
                        if (is_array($_POST["search_grp"])) $this->ctrl->setParameter($this, "search_grp", implode(",", $_POST["search_grp"]));
                        $this->tpl->setVariable("ACTION", $this->ctrl->getLinkTarget($this));
                        $this->ctrl->clearParameters($this);

                        $lng->loadLanguageModule('crs');
        
                        $this->tpl->setCurrentBlock("members_group");
                        $this->tpl->setVariable("MEMBERS_TXT_GROUP",$lng->txt("obj_grp"));
                        $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_grp"] as $grp_id) 
                        {
                                $ref_ids = ilObject::_getAllReferences($grp_id);
                                $ref_id = current($ref_ids);

                                if (is_object($group_obj = ilObjectFactory::getInstanceByRefId($ref_id,false)))
                                {
                                        $grp_members = $group_obj->getGroupMemberData($group_obj->getGroupMemberIds());
                                        
                                        foreach ($grp_members as $member)
                                        {
                                                $this->tpl->setCurrentBlock("loop_members");
                                                $this->tpl->setVariable("LOOP_MEMBERS_CSSROW",++$counter%2 ? 'tblrow1' : 'tblrow2');
                                                $this->tpl->setVariable("LOOP_MEMBERS_ID",$member["id"]);
                                                $this->tpl->setVariable("LOOP_MEMBERS_LOGIN",$member["login"]);
                                                if(ilObjUser::_lookupPref($member['id'], 'public_profile') == 'y')
                                                {
                                                        $this->tpl->setVariable('LOOP_MEMBERS_NAME', $member['lastname'].', '.$member['firstname']);
                                                }
                                                $this->tpl->setVariable("LOOP_MEMBERS_CRS_GRP",$group_obj->getTitle());
                                                $this->tpl->setVariable("LOOP_MEMBERS_IN_ADDRESSBOOK", $this->abook->checkEntryByLogin($member["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:

ilMailSearchGroupsGUI::showMyGroups (  ) 

Show user's courses.

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

References $_GET, $lng, $user, and ilObjGroup::_getMembers().

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

        {
                global $lng, $ilUser, $ilObjDataCache;

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_addressbook_search.html", "Services/Mail");
                $this->tpl->setVariable("HEADER", $this->lng->txt("mail"));
                
                $_GET["view"] = "mygroups";

                $this->ctrl->setParameter($this, "cmd", "post");
                $this->ctrl->setParameter($this, "view", "mygroups");
                if ($_GET["ref"] != "") $this->ctrl->setParameter($this, "ref", $_GET["ref"]);
                if (is_array($_POST["search_grp"])) $this->ctrl->setParameter($this, "search_grp", implode(",", $_POST["search_grp"]));
                $this->tpl->setVariable("ACTION", $this->ctrl->getLinkTarget($this));
                $this->ctrl->clearParameters($this);

                $lng->loadLanguageModule('crs');
        
                $user = new ilObjUser($ilUser->getId());
                $grp_ids = $user->getGroupMemberships();
        
                $counter = 0;
                if (is_array($grp_ids) &&
                                        count($grp_ids) > 0)
                {
                                
                        $this->tpl->setVariable("GRP_TXT_GROUPS",$lng->txt("mail_my_groups"));
                        $this->tpl->setVariable("GRP_TXT_NO_MEMBERS",$lng->txt("grp_count_members"));
                
                        foreach($grp_ids as $grp_id) 
                        {
/*                              $ref_ids = ilObject::_getAllReferences($grp_id);
                                $ref_id = current($ref_ids);

                                $group_obj = new ilObjGroup($ref_id); 
                                $grp_members = $group_obj->getCountMembers();*/
                                $grp_members = ilObjGroup::_getMembers($grp_id);

                                $this->tpl->setCurrentBlock("loop_grp");
                                $this->tpl->setVariable("LOOP_GRP_CSSROW",++$counter%2 ? 'tblrow1' : 'tblrow2');
                                $this->tpl->setVariable("LOOP_GRP_ID",$grp_id);
                                $this->tpl->setVariable("LOOP_GRP_NAME",$ilObjDataCache->lookupTitle($grp_id));
                                $this->tpl->setVariable("LOOP_GRP_NO_MEMBERS",count($grp_members));
                                $this->tpl->parseCurrentBlock();
                        }
        
                        $this->tpl->setVariable("BUTTON_MAIL",$lng->txt("mail_members"));
                        $this->tpl->setVariable("BUTTON_LIST",$lng->txt("mail_list_members"));
                }
        
                if ($counter == 0)
                {
                        $this->tpl->setCurrentBlock("grp_not_found");
                        $this->tpl->setVariable("TXT_GRP_NOT_FOUND",$lng->txt("mail_search_groups_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

ilMailSearchGroupsGUI::$abook = null [private]

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

ilMailSearchGroupsGUI::$ctrl = null [private]

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

ilMailSearchGroupsGUI::$lng = null [private]
ilMailSearchGroupsGUI::$tpl = null [private]

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

Referenced by __construct().

ilMailSearchGroupsGUI::$umail = null [private]

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


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