Public Member Functions

ilObjGroupGUI Class Reference

Inheritance diagram for ilObjGroupGUI:
Collaboration diagram for ilObjGroupGUI:

Public Member Functions

 ilObjGroupGUI ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
 Constructor public.
 viewObject ()
 list childs of current object
executeCommand ()
 execute command
 createObject ()
 create new object form
 canceledObject ()
 canceledObject is called when operation is canceled, method links back public
 cancelMemberObject ()
 canceledObject is called when operation is canceled, method links back public
 saveObject ()
 save group object public
 updateObject ()
 update GroupObject public
 editObject ()
 edit Group public
 confirmationObject ($user_id="", $confirm, $cancel, $info="", $status="", $a_cmd_return_location="")
 displays confirmation form public
 leaveGrpObject ()
 leave Group public
 assignMemberObject ()
 displays confirmation formular with users that shall be assigned to group public
 addUserObject ()
 displays confirmation formular with users that shall be assigned to group public
 removeMemberObject ()
 displays confirmation formular with users that shall be removed from group public
 confirmedRemoveMemberObject ()
 remove members from group TODO: set return location to parent object if user removes himself TODO: allow user to remove himself when he is not group admin public
 changeMemberObject ()
 displays form in which the member-status can be changed public
 membersObject ()
 display group members
 showNewRegistrationsObject ()
 assignApplicantsObject ()
 adds applicant to group as member public
 refuseApplicantsObject ()
 adds applicant to group as member public
 updateMemberStatusObject ()
 displays form in which the member-status can be changed public
 searchUserFormObject ()
 searchObject ()
 searchCancelledObject ()
 getTabs (&$tabs_gui)
 get tabs abstract method.
 importObject ()
 import new object form
 performImportObject ()
 __initFileObject ()
 __initParserObject ($a_xml_file)
 initCourseContentInterface ()
 cciEditObject ()
 cciUpdateObject ()
 cciMoveObject ()
 __unsetSessionVariables ()
 __search ($a_search_string, $a_search_for)
 __showSearchUserTable ($a_result_set, $a_user_ids=NULL, $a_cmd="search")
 __showSearchRoleTable ($a_result_set, $a_role_ids=NULL)
 __showSearchGroupTable ($a_result_set, $a_grp_ids=NULL)
 __showMembersTable ($a_result_set, $a_user_ids=NULL)
__initTableGUI ()
 __setTableGUIBasicData (&$tbl, &$result_set, $from="")
 standard implementation for tables use 'from' variable use different initial setting of table
 listUsersRoleObject ()
 listUsersGroupObject ()
 initConditionHandlerGUI ($item_id)
 chi_updateObject ()
 chi_deleteObject ()
 chi_selectorObject ()
 chi_assignObject ()
 exportObject ()
 Creates the output form for group member export.
 exportMembersObject ()
 Exports group members to Microsoft Excel file.
 cleanString ($str)
 Clean output string from german umlauts.

Detailed Description

Definition at line 40 of file class.ilObjGroupGUI.php.


Member Function Documentation

ilObjGroupGUI::__initFileObject (  ) 

Definition at line 1378 of file class.ilObjGroupGUI.php.

Referenced by performImportObject().

        {
                include_once "classes/class.ilFileDataImportGroup.php";

                $this->file_obj =& new ilFileDataImportGroup();

                return true;
        }

Here is the caller graph for this function:

ilObjGroupGUI::__initParserObject ( a_xml_file  ) 

Definition at line 1387 of file class.ilObjGroupGUI.php.

Referenced by performImportObject().

        {
                include_once "classes/class.ilGroupImportParser.php";

                $this->parser_obj =& new ilGroupImportParser($a_xml_file,$this->ref_id);

                return true;
        }

Here is the caller graph for this function:

& ilObjGroupGUI::__initTableGUI (  ) 

Reimplemented from ilObjectGUI.

Definition at line 1758 of file class.ilObjGroupGUI.php.

Referenced by __showMembersTable(), __showSearchGroupTable(), __showSearchRoleTable(), and __showSearchUserTable().

        {
                include_once "class.ilTableGUI.php";

                return new ilTableGUI(0,false);
        }

Here is the caller graph for this function:

ilObjGroupGUI::__search ( a_search_string,
a_search_for 
)

Definition at line 1465 of file class.ilObjGroupGUI.php.

References $_SESSION, sendInfo(), and ilUtil::stripSlashes().

Referenced by searchObject().

        {
                include_once("class.ilSearch.php");

                $this->lng->loadLanguageModule("content");
                $search =& new ilSearch($_SESSION["AccountId"]);
                $search->setPerformUpdate(false);
                $search->setSearchString(ilUtil::stripSlashes($a_search_string));
                $search->setCombination("and");
                $search->setSearchFor(array(0 => $a_search_for));
                $search->setSearchType('new');

                if($search->validate($message))
                {
                        $search->performSearch();
                }
                else
                {
                        sendInfo($message,true);
                        $this->ctrl->redirect($this,"searchUserForm");
                }

                return $search->getResultByType($a_search_for);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::__setTableGUIBasicData ( &$  tbl,
&$  result_set,
a_from = "" 
)

standard implementation for tables use 'from' variable use different initial setting of table

Reimplemented from ilObjectGUI.

Definition at line 1765 of file class.ilObjGroupGUI.php.

References $_GET, and $tbl.

Referenced by __showMembersTable(), __showSearchGroupTable(), __showSearchRoleTable(), and __showSearchUserTable().

        {
        switch($from)
                {
                        case "subscribers":
                                $offset = $_GET["update_subscribers"] ? $_GET["offset"] : 0;
                                $order = $_GET["update_subscribers"] ? $_GET["sort_by"] : 'login';
                                $direction = $_GET["update_subscribers"] ? $_GET["sort_order"] : '';
                                break;

                        case "group":
                                $offset = $_GET["offset"];
                        $order = $_GET["sort_by"] ? $_GET["sort_by"] : "title";
                                $direction = $_GET["sort_order"];
                                break;
                                
                        case "role":
                                $offset = $_GET["offset"];
                        $order = $_GET["sort_by"] ? $_GET["sort_by"] : "title";
                                $direction = $_GET["sort_order"];
                                break;

                        default:
                                $offset = $_GET["offset"];
                                // init sort_by (unfortunatly sort_by is preset with 'title'
                        if ($_GET["sort_by"] == "title" or empty($_GET["sort_by"]))
                {
                    $_GET["sort_by"] = "login";
                }
                $order = $_GET["sort_by"];
                                $direction = $_GET["sort_order"];
                                break;
                }

                $tbl->setOrderColumn($order);
                $tbl->setOrderDirection($direction);
                $tbl->setOffset($offset);
                $tbl->setLimit($_GET["limit"]);
                //$tbl->setMaxCount(count($result_set));
                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                $tbl->setData($result_set);
        }

Here is the caller graph for this function:

ilObjGroupGUI::__showMembersTable ( a_result_set,
a_user_ids = NULL 
)

Definition at line 1675 of file class.ilObjGroupGUI.php.

References ilObjectGUI::$actions, $ilBench, $rbacsystem, $tbl, ilObjectGUI::$tpl, __initTableGUI(), __setTableGUIBasicData(), ilUtil::array_php2js(), and ilUtil::getImagePath().

Referenced by membersObject().

        {
        global $rbacsystem,$ilBench;
        
                $ilBench->start("GroupGUI", "__showMembersTable");

                $actions = array("RemoveMember"  => $this->lng->txt("remove"),"changeMember"  => $this->lng->txt("change"));

        $tbl =& $this->__initTableGUI();
                $tpl =& $tbl->getTemplateObject();

                $tpl->setCurrentBlock("tbl_form_header");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_row");
                
                //INTERIMS:quite a circumstantial way to show the list on rolebased accessrights
                if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
                {                       //user is administrator
            $tpl->setCurrentBlock("plain_button");
                    $tpl->setVariable("PBTN_NAME","searchUserForm");
                    $tpl->setVariable("PBTN_VALUE",$this->lng->txt("grp_add_member"));
                    $tpl->parseCurrentBlock();
                    $tpl->setCurrentBlock("plain_buttons");
                    $tpl->parseCurrentBlock();
                
                        $tpl->setVariable("COLUMN_COUNTS",7);
                        $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));

            foreach ($actions as $name => $value)
                        {
                                $tpl->setCurrentBlock("tbl_action_btn");
                                $tpl->setVariable("BTN_NAME",$name);
                                $tpl->setVariable("BTN_VALUE",$value);
                                $tpl->parseCurrentBlock();
                        }
                        
                        if (!empty($a_user_ids))
                        {
                                // set checkbox toggles
                                $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
                                $tpl->setVariable("JS_VARNAME","user_id");                      
                                $tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($a_user_ids));
                                $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
                                $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
                                $tpl->parseCurrentBlock();
                        }
                        
            $tpl->setVariable("TPLPATH",$this->tpl->tplPath);
                }

                $this->ctrl->setParameter($this,"cmd","members");


                // title & header columns
                $tbl->setTitle($this->lng->txt("members"),"icon_usr_b.gif",$this->lng->txt("group_members"));

                //INTERIMS:quite a circumstantial way to show the list on rolebased accessrights
                if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
                {
                        //user must be administrator
                        $tbl->setHeaderNames(array("",$this->lng->txt("username"),$this->lng->txt("firstname"),$this->lng->txt("lastname"),$this->lng->txt("last_visit"),$this->lng->txt("role"),$this->lng->txt("grp_options")));
                        $tbl->setHeaderVars(array("","login","firstname","lastname","role","functions"),$this->ctrl->getParameterArray($this,"",false));
                        $tbl->setColumnWidth(array("","22%","22%","22%","22%","10%"));
                }
                else
                {
                        //user must be member
                        $tbl->setHeaderNames(array($this->lng->txt("username"),$this->lng->txt("firstname"),$this->lng->txt("lastname"),$this->lng->txt("last_visit"),$this->lng->txt("role"),$this->lng->txt("grp_options")));
                        $tbl->setHeaderVars(array("login","firstname","lastname","role","functions"),$this->ctrl->getParameterArray($this,"",false));
                        $tbl->setColumnWidth(array("22%","22%","22%","22%","10%"));
                }

                $this->__setTableGUIBasicData($tbl,$a_result_set,"members");
                $tbl->render();
                $this->tpl->setVariable("ADM_CONTENT",$tbl->tpl->get());
                
                $ilBench->stop("GroupGUI", "__showMembersTable");

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::__showSearchGroupTable ( a_result_set,
a_grp_ids = NULL 
)

Definition at line 1617 of file class.ilObjGroupGUI.php.

References $_GET, $tbl, ilObjectGUI::$tpl, __initTableGUI(), __setTableGUIBasicData(), ilUtil::array_php2js(), and ilUtil::getImagePath().

Referenced by searchObject().

        {
        $tbl =& $this->__initTableGUI();
                $tpl =& $tbl->getTemplateObject();

                $tpl->setCurrentBlock("tbl_form_header");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME","searchUserForm");
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("back"));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME","listUsersGroup");
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("grp_list_users"));
                $tpl->parseCurrentBlock();
                
                if (!empty($a_grp_ids))
                {
                        // set checkbox toggles
                        $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
                        $tpl->setVariable("JS_VARNAME","group");                        
                        $tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($a_grp_ids));
                        $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
                        $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
                        $tpl->parseCurrentBlock();
                }

                $tpl->setCurrentBlock("tbl_action_row");
                $tpl->setVariable("COLUMN_COUNTS",5);
                $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("arrow_downright.gif"));
                $tpl->parseCurrentBlock();

                $tbl->setTitle($this->lng->txt("grp_header_edit_members"),"icon_usr_b.gif",$this->lng->txt("grp_header_edit_members"));
                $tbl->setHeaderNames(array("",
                                                                   $this->lng->txt("obj_grp"),
                                                                   $this->lng->txt("grp_count_members")));
                $tbl->setHeaderVars(array("",
                                                                  "title",
                                                                  "nr_members"),
                                                        array("ref_id" => $this->object->getRefId(),
                                                                  "cmd" => "search",
                                                                  "cmdClass" => "ilobjgroupgui",
                                                                  "cmdNode" => $_GET["cmdNode"]));

                $tbl->setColumnWidth(array("","80%","19%"));


                $this->__setTableGUIBasicData($tbl,$a_result_set,"group");
                $tbl->render();
                
                $this->tpl->setVariable("SEARCH_RESULT_TABLE",$tbl->tpl->get());

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::__showSearchRoleTable ( a_result_set,
a_role_ids = NULL 
)

Definition at line 1559 of file class.ilObjGroupGUI.php.

References $_GET, $tbl, ilObjectGUI::$tpl, __initTableGUI(), __setTableGUIBasicData(), ilUtil::array_php2js(), and ilUtil::getImagePath().

Referenced by searchObject().

        {
                $tbl =& $this->__initTableGUI();
                $tpl =& $tbl->getTemplateObject();

                $tpl->setCurrentBlock("tbl_form_header");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME","searchUserForm");
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("back"));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME","listUsersRole");
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("grp_list_users"));
                $tpl->parseCurrentBlock();
                
                if (!empty($a_role_ids))
                {
                        // set checkbox toggles
                        $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
                        $tpl->setVariable("JS_VARNAME","role");                 
                        $tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($a_role_ids));
                        $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
                        $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
                        $tpl->parseCurrentBlock();
                }

                $tpl->setCurrentBlock("tbl_action_row");
                $tpl->setVariable("COLUMN_COUNTS",5);
                $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("arrow_downright.gif"));
                $tpl->parseCurrentBlock();

                $tbl->setTitle($this->lng->txt("grp_header_edit_members"),"icon_usr_b.gif",$this->lng->txt("grp_header_edit_members"));
                $tbl->setHeaderNames(array("",
                                                                   $this->lng->txt("obj_role"),
                                                                   $this->lng->txt("grp_count_members")));
                $tbl->setHeaderVars(array("",
                                                                  "title",
                                                                  "nr_members"),
                                                        array("ref_id" => $this->object->getRefId(),
                                                                  "cmd" => "search",
                                                                  "cmdClass" => "ilobjgroupgui",
                                                                  "cmdNode" => $_GET["cmdNode"]));

                $tbl->setColumnWidth(array("","80%","19%"));


                $this->__setTableGUIBasicData($tbl,$a_result_set,"role");
                $tbl->render();
                
                $this->tpl->setVariable("SEARCH_RESULT_TABLE",$tbl->tpl->get());

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::__showSearchUserTable ( a_result_set,
a_user_ids = NULL,
a_cmd = "search" 
)

Definition at line 1490 of file class.ilObjGroupGUI.php.

References $_GET, $tbl, ilObjectGUI::$tpl, __initTableGUI(), __setTableGUIBasicData(), ilUtil::array_php2js(), and ilUtil::getImagePath().

Referenced by listUsersGroupObject(), listUsersRoleObject(), and searchObject().

        {
        $return_to  = "searchUserForm";
        
        if ($a_cmd == "listUsersRole" or $a_cmd == "listUsersGroup")
        {
            $return_to = "search";
        }

                $tbl =& $this->__initTableGUI();
                $tpl =& $tbl->getTemplateObject();

                // SET FORMACTION
                $tpl->setCurrentBlock("tbl_form_header");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME",$return_to);
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("back"));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_btn");
                $tpl->setVariable("BTN_NAME","addUser");
                $tpl->setVariable("BTN_VALUE",$this->lng->txt("add"));
                $tpl->parseCurrentBlock();
                
                if (!empty($a_user_ids))
                {
                        // set checkbox toggles
                        $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
                        $tpl->setVariable("JS_VARNAME","user");                 
                        $tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($a_user_ids));
                        $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
                        $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
                        $tpl->parseCurrentBlock();
                }

                $tpl->setCurrentBlock("tbl_action_row");
                $tpl->setVariable("COLUMN_COUNTS",5);
                $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("arrow_downright.gif"));
                $tpl->parseCurrentBlock();

                $tbl->setTitle($this->lng->txt("grp_header_edit_members"),"icon_usr_b.gif",$this->lng->txt("grp_header_edit_members"));
                $tbl->setHeaderNames(array("",
                                                                   $this->lng->txt("username"),
                                                                   $this->lng->txt("firstname"),
                                                                   $this->lng->txt("lastname"),
                                                                   $this->lng->txt("last_visit")));
                $tbl->setHeaderVars(array("",
                                                                  "login",
                                                                  "firstname",
                                                                  "lastname",
                                                                  "last_visit"),
                                                        array("ref_id" => $this->object->getRefId(),
                                                                  "cmd" => $a_cmd,
                                                                  "cmdClass" => "ilobjgroupgui",
                                                                  "cmdNode" => $_GET["cmdNode"]));

                $tbl->setColumnWidth(array("","33%","33%","33%"));

                $this->__setTableGUIBasicData($tbl,$a_result_set);
                $tbl->render();
                
                $this->tpl->setVariable("SEARCH_RESULT_TABLE",$tbl->tpl->get());

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::__unsetSessionVariables (  ) 

Definition at line 1454 of file class.ilObjGroupGUI.php.

References $_SESSION.

Referenced by searchUserFormObject().

        {
                unset($_SESSION["grp_delete_member_ids"]);
                unset($_SESSION["grp_delete_subscriber_ids"]);
                unset($_SESSION["grp_search_str"]);
                unset($_SESSION["grp_search_for"]);
                unset($_SESSION["grp_role"]);
                unset($_SESSION["grp_group"]);
                unset($_SESSION["grp_archives"]);
        }

Here is the caller graph for this function:

ilObjGroupGUI::addUserObject (  ) 

displays confirmation formular with users that shall be assigned to group public

Definition at line 615 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, ilUtil::redirect(), and sendInfo().

        {
                $user_ids = $_POST["user"];

                if (empty($user_ids[0]))
                {
                        // TODO: jumps back to grp content. go back to last search result
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }

                foreach ($user_ids as $new_member)
                {
                        if (!$this->object->addMember($new_member,$this->object->getDefaultMemberRole()))
                        {
                                $this->ilErr->raiseError("An Error occured while assigning user to group !",$this->ilErr->MESSAGE);
                        }
                }

                unset($_SESSION["saved_post"]);

                sendInfo($this->lng->txt("grp_msg_member_assigned"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::assignApplicantsObject (  ) 

adds applicant to group as member public

Definition at line 993 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $user, ilUtil::redirect(), and sendInfo().

        {
                $user_ids = $_POST["user_id"];

                if (empty($user_ids[0]))
                {
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }

                $mail = new ilMail($_SESSION["AccountId"]);

                foreach ($user_ids as $new_member)
                {
                        $user =& $this->ilias->obj_factory->getInstanceByObjId($new_member);

                        if (!$this->object->addMember($new_member, $this->object->getDefaultMemberRole()))
                        {
                                $this->ilErr->raiseError("An Error occured while assigning user to group !",$this->ilErr->MESSAGE);
                        }

                        $this->object->deleteApplicationListEntry($new_member);
                        $mail->sendMail($user->getLogin(),"","","New Membership in Group: ".$this->object->getTitle(),"You have been assigned to the group as a member. You can now access all group specific objects like forums, learningmodules,etc..",array(),array('normal'));
                }

                sendInfo($this->lng->txt("grp_msg_applicants_assigned"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::assignMemberObject (  ) 

displays confirmation formular with users that shall be assigned to group public

Definition at line 587 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, ilUtil::redirect(), and sendInfo().

        {
                $user_ids = $_POST["id"];

                if (empty($user_ids[0]))
                {
                        // TODO: jumps back to grp content. go back to last search result
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }

                foreach ($user_ids as $new_member)
                {
                        if (!$this->object->addMember($new_member,$this->object->getDefaultMemberRole()))
                        {
                                $this->ilErr->raiseError("An Error occured while assigning user to group !",$this->ilErr->MESSAGE);
                        }
                }

                unset($_SESSION["saved_post"]);

                sendInfo($this->lng->txt("grp_msg_member_assigned"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::canceledObject (  ) 

canceledObject is called when operation is canceled, method links back public

Definition at line 240 of file class.ilObjGroupGUI.php.

References $_GET, ilObjectGUI::$return_location, and sendInfo().

        {
                $return_location = $_GET["cmd_return_location"];
                if (strcmp($return_location, "") == 0)
                {
                        $return_location = "members";
                }
                                
                sendInfo($this->lng->txt("action_aborted"),true);
                $this->ctrl->redirect($this, $return_location);
        }

Here is the call graph for this function:

ilObjGroupGUI::cancelMemberObject (  ) 

canceledObject is called when operation is canceled, method links back public

Definition at line 256 of file class.ilObjGroupGUI.php.

References ilObjectGUI::$return_location, ilUtil::redirect(), and sendInfo().

        {
                $return_location = "members";
                                
                sendInfo($this->lng->txt("action_aborted"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,$return_location));
        }

Here is the call graph for this function:

ilObjGroupGUI::cciEditObject (  ) 

Definition at line 1407 of file class.ilObjGroupGUI.php.

References $rbacsystem, and initCourseContentInterface().

Referenced by chi_assignObject(), chi_deleteObject(), and chi_updateObject().

        {
                global $rbacsystem;

                // CHECK ACCESS
                if(!$rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                $this->initCourseContentInterface();
                $this->cci_obj->cci_edit();

                return true;;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::cciMoveObject (  ) 

Definition at line 1438 of file class.ilObjGroupGUI.php.

References $rbacsystem, and initCourseContentInterface().

        {
                global $rbacsystem;

                // CHECK ACCESS
                if(!$rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                $this->initCourseContentInterface();
                $this->cci_obj->cci_move();

                return true;;
        }

Here is the call graph for this function:

ilObjGroupGUI::cciUpdateObject (  ) 

Definition at line 1423 of file class.ilObjGroupGUI.php.

References $rbacsystem, and initCourseContentInterface().

        {
                global $rbacsystem;

                // CHECK ACCESS
                if(!$rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                $this->initCourseContentInterface();
                $this->cci_obj->cci_update();

                return true;;
        }

Here is the call graph for this function:

ilObjGroupGUI::changeMemberObject (  ) 

displays form in which the member-status can be changed public

Definition at line 710 of file class.ilObjGroupGUI.php.

References $_GET, $_POST, $_SESSION, $output, $tbl, formatDate(), ilUtil::formSelect(), ilUtil::getImagePath(), infoPanel(), and ilUtil::sortArray().

        {
                if ($_GET["sort_by"] == "title" or $_GET["sort_by"] == "")
                {
                        $_GET["sort_by"] = "login";
                }

                $member_ids = array();

                if (isset($_POST["user_id"]))
                {
                        $member_ids = $_POST["user_id"];
                }
                else if (isset($_GET["mem_id"]))
                {
                        $member_ids[0] = $_GET["mem_id"];
                }

                if (empty($member_ids[0]))
                {
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }

                if (!in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"]) 
                        and !in_array($this->ilias->account->getId(),$this->object->getGroupAdminIds()))
                {
                        $this->ilErr->raiseError($this->lng->txt("grp_err_no_permission"),$this->ilErr->MESSAGE);
                }

                $stati = array_flip($this->object->getLocalGroupRoles());

                //build data structure
                foreach ($member_ids as $member_id)
                {
                        $member =& $this->ilias->obj_factory->getInstanceByObjId($member_id);
                        $mem_status = $this->object->getMemberRoles($member_id);

                        $this->data["data"][$member->getId()]= array(
                                        "login"         => $member->getLogin(),
                                        "firstname"     => $member->getFirstname(),
                                        "lastname"      => $member->getLastname(),
                                        "last_visit"=> ilFormat::formatDate($member->getLastLogin()),
                                        "grp_role"      => ilUtil::formSelect($mem_status,"member_status_select[".$member->getId()."][]",$stati,true,true,3)
                                );
                }
                
                unset($member);
                
                infoPanel();

                $this->tpl->addBlockfile("ADM_CONTENT", "member_table", "tpl.table.html");

                // load template for table content data
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));

                $this->data["buttons"] = array( "members"  => $this->lng->txt("back"),
                                                                                "updateMemberStatus"  => $this->lng->txt("confirm"));

                $this->tpl->setCurrentBlock("tbl_action_row");
                $this->tpl->setVariable("COLUMN_COUNTS",5);
                //$this->tpl->setVariable("TPLPATH",$this->tpl->tplPath);
                $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));

                foreach ($this->data["buttons"] as $name => $value)
                {
                        $this->tpl->setCurrentBlock("tbl_action_btn");
                        $this->tpl->setVariable("BTN_NAME",$name);
                        $this->tpl->setVariable("BTN_VALUE",$value);
                        $this->tpl->parseCurrentBlock();
                }

                //sort data array
                $this->data["data"] = ilUtil::sortArray($this->data["data"], $_GET["sort_by"], $_GET["sort_order"]);
                $output = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
                
                // create table
                include_once "./classes/class.ilTableGUI.php";

                $tbl = new ilTableGUI($output);

                // title & header columns
                $tbl->setTitle($this->lng->txt("grp_mem_change_status"),"icon_usr_b.gif",$this->lng->txt("grp_mem_change_status"));
                //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
                $tbl->setHeaderNames(array($this->lng->txt("username"),$this->lng->txt("firstname"),$this->lng->txt("lastname"),$this->lng->txt("last_visit"),$this->lng->txt("role")));
                $tbl->setHeaderVars(array("login","firstname","lastname","last_visit","role"),$this->ctrl->getParameterArray($this,"",false));

                $tbl->setColumnWidth(array("20%","20%","20%","40%"));

                $this->tpl->setCurrentBlock("tbl_action_row");
                $this->tpl->parseCurrentBlock();

                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->setMaxCount(count($this->data["data"]));

                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));

                // render table
                $tbl->render();
        }

Here is the call graph for this function:

ilObjGroupGUI::chi_assignObject (  ) 

Definition at line 1989 of file class.ilObjGroupGUI.php.

References $_GET, cciEditObject(), editObject(), and initConditionHandlerGUI().

        {
                $this->initConditionHandlerGUI($_GET['item_id'] ? $_GET['item_id'] : $this->object->getRefId());
                $this->chi_obj->chi_assign();

                if($_GET['item_id'])
                {
                        $this->cciEditObject();
                }
                else
                {
                        $this->editObject();
                }
        }

Here is the call graph for this function:

ilObjGroupGUI::chi_deleteObject (  ) 

Definition at line 1968 of file class.ilObjGroupGUI.php.

References $_GET, cciEditObject(), editObject(), and initConditionHandlerGUI().

        {
                $this->initConditionHandlerGUI($_GET['item_id'] ? $_GET['item_id'] : $this->object->getRefId());
                $this->chi_obj->chi_delete();

                if($_GET['item_id'])
                {
                        $this->cciEditObject();
                }
                else
                {
                        $this->editObject();
                }
        }

Here is the call graph for this function:

ilObjGroupGUI::chi_selectorObject (  ) 

Definition at line 1983 of file class.ilObjGroupGUI.php.

References $_GET, and initConditionHandlerGUI().

        {
                $this->initConditionHandlerGUI($_GET['item_id'] ? $_GET['item_id'] : $this->object->getRefId());
                $this->chi_obj->chi_selector();
        }               

Here is the call graph for this function:

ilObjGroupGUI::chi_updateObject (  ) 

Definition at line 1954 of file class.ilObjGroupGUI.php.

References $_GET, cciEditObject(), editObject(), and initConditionHandlerGUI().

        {
                $this->initConditionHandlerGUI($_GET['item_id'] ? $_GET['item_id'] : $this->object->getRefId());
                $this->chi_obj->chi_update();

                if($_GET['item_id'])
                {
                        $this->cciEditObject();
                }
                else
                {
                        $this->editObject();
                }
        }               

Here is the call graph for this function:

ilObjGroupGUI::cleanString ( str  ) 

Clean output string from german umlauts.

Clean output string from german umlauts. Replaces ä -> ae etc.

Parameters:
string $str String to clean
Returns:
string Cleaned string

Definition at line 2180 of file class.ilObjGroupGUI.php.

Referenced by exportMembersObject().

        {
                return str_replace(array("ä","ö","ü","ß","Ä","Ö","Ü"), array("ae","oe","ue","ss","Ae","Oe","Ue"), $str);
        }

Here is the caller graph for this function:

ilObjGroupGUI::confirmationObject ( user_id = "",
confirm,
cancel,
info = "",
status = "",
a_cmd_return_location = "" 
)

displays confirmation form public

Definition at line 459 of file class.ilObjGroupGUI.php.

References $_SESSION, $counter, $id, $status, $user_id, ilUtil::getImagePath(), ilUtil::getImageTagByType(), ilObjectGUI::getTemplateFile(), infoPanel(), sendInfo(), and ilUtil::switchColor().

Referenced by leaveGrpObject(), and removeMemberObject().

        {
                $this->data["cols"] = array("type", "title", "description", "last_change");

                if (is_array($user_id))
                {
                        foreach ($user_id as $id)
                        {
                                $obj_data =& $this->ilias->obj_factory->getInstanceByObjId($id);

                                $this->data["data"]["$id"] = array(
                                        "type"        => $obj_data->getType(),
                                        "title"       => $obj_data->getTitle(),
                                        "desc"        => $obj_data->getDescription(),
                                        "last_update" => $obj_data->getLastUpdateDate(),

                                        );
                        }
                }
                else
                {
                        $obj_data =& $this->ilias->obj_factory->getInstanceByObjId($user_id);

                        $this->data["data"]["$id"] = array(
                                "type"        => $obj_data->getType(),
                                "title"       => $obj_data->getTitle(),
                                "desc"        => $obj_data->getDescription(),
                                "last_update" => $obj_data->getLastUpdateDate(),
                                );
                }

                //write  in sessionvariables
                if(is_array($user_id))
                {
                        $_SESSION["saved_post"]["user_id"] = $user_id;
                }
                else
                {
                        $_SESSION["saved_post"]["user_id"][0] = $user_id;
                }

                if (isset($status))
                {
                        $_SESSION["saved_post"]["status"] = $status;
                }

                $this->data["buttons"] = array( $cancel  => $this->lng->txt("cancel"),
                                                $confirm  => $this->lng->txt("confirm"));

                $this->getTemplateFile("confirm");

                $this->tpl->setVariable("TPLPATH",$this->tpl->tplPath);

                infoPanel();

                sendInfo($this->lng->txt($info));

                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)."&cmd_return_location=".$a_cmd_return_location);

                // BEGIN TABLE HEADER
                foreach ($this->data["cols"] as $key)
                {
                        $this->tpl->setCurrentBlock("table_header");
                        $this->tpl->setVariable("TEXT",$this->lng->txt($key));
                        $this->tpl->parseCurrentBlock();
                }
                // END TABLE HEADER

                // BEGIN TABLE DATA
                $counter = 0;

                foreach ($this->data["data"] as $key => $value)
                {
                        // BEGIN TABLE CELL
                        foreach ($value as $key => $cell_data)
                        {
                                $this->tpl->setCurrentBlock("table_cell");

                                // CREATE TEXT STRING
                                if ($key == "type")
                                {
                                        $this->tpl->setVariable("TEXT_CONTENT",ilUtil::getImageTagByType($cell_data,$this->tpl->tplPath));
                                }
                                else
                                {
                                        $this->tpl->setVariable("TEXT_CONTENT",$cell_data);
                                }
                                $this->tpl->parseCurrentBlock();
                        }

                        $this->tpl->setCurrentBlock("table_row");
                        $this->tpl->setVariable("CSS_ROW",ilUtil::switchColor(++$counter,"tblrow1","tblrow2"));
                        $this->tpl->parseCurrentBlock();
                        // END TABLE CELL
                }
                // END TABLE DATA

                // BEGIN OPERATION_BTN
                foreach ($this->data["buttons"] as $name => $value)
                {
                        $this->tpl->setCurrentBlock("operation_btn");
                        $this->tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("spacer.gif"));
                        $this->tpl->setVariable("BTN_NAME",$name);
                        $this->tpl->setVariable("BTN_VALUE",$value);
                        $this->tpl->parseCurrentBlock();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::confirmedRemoveMemberObject (  ) 

remove members from group TODO: set return location to parent object if user removes himself TODO: allow user to remove himself when he is not group admin public

Definition at line 686 of file class.ilObjGroupGUI.php.

References $_SESSION, ilUtil::redirect(), and sendInfo().

        {
                //User needs to have administrative rights to remove members...
                foreach($_SESSION["saved_post"]["user_id"] as $member_id)
                {
                        $err_msg = $this->object->removeMember($member_id);

                        if (strlen($err_msg) > 0)
                        {
                                $this->ilErr->raiseError($this->lng->txt($err_msg),$this->ilErr->MESSAGE);
                        }
                }

                unset($_SESSION["saved_post"]);

                sendInfo($this->lng->txt("grp_msg_membership_annulled"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::createObject (  ) 

create new object form

Reimplemented from ilObjectGUI.

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

References $_GET, $_POST, $_SESSION, ilObjectGUI::$data, $rbacsystem, ilUtil::formRadioButton(), formSelect(), ilFormat::getDateDE(), ilObjectGUI::getFormAction(), ilObjectGUI::getTargetFrame(), ilObjectGUI::getTemplateFile(), ilUtil::prepareFormOutput(), and ilUtil::stripSlashes().

        {
                global $rbacsystem;

                $new_type = $_POST["new_type"] ? $_POST["new_type"] : $_GET["new_type"];

                if (!$rbacsystem->checkAccess("create", $_GET["ref_id"], $new_type))
                {
                        $this->ilErr->raiseError($this->lng->txt("permission_denied"),$this->ilErr->MESSAGE);
                }

                $data = array();

                if ($_SESSION["error_post_vars"])
                {
                        // fill in saved values in case of error
                        $data["fields"]["title"] = ilUtil::prepareFormOutput($_SESSION["error_post_vars"]["Fobject"]["title"],true);
                        $data["fields"]["desc"] = ilUtil::stripSlashes($_SESSION["error_post_vars"]["Fobject"]["desc"]);
                        $data["fields"]["password"] = $_SESSION["error_post_vars"]["password"];
                        $data["fields"]["expirationdate"] = $_SESSION["error_post_vars"]["expirationdate"];
                        $data["fields"]["expirationtime"] = $_SESSION["error_post_vars"]["expirationtime"];
                }
                else
                {
                        $data["fields"]["title"] = "";
                        $data["fields"]["desc"] = "";
                        $data["fields"]["password"] = "";
                        $data["fields"]["expirationdate"] = ilFormat::getDateDE();
                        $data["fields"]["expirationtime"] = "";
                }

                $this->getTemplateFile("edit",$new_type);

                foreach ($data["fields"] as $key => $val)
                {
                        $this->tpl->setVariable("TXT_".strtoupper($key), $this->lng->txt($key));
                        $this->tpl->setVariable(strtoupper($key), $val);

                        if ($this->prepare_output)
                        {
                                $this->tpl->parseCurrentBlock();
                        }
                }

                $stati  = array(0=>$this->lng->txt("group_status_public"),1=>$this->lng->txt("group_status_closed"));

                $grp_status = $_SESSION["error_post_vars"]["group_status"];

                $checked = array(0=>0,1=>0,2=>0);

                switch ($_SESSION["error_post_vars"]["enable_registration"])
                {
                        case 0:
                                $checked[0]=1;
                                break;

                        case 1:
                                $checked[1]=1;
                                break;

                        case 2:
                                $checked[2]=1;
                                break;

                        default:
                                $checked[0]=1;
                                break;
                }

                //build form
                $cb_registration[0] = ilUtil::formRadioButton($checked[0], "enable_registration", 0);
                $cb_registration[1] = ilUtil::formRadioButton($checked[1], "enable_registration", 1);
                $cb_registration[2] = ilUtil::formRadioButton($checked[2], "enable_registration", 2);

                $opts   = ilUtil::formSelect(0,"group_status",$stati,false,true);

                $this->tpl->setVariable("FORMACTION", $this->getFormAction("save",$this->ctrl->getFormAction($this)."&new_type=".$new_type));

                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt($new_type."_new"));
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                $this->tpl->setVariable("TXT_REGISTRATION", $this->lng->txt("group_registration_mode"));

                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt($new_type."_add"));
                $this->tpl->setVariable("CMD_SUBMIT", "save");
                $this->tpl->setVariable("TARGET", $this->getTargetFrame("save"));
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));

                $this->tpl->setVariable("TXT_DISABLEREGISTRATION", $this->lng->txt("disabled"));
                $this->tpl->setVariable("RB_NOREGISTRATION", $cb_registration[0]);
                $this->tpl->setVariable("TXT_ENABLEREGISTRATION", $this->lng->txt("enabled"));
                $this->tpl->setVariable("RB_REGISTRATION", $cb_registration[1]);
                $this->tpl->setVariable("TXT_PASSWORDREGISTRATION", $this->lng->txt("password"));
                $this->tpl->setVariable("RB_PASSWORDREGISTRATION", $cb_registration[2]);

                $this->tpl->setVariable("TXT_EXPIRATIONDATE", $this->lng->txt("group_registration_expiration_date"));
                $this->tpl->setVariable("TXT_EXPIRATIONTIME", $this->lng->txt("group_registration_expiration_time"));
                $this->tpl->setVariable("TXT_DATE", $this->lng->txt("DD.MM.YYYY"));
                $this->tpl->setVariable("TXT_TIME", $this->lng->txt("HH:MM"));

                $this->tpl->setVariable("CB_KEYREGISTRATION", $cb_keyregistration);
                $this->tpl->setVariable("TXT_KEYREGISTRATION", $this->lng->txt("group_keyregistration"));
                $this->tpl->setVariable("TXT_PASSWORD", $this->lng->txt("password"));
                $this->tpl->setVariable("SELECT_GROUPSTATUS", $opts);
                $this->tpl->setVariable("TXT_GROUP_STATUS", $this->lng->txt("group_status"));
                $this->tpl->setVariable("TXT_GROUP_STATUS_DESC", $this->lng->txt("group_status_desc"));
        }

Here is the call graph for this function:

ilObjGroupGUI::editObject (  ) 

edit Group public

Reimplemented from ilObjectGUI.

Definition at line 363 of file class.ilObjGroupGUI.php.

References $_SESSION, ilObjectGUI::$data, $rbacsystem, ilUtil::formRadioButton(), ilObjectGUI::getTemplateFile(), ilUtil::prepareFormOutput(), and ilUtil::stripSlashes().

Referenced by chi_assignObject(), chi_deleteObject(), and chi_updateObject().

        {
                global $rbacsystem;

                if (!$rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
                }

                $data = array();

                if ($_SESSION["error_post_vars"])
                {
                        // fill in saved values in case of error
                        $data["title"] = ilUtil::prepareFormOutput($_SESSION["error_post_vars"]["Fobject"]["title"],true);
                        $data["desc"] = ilUtil::stripSlashes($_SESSION["error_post_vars"]["Fobject"]["desc"]);
                        $data["registration"] = $_SESSION["error_post_vars"]["registration"];
                        $data["password"] = $_SESSION["error_post_vars"]["password"];
                        $data["expirationdate"] = $_SESSION["error_post_vars"]["expirationdate"];//$datetime[0];//$this->grp_object->getExpirationDateTime()[0];
                        $data["expirationtime"] = $_SESSION["error_post_vars"]["expirationtime"];//$datetime[1];//$this->grp_object->getExpirationDateTime()[1];

                }
                else
                {
                        $data["title"] = ilUtil::prepareFormOutput($this->object->getTitle());
                        $data["desc"] = $this->object->getDescription();
                        $data["registration"] = $this->object->getRegistrationFlag();
                        $data["password"] = $this->object->getPassword();
                        $datetime = $this->object->getExpirationDateTime();

                        $data["expirationdate"] = $datetime[0];//$this->grp_object->getExpirationDateTime()[0];
                        $data["expirationtime"] =  substr($datetime[1],0,5);//$this->grp_object->getExpirationDateTime()[1];

                }

                $this->getTemplateFile("edit");

                foreach ($data as $key => $val)
                {
                        $this->tpl->setVariable("TXT_".strtoupper($key), $this->lng->txt($key));
                        $this->tpl->setVariable(strtoupper($key), $val);
                        $this->tpl->parseCurrentBlock();
                }

                $checked = array(0=>0,1=>0,2=>0);

                switch ($this->object->getRegistrationFlag())
                {
                        case 0:
                                $checked[0]=1;
                                break;

                        case 1:
                                $checked[1]=1;
                                break;

                        case 2:
                                $checked[2]=1;
                                break;
                }

                $cb_registration[0] = ilUtil::formRadioButton($checked[0], "enable_registration", 0);
                $cb_registration[1] = ilUtil::formRadioButton($checked[1], "enable_registration", 1);
                $cb_registration[2] = ilUtil::formRadioButton($checked[2], "enable_registration", 2);

                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));//$this->getFormAction("update",$this->ctrl->getFormAction($this)));
                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("grp_edit"));
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $this->tpl->setVariable("CMD_CANCEL", "canceled");
                $this->tpl->setVariable("CMD_SUBMIT", "update");

                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                $this->tpl->setVariable("TXT_REGISTRATION", $this->lng->txt("group_registration_mode"));

                $this->tpl->setVariable("TXT_DISABLEREGISTRATION", $this->lng->txt("disabled"));
                $this->tpl->setVariable("RB_NOREGISTRATION", $cb_registration[0]);
                $this->tpl->setVariable("TXT_ENABLEREGISTRATION", $this->lng->txt("enabled"));
                $this->tpl->setVariable("RB_REGISTRATION", $cb_registration[1]);
                $this->tpl->setVariable("TXT_PASSWORDREGISTRATION", $this->lng->txt("password"));
                $this->tpl->setVariable("RB_PASSWORDREGISTRATION", $cb_registration[2]);

                $this->tpl->setVariable("TXT_EXPIRATIONDATE", $this->lng->txt("group_registration_expiration_date"));
                $this->tpl->setVariable("TXT_EXPIRATIONTIME", $this->lng->txt("group_registration_expiration_time"));           
                $this->tpl->setVariable("TXT_DATE", $this->lng->txt("DD.MM.YYYY"));
                $this->tpl->setVariable("TXT_TIME", $this->lng->txt("HH:MM"));

                $this->tpl->setVariable("CB_KEYREGISTRATION", $cb_keyregistration);
                $this->tpl->setVariable("TXT_KEYREGISTRATION", $this->lng->txt("group_keyregistration"));
                $this->tpl->setVariable("TXT_PASSWORD", $this->lng->txt("password"));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

& ilObjGroupGUI::executeCommand (  ) 

execute command

Reimplemented from ilObjectGUI.

Definition at line 74 of file class.ilObjGroupGUI.php.

References $_GET, $cmd, and $reg_gui.

        {
                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();

                switch($next_class)
                {
                        case "ilconditionhandlerinterface":
                                include_once './classes/class.ilConditionHandlerInterface.php';

                                if($_GET['item_id'])
                                {
                                        $new_gui =& new ilConditionHandlerInterface($this,(int) $_GET['item_id']);
                                        $this->ctrl->saveParameter($this,'item_id',$_GET['item_id']);
                                        $this->ctrl->forwardCommand($new_gui);
                                }
                                else
                                {
                                        $new_gui =& new ilConditionHandlerInterface($this);
                                        $this->ctrl->forwardCommand($new_gui);
                                }
                                break;

                        case "ilregistergui":
                                $this->ctrl->setReturn($this, "");   // ###
                                $reg_gui = new ilRegisterGUI();
                                //$reg_gui->executeCommand();
                                $ret =& $this->ctrl->forwardCommand($reg_gui);
                                break;

                        default:
                                if ($this->object->requireRegistration() and !$this->object->isUserRegistered())
                                {
                                        $this->ctrl->redirectByClass("ilRegisterGUI", "showRegistrationForm");
                                }

                                if (empty($cmd))
                                {
                                        #$this->ctrl->returnToParent($this);
                                        // NOT ACCESSIBLE SINCE returnToParent() starts a redirect
                                        $cmd = "view";
                                }

                                // NOT ACCESSIBLE SINCE returnToParent() starts a redirect
                                $cmd .= "Object";
                                $this->$cmd();
                                break;
                }
        }

ilObjGroupGUI::exportMembersObject (  ) 

Exports group members to Microsoft Excel file.

Exports group members to Microsoft Excel file

Definition at line 2025 of file class.ilObjGroupGUI.php.

References ilObjectGUI::$data, $result, $row, and cleanString().

        {
                // Creating a workbook
                $result = @include_once 'Spreadsheet/Excel/Writer.php';
                if (!$result)
                {
                        include_once './classes/Spreadsheet/Excel/Writer.php';
                }
                // Creating a workbook
                $workbook = new Spreadsheet_Excel_Writer();

                // sending HTTP headers
                $title = preg_replace("/\s/", "_", $this->object->getTitle());
                $workbook->send("export_" . $title . ".xls");

                // Creating a worksheet
                $format_bold =& $workbook->addFormat();
                $format_bold->setBold();
                $format_percent =& $workbook->addFormat();
                $format_percent->setNumFormat("0.00%");
                $format_datetime =& $workbook->addFormat();
                $format_datetime->setNumFormat("DD/MM/YYYY hh:mm:ss");
                $format_title =& $workbook->addFormat();
                $format_title->setBold();
                $format_title->setColor('black');
                $format_title->setPattern(1);
                $format_title->setFgColor('silver');
                $worksheet =& $workbook->addWorksheet();
                $column = 0;
                $profile_data = array("email", "gender", "firstname", "lastname", "person_title", "institution", 
                        "department", "street", "zipcode","city", "country", "phone_office", "phone_home", "phone_mobile",
                        "fax", "matriculation");
                foreach ($profile_data as $data)
                {
                        $worksheet->writeString(0, $column++, $this->cleanString($this->lng->txt($data)), $format_title);
                }
                $member_ids = $this->object->getGroupMemberIds();
                $row = 1;
                foreach ($member_ids as $member_id)
                {
                        $column = 0;
                        $member =& $this->ilias->obj_factory->getInstanceByObjId($member_id);
                        if ($member->getPref("public_email")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getEmail()));
                        }
                        else
                        {
                                $column++;
                        }
                        $worksheet->writeString($row, $column++, $this->cleanString($this->lng->txt("gender_" . $member->getGender())));
                        $worksheet->writeString($row, $column++, $this->cleanString($member->getFirstname()));
                        $worksheet->writeString($row, $column++, $this->cleanString($member->getLastname()));
                        $worksheet->writeString($row, $column++, $this->cleanString($member->getUTitle()));
                        if ($member->getPref("public_institution")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getInstitution()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_department")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getDepartment()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_street")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getStreet()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_zip")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getZipcode()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_city")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getCity()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_country")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getCountry()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_phone_office")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getPhoneOffice()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_phone_home")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getPhoneHome()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_phone_mobile")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getPhoneMobile()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_fax")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getFax()));
                        }
                        else
                        {
                                $column++;
                        }
                        if ($member->getPref("public_matriculation")=="y")
                        {
                                $worksheet->writeString($row, $column++, $this->cleanString($member->getMatriculation()));
                        }
                        else
                        {
                                $column++;
                        }
                        $row++;
                }
                $workbook->close();
        }

Here is the call graph for this function:

ilObjGroupGUI::exportObject (  ) 

Creates the output form for group member export.

Creates the output form for group member export

Definition at line 2010 of file class.ilObjGroupGUI.php.

References ilObjectGUI::getFormAction().

        {
                $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.grp_members_export.html");
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORMACTION", $this->getFormAction("export",$this->ctrl->getFormAction($this)));
                $this->tpl->setVariable("BUTTON_EXPORT", $this->lng->txt("export_group_members"));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjGroupGUI::getTabs ( &$  tabs_gui  ) 

get tabs abstract method.

overwrite in derived GUI class of your object type public

Parameters:
object instance of ilTabsGUI

Reimplemented from ilObjectGUI.

Definition at line 1253 of file class.ilObjGroupGUI.php.

References $_SESSION, and $rbacsystem.

        {
                global $rbacsystem;

                $this->ctrl->setParameter($this,"ref_id",$this->ref_id);

                if ($rbacsystem->checkAccess('read',$this->ref_id))
                {
                        $tabs_gui->addTarget("view_content",
                                $this->ctrl->getLinkTarget($this, ""), "", get_class($this));
                }

                if ($rbacsystem->checkAccess('write',$this->ref_id))
                {
                        $tabs_gui->addTarget("edit_properties",
                                $this->ctrl->getLinkTarget($this, "edit"), "edit", get_class($this));
//  Export tab to export group members to an excel file. Only available for group admins
//  commented out for following reason: clearance needed with developer list
//                      $tabs_gui->addTarget("export",
//                              $this->ctrl->getLinkTarget($this, "export"), "export", get_class($this));
                }

                if ($rbacsystem->checkAccess('read',$this->ref_id))
                {
                        $tabs_gui->addTarget("group_members",
                                $this->ctrl->getLinkTarget($this, "members"), "members", get_class($this));
                }
                
                $applications = $this->object->getNewRegistrations();

                if (is_array($applications) and $this->object->isAdmin($this->ilias->account->getId()))
                {
                        $tabs_gui->addTarget("group_new_registrations",
                                $this->ctrl->getLinkTarget($this, "ShownewRegistrations"), "ShownewRegistrations", get_class($this));
                }

                if ($rbacsystem->checkAccess('edit_permission',$this->ref_id))
                {
                        $tabs_gui->addTarget("perm_settings",
                                $this->ctrl->getLinkTarget($this, "perm"), "perm", get_class($this));
                }
                
                // show clipboard in repository
                if ($this->ctrl->getTargetScript() == "repository.php" and !empty($_SESSION['il_rep_clipboard']))
                {
                        $tabs_gui->addTarget("clipboard",
                                 $this->ctrl->getLinkTarget($this, "clipboard"), "clipboard", get_class($this));
                }

                if ($this->ctrl->getTargetScript() == "adm_object.php")
                {
                        $tabs_gui->addTarget("show_owner",
                                $this->ctrl->getLinkTarget($this, "owner"), "owner", get_class($this));
                        
                        if ($this->tree->getSavedNodeData($this->ref_id))
                        {
                                $tabs_gui->addTarget("trash",
                                        $this->ctrl->getLinkTarget($this, "trash"), "trash", get_class($this));
                        }
                }
        }

ilObjGroupGUI::ilObjGroupGUI ( a_data,
a_id,
a_call_by_reference,
a_prepare_output = true 
)

Constructor public.

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

References ilObjectGUI::ilObjectGUI().

        {
                $this->type = "grp";
                $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
        }

Here is the call graph for this function:

ilObjGroupGUI::importObject (  ) 

import new object form

public

Reimplemented from ilObjectGUI.

Definition at line 1318 of file class.ilObjGroupGUI.php.

References $_GET, $rbacsystem, and ilObjectGUI::getTemplateFile().

Referenced by performImportObject().

        {
                global $rbacsystem;

                if (!$rbacsystem->checkAccess("create", $_GET["ref_id"],"grp"))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }

                $this->getTemplateFile("import","grp");

                $this->tpl->setVariable("FORMACTION","adm_object.php?ref_id=".$this->ref_id."&cmd=gateway&new_type=grp");
                $this->tpl->setVariable("TXT_IMPORT_GROUP",$this->lng->txt("group_import"));
                $this->tpl->setVariable("TXT_IMPORT_FILE",$this->lng->txt("group_import_file"));
                $this->tpl->setVariable("BTN_CANCEL",$this->lng->txt("cancel"));
                $this->tpl->setVariable("BTN_IMPORT",$this->lng->txt("import"));

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::initConditionHandlerGUI ( item_id  ) 

Definition at line 1935 of file class.ilObjGroupGUI.php.

References $_GET.

Referenced by chi_assignObject(), chi_deleteObject(), chi_selectorObject(), and chi_updateObject().

        {
                include_once './classes/class.ilConditionHandlerInterface.php';

                if(!is_object($this->chi_obj))
                {
                        if($_GET['item_id'])
                        {
                                $this->chi_obj =& new ilConditionHandlerInterface($this,$item_id);
                                $this->ctrl->saveParameter($this,'item_id',$_GET['item_id']);
                        }
                        else
                        {
                                $this->chi_obj =& new ilConditionHandlerInterface($this);
                        }
                }
                return true;
        }

Here is the caller graph for this function:

ilObjGroupGUI::initCourseContentInterface (  ) 

Definition at line 1397 of file class.ilObjGroupGUI.php.

References $ilCtrl.

Referenced by cciEditObject(), cciMoveObject(), cciUpdateObject(), and viewObject().

        {
                global $ilCtrl;

                include_once "./course/classes/class.ilCourseContentInterface.php";
                
                $this->object->ctrl =& $ilCtrl;
                $this->cci_obj =& new ilCourseContentInterface($this,$this->object->getRefId());
        }

Here is the caller graph for this function:

ilObjGroupGUI::leaveGrpObject (  ) 

leave Group public

Definition at line 571 of file class.ilObjGroupGUI.php.

References $_GET, $status, and confirmationObject().

        {
                $member = array($_GET["mem_id"]);
                //set methods that are called after confirmation
                $confirm = "confirmedDeleteMember";
                $cancel  = "canceled";
                $info    = "info_delete_sure";
                $status  = "";
                $return  = "";
                $this->confirmationObject($member, $confirm, $cancel, $info, $status, $return);
        }

Here is the call graph for this function:

ilObjGroupGUI::listUsersGroupObject (  ) 

Definition at line 1866 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $counter, $rbacreview, $rbacsystem, ilObjectGUI::$tree, $user, ilObjectGUI::__showButton(), __showSearchUserTable(), formatDate(), ilUtil::formCheckbox(), ilObjectFactory::getInstanceByObjId(), ilObjectFactory::getInstanceByRefId(), searchObject(), and sendInfo().

        {
                global $rbacsystem,$rbacreview,$tree;

                $_SESSION["grp_group"] = $_POST["group"] = $_POST["group"] ? $_POST["group"] : $_SESSION["grp_group"];

                // MINIMUM ACCESS LEVEL = 'administrate'
                if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                if(!is_array($_POST["group"]))
                {
                        sendInfo($this->lng->txt("grp_no_groups_selected"));
                        $this->searchObject();

                        return false;
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
                $this->__showButton("searchUserForm",$this->lng->txt("grp_new_search"));

                // GET ALL MEMBERS
                $members = array();
                foreach($_POST["group"] as $group_id)
                {
                        if (!$tree->isInTree($group_id))
                        {
                                continue;
                        }
                        if (!$tmp_obj = ilObjectFactory::getInstanceByRefId($group_id))
                        {
                                continue;
                        }

                        $members = array_merge($tmp_obj->getGroupMemberIds(),$members);

                        unset($tmp_obj);
                }

                $members = array_unique($members);

                // FORMAT USER DATA
                $counter = 0;
                $f_result = array();
                foreach($members as $user)
                {
                        if(!$tmp_obj = ilObjectFactory::getInstanceByObjId($user,false))
                        {
                                continue;
                        }
                        
                        $user_ids[$counter] = $user;
                        
                        $f_result[$counter][] = ilUtil::formCheckbox(0,"user[]",$user);
                        $f_result[$counter][] = $tmp_obj->getLogin();
                        $f_result[$counter][] = $tmp_obj->getLastname();
                        $f_result[$counter][] = $tmp_obj->getFirstname();
                        $f_result[$counter][] = ilFormat::formatDate($tmp_obj->getLastLogin());

                        unset($tmp_obj);
                        ++$counter;
                }
                $this->__showSearchUserTable($f_result,$user_ids,"listUsersGroup");

                return true;
        }

Here is the call graph for this function:

ilObjGroupGUI::listUsersRoleObject (  ) 

Definition at line 1808 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $counter, $rbacreview, $rbacsystem, $role_id, $user, ilObjectGUI::__showButton(), __showSearchUserTable(), formatDate(), ilUtil::formCheckbox(), ilObjectFactory::getInstanceByObjId(), searchObject(), and sendInfo().

        {
                global $rbacsystem,$rbacreview;

                $_SESSION["grp_role"] = $_POST["role"] = $_POST["role"] ? $_POST["role"] : $_SESSION["grp_role"];

                // MINIMUM ACCESS LEVEL = 'administrate'
                if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                if(!is_array($_POST["role"]))
                {
                        sendInfo($this->lng->txt("grp_no_roles_selected"));
                        $this->searchObject();

                        return false;
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
                $this->__showButton("searchUserForm",$this->lng->txt("grp_new_search"));

                // GET ALL MEMBERS
                $members = array();
                foreach($_POST["role"] as $role_id)
                {
                        $members = array_merge($rbacreview->assignedUsers($role_id),$members);
                }

                $members = array_unique($members);

                // FORMAT USER DATA
                $counter = 0;
                $f_result = array();
                foreach($members as $user)
                {
                        if(!$tmp_obj = ilObjectFactory::getInstanceByObjId($user,false))
                        {
                                continue;
                        }
                        
                        $user_ids[$counter] = $user;

                        $f_result[$counter][] = ilUtil::formCheckbox(0,"user[]",$user);
                        $f_result[$counter][] = $tmp_obj->getLogin();
                        $f_result[$counter][] = $tmp_obj->getLastname();
                        $f_result[$counter][] = $tmp_obj->getFirstname();
                        $f_result[$counter][] = ilFormat::formatDate($tmp_obj->getLastLogin());

                        unset($tmp_obj);
                        ++$counter;
                }
                $this->__showSearchUserTable($f_result,$user_ids,"listUsersRole");

                return true;
        }

Here is the call graph for this function:

ilObjGroupGUI::membersObject (  ) 

display group members

Definition at line 817 of file class.ilObjGroupGUI.php.

References $counter, $ilBench, $rbacsystem, __showMembersTable(), and formatDate().

        {
                global $rbacsystem,$ilBench,$ilDB;

                $ilBench->start("GroupGUI", "membersObject");
                
                //if current user is admin he is able to add new members to group
                $val_contact = "<img src=\"".ilUtil::getImagePath("icon_pencil_b.gif")."\" alt=\"".$this->lng->txt("grp_mem_send_mail")."\" title=\"".$this->lng->txt("grp_mem_send_mail")."\" border=\"0\" vspace=\"0\"/>";
                $val_change = "<img src=\"".ilUtil::getImagePath("icon_change_b.gif")."\" alt=\"".$this->lng->txt("grp_mem_change_status")."\" title=\"".$this->lng->txt("grp_mem_change_status")."\" border=\"0\" vspace=\"0\"/>";
                $val_leave = "<img src=\"".ilUtil::getImagePath("icon_group_out_b.gif")."\" alt=\"".$this->lng->txt("grp_mem_leave")."\" title=\"".$this->lng->txt("grp_mem_leave")."\" border=\"0\" vspace=\"0\"/>";

                // store access checks to improve performance
                $access_delete = $rbacsystem->checkAccess("delete",$this->object->getRefId());
                $access_leave = $rbacsystem->checkAccess("leave",$this->object->getRefId());
                $access_write = $rbacsystem->checkAccess("write",$this->object->getRefId());

                $member_ids = $this->object->getGroupMemberIds();
                
                // fetch all users data in one shot to improve performance
                $members = $this->object->getGroupMemberData($member_ids);
                
                $account_id = $this->ilias->account->getId();
                $counter = 0;

                foreach ($members as $mem)
                {
                        $link_contact = "mail_new.php?type=new&rcp_to=".$mem["login"];
                        $link_change = $this->ctrl->getLinkTarget($this,"changeMember")."&mem_id=".$mem["id"];
                
                        if (($mem["id"] == $account_id && $access_leave) || $access_delete)
                        {
                                $link_leave = $this->ctrl->getLinkTarget($this,"RemoveMember")."&mem_id=".$mem["id"];
                        }

                        //build function
                        if ($access_delete && $access_write)
                        {
                                $member_functions = "<a href=\"$link_change\">$val_change</a>";
                        }

                        if (($mem["id"] == $account_id && $access_leave) || $access_delete)
                        {
                                $member_functions .="<a href=\"$link_leave\">$val_leave</a>";
                        }

                        // this is twice as fast than the code above
                        $str_member_roles = $this->object->getMemberRolesTitle($mem["id"]);

                        if ($access_delete && $access_write)
                        {
                                $result_set[$counter][] = ilUtil::formCheckBox(0,"user_id[]",$mem["id"]);
                        }
                        
                        $user_ids[$counter] = $mem["id"];
            
            //discarding the checkboxes
                        $result_set[$counter][] = $mem["login"];
                        $result_set[$counter][] = $mem["firstname"];
                        $result_set[$counter][] = $mem["lastname"];
                        $result_set[$counter][] = ilFormat::formatDate($mem["last_login"]);
                        $result_set[$counter][] = $str_member_roles;
                        $result_set[$counter][] = "<a href=\"$link_contact\">".$val_contact."</a>".$member_functions;

                        ++$counter;

                        unset($member_functions);
                }

                $ilBench->stop("GroupGUI", "membersObject");

                return $this->__showMembersTable($result_set,$user_ids);
    }

Here is the call graph for this function:

ilObjGroupGUI::performImportObject (  ) 

Definition at line 1338 of file class.ilObjGroupGUI.php.

References $_GET, __initFileObject(), __initParserObject(), importObject(), ilUtil::redirect(), and sendInfo().

        {

                $this->__initFileObject();

                if(!$this->file_obj->storeUploadedFile($_FILES["importFile"]))  // STEP 1 save file in ...import/mail
                {
                        $this->message = $this->lng->txt("import_file_not_valid"); 
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->unzip())
                {
                        $this->message = $this->lng->txt("cannot_unzip_file");                  // STEP 2 unzip uplaoded file
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->findXMLFile())                                                // STEP 3 getXMLFile
                {
                        $this->message = $this->lng->txt("cannot_find_xml");
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->__initParserObject($this->file_obj->getXMLFile()) or !$this->parser_obj->startParsing())
                {
                        $this->message = $this->lng->txt("import_parse_error").":<br/>"; // STEP 5 start parsing
                }

                // FINALLY CHECK ERROR
                if(!$this->message)
                {
                        sendInfo($this->lng->txt("import_grp_finished"),true);
                        ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]);
                }
                else
                {
                        sendInfo($this->message);
                        $this->importObject();
                }
        }

Here is the call graph for this function:

ilObjGroupGUI::refuseApplicantsObject (  ) 

adds applicant to group as member public

Definition at line 1025 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $user, ilUtil::redirect(), and sendInfo().

        {
                $user_ids = $_POST["user_id"];

                if (empty($user_ids[0]))
                {
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }

                $mail = new ilMail($_SESSION["AccountId"]);

                foreach ($user_ids as $new_member)
                {
                        $user =& $this->ilias->obj_factory->getInstanceByObjId($new_member);

                        $this->object->deleteApplicationListEntry($new_member);
                        $mail->sendMail($user->getLogin(),"","","Membership application refused: Group ".$this->object->getTitle(),"Your application has been refused.",array(),array('normal'));
                }

                sendInfo($this->lng->txt("grp_msg_applicants_removed"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::removeMemberObject (  ) 

displays confirmation formular with users that shall be removed from group public

Definition at line 643 of file class.ilObjGroupGUI.php.

References $_GET, $_POST, $_SESSION, $status, and confirmationObject().

        {
                $user_ids = array();

                if (isset($_POST["user_id"]))
                {
                        $user_ids = $_POST["user_id"];
                }
                else if (isset($_GET["mem_id"]))
                {
                        $user_ids[] = $_GET["mem_id"];
                }

                if (empty($user_ids[0]))
                {
                        $this->ilErr->raiseError($this->lng->txt("no_checkbox"),$this->ilErr->MESSAGE);
                }
                
                if (count($user_ids) == 1 and $this->ilias->account->getId() != $user_ids[0])
                {
                        if (!in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"]) 
                                and !in_array($this->ilias->account->getId(),$this->object->getGroupAdminIds()))
                        {
                                $this->ilErr->raiseError($this->lng->txt("grp_err_no_permission"),$this->ilErr->MESSAGE);
                        }
                }
                //bool value: says if $users_ids contains current user id
                $is_dismiss_me = array_search($this->ilias->account->getId(),$user_ids);
                
                $confirm = "confirmedRemoveMember";
                $cancel  = "canceled";
                $info    = ($is_dismiss_me !== false) ? "grp_dismiss_myself" : "grp_dismiss_member";
                $status  = "";
                $return  = "members";
                $this->confirmationObject($user_ids, $confirm, $cancel, $info, $status, $return);
        }

Here is the call graph for this function:

ilObjGroupGUI::saveObject (  ) 

save group object public

Reimplemented from ilObjectGUI.

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

References $_POST, $rbacadmin, $roles, ilObjectGUI::getReturnLocation(), ilUtil::groupNameExists(), ilUtil::redirect(), and sendInfo().

        {
                global $rbacadmin;

                // check required fields
                if (empty($_POST["Fobject"]["title"]))
                {
                        $this->ilErr->raiseError($this->lng->txt("fill_out_all_required_fields"),$this->ilErr->MESSAGE);
                }

                // check registration & password
                if ($_POST["enable_registration"] == 2 and empty($_POST["password"]))
                {
                        $this->ilErr->raiseError($this->lng->txt("no_password"),$this->ilErr->MESSAGE);
                }

                // check groupname
                if (ilUtil::groupNameExists($_POST["Fobject"]["title"]))

                {
                        $this->ilErr->raiseError($this->lng->txt("grp_name_exists"),$this->ilErr->MESSAGE);
                }

                // create and insert forum in objecttree
                $groupObj = parent::saveObject();

                // setup rolefolder & default local roles (admin & member)
                $roles = $groupObj->initDefaultRoles();

                // ...finally assign groupadmin role to creator of group object
                $groupObj->addMember($this->ilias->account->getId(),$groupObj->getDefaultAdminRole());

                $groupObj->setRegistrationFlag($_POST["enable_registration"]);//0=no registration, 1=registration enabled 2=passwordregistration
                $groupObj->setPassword($_POST["password"]);
                $groupObj->setExpirationDateTime($_POST["expirationdate"]." ".$_POST["expirationtime"].":00");
                $groupObj->setGroupStatus($_POST["group_status"]);              //0=public,1=private,2=closed

                $this->ilias->account->addDesktopItem($groupObj->getRefId(),"grp");             
                
                // always send a message
                sendInfo($this->lng->txt("grp_added"),true);
                ilUtil::redirect($this->getReturnLocation("save",$this->ctrl->getLinkTarget($this,"")));
        }

Here is the call graph for this function:

ilObjGroupGUI::searchCancelledObject (  ) 

Definition at line 1246 of file class.ilObjGroupGUI.php.

References ilUtil::redirect(), and sendInfo().

        {
                sendInfo($this->lng->txt("action_aborted"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::searchObject (  ) 

Definition at line 1109 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $counter, $rbacsystem, $result, ilObjectGUI::$tree, $user, __search(), ilObjectGUI::__showButton(), __showSearchGroupTable(), __showSearchRoleTable(), __showSearchUserTable(), formatDate(), ilUtil::formCheckbox(), ilObjectFactory::getInstanceByObjId(), ilObjectFactory::getInstanceByRefId(), searchUserFormObject(), sendInfo(), and ilUtil::stripSlashes().

Referenced by listUsersGroupObject(), and listUsersRoleObject().

        {
                global $rbacsystem,$tree;

                $_SESSION["grp_search_str"] = $_POST["search_str"] = $_POST["search_str"] ? $_POST["search_str"] : $_SESSION["grp_search_str"];
                $_SESSION["grp_search_for"] = $_POST["search_for"] = $_POST["search_for"] ? $_POST["search_for"] : $_SESSION["grp_search_for"];
                
                // MINIMUM ACCESS LEVEL = 'administrate'
                if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                if(!isset($_POST["search_for"]) or !isset($_POST["search_str"]))
                {
                        sendInfo($this->lng->txt("grp_search_enter_search_string"));
                        $this->searchUserFormObject();
                        
                        return false;
                }

                if(!count($result = $this->__search(ilUtil::stripSlashes($_POST["search_str"]),$_POST["search_for"])))
                {
                        sendInfo($this->lng->txt("grp_no_results_found"));
                        $this->searchUserFormObject();

                        return false;
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
                $this->__showButton("searchUserForm",$this->lng->txt("grp_new_search"));
                
                $counter = 0;
                $f_result = array();

                switch($_POST["search_for"])
                {
                case "usr":
                                foreach($result as $user)
                                {
                                        if(!$tmp_obj = ilObjectFactory::getInstanceByObjId($user["id"],false))
                                        {
                                                continue;
                                        }
                                        
                                        $user_ids[$counter] = $user["id"];
                                        
                                        $f_result[$counter][] = ilUtil::formCheckbox(0,"user[]",$user["id"]);
                                        $f_result[$counter][] = $tmp_obj->getLogin();
                                        $f_result[$counter][] = $tmp_obj->getFirstname();
                                        $f_result[$counter][] = $tmp_obj->getLastname();
                                        $f_result[$counter][] = ilFormat::formatDate($tmp_obj->getLastLogin());

                                        unset($tmp_obj);
                                        ++$counter;
                                }
                                $this->__showSearchUserTable($f_result,$user_ids);

                                return true;

                        case "role":
                                foreach($result as $role)
                                {
                    // exclude anonymous role
                    if ($role["id"] == ANONYMOUS_ROLE_ID)
                    {
                        continue;
                    }

                    if(!$tmp_obj = ilObjectFactory::getInstanceByObjId($role["id"],false))
                                        {
                                                continue;
                                        }
                                        
                                    // exclude roles with no users assigned to
                    if ($tmp_obj->getCountMembers() == 0)
                    {
                        continue;
                    }
                    
                    $role_ids[$counter] = $role["id"];
                    
                                        $f_result[$counter][] = ilUtil::formCheckbox(0,"role[]",$role["id"]);
                                        $f_result[$counter][] = array($tmp_obj->getTitle(),$tmp_obj->getDescription());
                                        $f_result[$counter][] = $tmp_obj->getCountMembers();
                                        
                                        unset($tmp_obj);
                                        ++$counter;
                                }
                                
                                $this->__showSearchRoleTable($f_result,$role_ids);

                                return true;
                                
                        case "grp":
                                foreach($result as $group)
                                {
                                        if(!$tree->isInTree($group["id"]))
                                        {
                                                continue;
                                        }
                                        
                                        if(!$tmp_obj = ilObjectFactory::getInstanceByRefId($group["id"],false))
                                        {
                                                continue;
                                        }
                                        
                    // exclude myself :-)
                    if ($tmp_obj->getId() == $this->object->getId())
                    {
                        continue;
                    }
                    
                    $grp_ids[$counter] = $group["id"];
                    
                                        $f_result[$counter][] = ilUtil::formCheckbox(0,"group[]",$group["id"]);
                                        $f_result[$counter][] = array($tmp_obj->getTitle(),$tmp_obj->getDescription());
                                        $f_result[$counter][] = $tmp_obj->getCountMembers();
                                        
                                        unset($tmp_obj);
                                        ++$counter;
                                }
                                
                                if(!count($f_result))
                                {
                                        sendInfo($this->lng->txt("grp_no_results_found"));
                                        $this->searchUserFormObject();

                                        return false;
                                }
                                
                                $this->__showSearchGroupTable($f_result,$grp_ids);

                                return true;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::searchUserFormObject (  ) 

Definition at line 1073 of file class.ilObjGroupGUI.php.

References $_POST, $_SESSION, $rbacsystem, __unsetSessionVariables(), and ilUtil::formRadioButton().

Referenced by searchObject().

        {
                global $rbacsystem;

                $this->lng->loadLanguageModule('search');

                // MINIMUM ACCESS LEVEL = 'administrate'
                if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }

                $this->tpl->addBlockFile("ADM_CONTENT","adm_content","tpl.grp_members_search.html");
                
                $this->tpl->setVariable("F_ACTION",$this->ctrl->getFormAction($this));
                $this->tpl->setVariable("SEARCH_ASSIGN_USR",$this->lng->txt("grp_search_members"));
                $this->tpl->setVariable("SEARCH_SEARCH_TERM",$this->lng->txt("search_search_term"));
                $this->tpl->setVariable("SEARCH_VALUE",$_SESSION["grp_search_str"] ? $_SESSION["grp_search_str"] : "");
                $this->tpl->setVariable("SEARCH_FOR",$this->lng->txt("exc_search_for"));
                $this->tpl->setVariable("SEARCH_ROW_TXT_USER",$this->lng->txt("exc_users"));
                $this->tpl->setVariable("SEARCH_ROW_TXT_ROLE",$this->lng->txt("exc_roles"));
                $this->tpl->setVariable("SEARCH_ROW_TXT_GROUP",$this->lng->txt("exc_groups"));
                $this->tpl->setVariable("BTN2_VALUE",$this->lng->txt("cancel"));
                $this->tpl->setVariable("BTN1_VALUE",$this->lng->txt("search"));
                
        $usr = ($_POST["search_for"] == "usr" || $_POST["search_for"] == "") ? 1 : 0;
                $grp = ($_POST["search_for"] == "grp") ? 1 : 0;
                $role = ($_POST["search_for"] == "role") ? 1 : 0;

                $this->tpl->setVariable("SEARCH_ROW_CHECK_USER",ilUtil::formRadioButton($usr,"search_for","usr"));
                $this->tpl->setVariable("SEARCH_ROW_CHECK_ROLE",ilUtil::formRadioButton($role,"search_for","role"));
        $this->tpl->setVariable("SEARCH_ROW_CHECK_GROUP",ilUtil::formRadioButton($grp,"search_for","grp"));

                $this->__unsetSessionVariables();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjGroupGUI::showNewRegistrationsObject (  ) 

Definition at line 890 of file class.ilObjGroupGUI.php.

References $_GET, $output, $rbacsystem, $tbl, $user, ilUtil::getImagePath(), and ilUtil::sortArray().

        {
                global $rbacsystem;

                //get new applicants
                $applications = $this->object->getNewRegistrations();
                
                if (!$applications)
                {
                        $this->ilErr->raiseError($this->lng->txt("no_applications"),$this->ilErr->MESSAGE);
                }
                
                if ($_GET["sort_by"] == "title" or $_GET["sort_by"] == "")
                {
                        $_GET["sort_by"] = "login";
                }

                $val_contact = "<img src=\"".ilUtil::getImagePath("icon_pencil_b.gif")."\" alt=\"".$this->lng->txt("grp_app_send_mail")."\" title=\"".$this->lng->txt("grp_app_send_mail")."\" border=\"0\" vspace=\"0\"/>";

                foreach ($applications as $applicant)
                {
                        $user =& $this->ilias->obj_factory->getInstanceByObjId($applicant->user_id);

                        $link_contact = "mail_new.php?mobj_id=3&type=new&rcp_to=".$user->getLogin();
                        $link_change = $this->ctrl->getLinkTarget($this,"changeMember")."&mem_id=".$user->getId();
                        $member_functions = "<a href=\"$link_change\">$val_change</a>";
                        if (strcmp($_GET["check"], "all") == 0)
                        {
                                $checked = 1;
                        }
                        else
                        {
                                $checked = 0;
                        }
                        $this->data["data"][$user->getId()]= array(
                                "check"         => ilUtil::formCheckBox($checked,"user_id[]",$user->getId()),
                                "username"      => $user->getLogin(),
                                "fullname"      => $user->getFullname(),
                                "subject"       => $applicant->subject,
                                "date"          => $applicant->application_date,
                                "functions"     => "<a href=\"$link_contact\">".$val_contact."</a>"
                                );

                                unset($member_functions);
                                unset($user);
                }
                // load template for table content data
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this,"post"));

                $this->data["buttons"] = array( "refuseApplicants"  => $this->lng->txt("refuse"),
                                                                                "assignApplicants"  => $this->lng->txt("assign"));

                $this->tpl->addBlockfile("ADM_CONTENT", "member_table", "tpl.table.html");

                //prepare buttons [cancel|assign]
                foreach ($this->data["buttons"] as $name => $value)
                {
                        $this->tpl->setCurrentBlock("tbl_action_btn");
                        $this->tpl->setVariable("BTN_NAME",$name);
                        $this->tpl->setVariable("BTN_VALUE",$value);
                        $this->tpl->parseCurrentBlock();
                }
                
                $this->tpl->setCurrentBlock("tbl_action_plain_select");
                $this->tpl->setVariable("SELECT_ACTION", "<a href=\"" . $this->ctrl->getLinkTarget($this,"ShownewRegistrations") . "&check=all\">" . $this->lng->txt("check_all") . "</a>" . " / " . "<a href=\"" . $this->ctrl->getLinkTarget($this,"ShownewRegistrations") . "&check=none\">" . $this->lng->txt("uncheck_all") . "</a>");
                $this->tpl->parseCurrentBlock();

                if (isset($this->data["data"]))
                {
                        //sort data array
                        $this->data["data"] = ilUtil::sortArray($this->data["data"], $_GET["sort_by"], $_GET["sort_order"]);
                        $output = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
                }

                $this->tpl->setCurrentBlock("tbl_action_row");
                $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
                $this->tpl->setVariable("COLUMN_COUNTS",6);
                $this->tpl->setVariable("TPLPATH",$this->tpl->tplPath);

                // create table
                include_once "./classes/class.ilTableGUI.php";
                $tbl = new ilTableGUI($output);
                // title & header columns
                $tbl->setTitle($this->lng->txt("group_new_registrations"),"icon_usr_b.gif",$this->lng->txt("group_applicants"));
                //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
                $tbl->setHeaderNames(array("",$this->lng->txt("username"),$this->lng->txt("fullname"),$this->lng->txt("subject"),$this->lng->txt("application_date"),$this->lng->txt("grp_options")));
                $tbl->setHeaderVars(array("","login","fullname","subject","application_date","functions"),$this->ctrl->getParameterArray($this,"",false));
                $tbl->setColumnWidth(array("","20%","20%","35%","20%","5%"));

                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->setMaxCount(count($this->data["data"]));
                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                $tbl->render();
        }

Here is the call graph for this function:

ilObjGroupGUI::updateMemberStatusObject (  ) 

displays form in which the member-status can be changed public

Definition at line 1052 of file class.ilObjGroupGUI.php.

References $_POST, $rbacsystem, ilUtil::redirect(), and sendInfo().

        {
                global $rbacsystem;

                if (!$rbacsystem->checkAccess("write",$this->object->getRefId()) )
                {
                        $this->ilErr->raiseError("permission_denied",$this->ilErr->MESSAGE);
                }

                if (isset($_POST["member_status_select"]))
                {
                        foreach ($_POST["member_status_select"] as $key=>$value)
                        {
                                $this->object->setMemberStatus($key,$value);
                        }
                }

                sendInfo($this->lng->txt("msg_obj_modified"),true);
                ilUtil::redirect($this->ctrl->getLinkTarget($this,"members"));
        }

Here is the call graph for this function:

ilObjGroupGUI::updateObject (  ) 

update GroupObject public

Reimplemented from ilObjectGUI.

Definition at line 316 of file class.ilObjGroupGUI.php.

References $_GET, $_POST, $rbacsystem, ilObjectGUI::getReturnLocation(), ilUtil::groupNameExists(), ilUtil::isPassword(), ilUtil::redirect(), sendInfo(), and ilUtil::stripSlashes().

        {
                global $rbacsystem;
                
                if (!$rbacsystem->checkAccess("write",$_GET["ref_id"]) )
                {
                        $this->ilErr->raiseError("No permissions to change group status!",$this->ilErr->MESSAGE);
                }

                // check required fields
                if (empty($_POST["Fobject"]["title"]))
                {
                        $this->ilErr->raiseError($this->lng->txt("fill_out_all_required_fields"),$this->ilErr->MESSAGE);
                }

                if ($_POST["enable_registration"] == 2 && empty($_POST["password"]) || empty($_POST["expirationdate"]) || empty($_POST["expirationtime"]) )//Password-Registration Mode
                {
                        $this->ilErr->raiseError($this->lng->txt("grp_err_registration_data"),$this->ilErr->MESSAGE);
                }
                // check groupname
                if (ilUtil::groupNameExists(ilUtil::stripSlashes($_POST["Fobject"]["title"]),$this->object->getId()))
                {
                        $this->ilErr->raiseError($this->lng->txt("grp_name_exists"),$this->ilErr->MESSAGE);
                }

                $this->object->setTitle(ilUtil::stripSlashes($_POST["Fobject"]["title"]));
                $this->object->setDescription(ilUtil::stripSlashes($_POST["Fobject"]["desc"]));

                if ($_POST["enable_registration"] == 2 && !ilUtil::isPassword($_POST["password"]))
                {
                        $this->ilErr->raiseError($this->lng->txt("passwd_invalid"),$this->ilErr->MESSAGE);
                }

                $this->object->setRegistrationFlag($_POST["enable_registration"]);
                $this->object->setPassword($_POST["password"]);
                $this->object->setExpirationDateTime($_POST["expirationdate"]." ".$_POST["expirationtime"].":00");

                $this->update = $this->object->update();

                sendInfo($this->lng->txt("msg_obj_modified"),true);
                ilUtil::redirect($this->getReturnLocation("update",$this->ctrl->getLinkTarget($this,"members")));
        }

Here is the call graph for this function:

ilObjGroupGUI::viewObject (  ) 

list childs of current object

public

Reimplemented from ilObjectGUI.

Definition at line 52 of file class.ilObjGroupGUI.php.

References ilObjectGUI::$tree, and initCourseContentInterface().

        {
                global $tree;

                if($this->ctrl->getTargetScript() == "adm_object.php")
                {
                        parent::viewObject();
                        return true;
                }
                else if(!$tree->checkForParentType($this->ref_id,'crs'))
                {
                        $this->ctrl->returnToParent($this);
                }
                else
                {
                        $this->initCourseContentInterface();
                        $this->cci_obj->cci_view();
                }
                return true;
        }

Here is the call graph for this function:


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