Public Member Functions | Data Fields

ilPersonalProfileGUI Class Reference

Public Member Functions

 ilPersonalProfileGUI ()
 constructor
executeCommand ()
 execute command
 workWithUserSetting ($setting)
 Returns TRUE if working with the given user setting is allowed, FALSE otherwise.
 userSettingVisible ($setting)
 Returns TRUE if user setting is visible, FALSE otherwise.
 userSettingEnabled ($setting)
 Returns TRUE if user setting is enabled, FALSE otherwise.
 uploadUserPicture ()
 upload user image
 removeUserPicture ()
 remove user image
 changeUserPassword ()
 change user password
 saveProfile ()
 save user profile data
 showProfile ()
 show profile form
 __showOtherInformations ()
 __showUserDefinedFields ()
 __checkUserDefinedRequiredFields ()

Data Fields

 $tpl
 $lng
 $ilias
 $ctrl
 $user_defined_fields = null

Detailed Description

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


Member Function Documentation

ilPersonalProfileGUI::__checkUserDefinedRequiredFields (  ) 

Definition at line 1161 of file class.ilPersonalProfileGUI.php.

References $_POST.

Referenced by saveProfile().

        {
                foreach($this->user_defined_fields->getVisibleDefinitions() as $definition)
                {
                        $field_id = $definition['field_id'];
                        if($definition['required'] and !strlen($_POST['udf'][$field_id]))
                        {
                                return false;
                        }
                }
                return true;
        }

Here is the caller graph for this function:

ilPersonalProfileGUI::__showOtherInformations (  ) 

Definition at line 1107 of file class.ilPersonalProfileGUI.php.

References userSettingVisible().

Referenced by showProfile().

        {
                if($this->userSettingVisible("matriculation") or count($this->user_defined_fields->getVisibleDefinitions()))
                {
                        return true;
                }
                return false;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPersonalProfileGUI::__showUserDefinedFields (  ) 

Definition at line 1116 of file class.ilPersonalProfileGUI.php.

References ilUtil::formSelect(), and ilUtil::prepareFormOutput().

Referenced by showProfile().

        {
                global $ilUser;

                $user_defined_data = $ilUser->getUserDefinedData();
                foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
                {
                        if($definition['field_type'] == UDF_TYPE_TEXT)
                        {
                                $this->tpl->setCurrentBlock("field_text");
                                $this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
                                $this->tpl->setVariable("FIELD_VALUE",ilUtil::prepareFormOutput($user_defined_data[$field_id]));
                                if(!$definition['changeable'])
                                {
                                        $this->tpl->setVariable("DISABLED_FIELD",'disabled=\"disabled\"');
                                }
                                $this->tpl->parseCurrentBlock();
                        }
                        else
                        {
                                $this->tpl->setCurrentBlock("field_select");
                                $this->tpl->setVariable("SELECT_BOX",ilUtil::formSelect($user_defined_data[$field_id],
                                                                                                                                                'udf['.$definition['field_id'].']',
                                                                                                                                                $this->user_defined_fields->fieldValuesToSelectArray(
                                                                                                                                                        $definition['field_values']),
                                                                                                                                                false,
                                                                                                                                                true));
                                $this->tpl->parseCurrentBlock();
                        }
                        $this->tpl->setCurrentBlock("user_defined");

                        if($definition['required'])
                        {
                                $name = $definition['field_name']."<span class=\"asterisk\">*</span>";
                        }
                        else
                        {
                                $name = $definition['field_name'];
                        }
                        $this->tpl->setVariable("TXT_FIELD_NAME",$name);
                        $this->tpl->parseCurrentBlock();
                }
                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPersonalProfileGUI::changeUserPassword (  ) 

change user password

Definition at line 236 of file class.ilPersonalProfileGUI.php.

References $_POST, ilUtil::isPassword(), saveProfile(), and sendInfo().

        {
                global $ilUser, $ilSetting;

                // do nothing if auth mode is not local database
                if ($ilUser->getAuthMode(true) != AUTH_LOCAL &&
                        ($ilUser->getAuthMode(true) != AUTH_CAS || !$ilSetting->get("cas_allow_local")) &&
                        ($ilUser->getAuthMode(true) != AUTH_SOAP || !$ilSetting->get("soap_auth_allow_local"))
                        )
                {
                        $this->password_error = $this->lng->txt("not_changeable_for_non_local_auth");
                }

                // select password from auto generated passwords
                if ($this->ilias->getSetting("passwd_auto_generate") == 1)
                {
                        // check old password
                        if (md5($_POST["current_password"]) != $ilUser->getPasswd())
                        {
                                $this->password_error = $this->lng->txt("passwd_wrong");
                        }
                        // validate transmitted password
                        if (!ilUtil::isPassword($_POST["new_passwd"]))
                        {
                                $this->password_error = $this->lng->txt("passwd_not_selected");
                        }

                        if (empty($this->password_error))
                        {
                                sendInfo($this->lng->txt("saved_successfully"));
                                $ilUser->updatePassword($_POST["current_password"], $_POST["new_passwd"], $_POST["new_passwd"]);
                        }
                }
                else
                {
                        // check old password
                        if (md5($_POST["current_password"]) != $ilUser->getPasswd())
                        {
                                $this->password_error = $this->lng->txt("passwd_wrong");
                        }
                        // check new password
                        else if ($_POST["desired_password"] != $_POST["retype_password"])
                        {
                                $this->password_error = $this->lng->txt("passwd_not_match");
                        }
                        // validate password
                        else if (!ilUtil::isPassword($_POST["desired_password"]))
                        {
                                $this->password_error = $this->lng->txt("passwd_invalid");
                        }
                        else if ($_POST["current_password"] != "" and empty($this->password_error))
                        {
                                sendInfo($this->lng->txt("saved_successfully"));
                                $ilUser->updatePassword($_POST["current_password"], $_POST["desired_password"], $_POST["retype_password"]);
                        }
                }

                $this->saveProfile();
        }

Here is the call graph for this function:

& ilPersonalProfileGUI::executeCommand (  ) 

execute command

Definition at line 67 of file class.ilPersonalProfileGUI.php.

References $cmd.

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

                switch($next_class)
                {                               
                        default:
                                //$this->setTabs();
                                $cmd = $this->ctrl->getCmd("showProfile");
                                $this->$cmd();
                                break;
                }
                return true;
        }

ilPersonalProfileGUI::ilPersonalProfileGUI (  ) 

constructor

Definition at line 48 of file class.ilPersonalProfileGUI.php.

References $ilCtrl, $ilias, $lng, $rbacsystem, $tpl, and ilUserDefinedFields::_getInstance().

    {
        global $ilias, $tpl, $lng, $rbacsystem, $ilCtrl;

                include_once './classes/class.ilUserDefinedFields.php';
                $this->user_defined_fields =& ilUserDefinedFields::_getInstance();

        $this->tpl =& $tpl;
        $this->lng =& $lng;
        $this->ilias =& $ilias;
                $this->ctrl =& $ilCtrl;
                $this->settings = $ilias->getAllSettings();
                $this->upload_error = "";
                $this->password_error = "";
        }

Here is the call graph for this function:

ilPersonalProfileGUI::removeUserPicture (  ) 

remove user image

Definition at line 192 of file class.ilPersonalProfileGUI.php.

References $file, ilUtil::getWebspaceDir(), and saveProfile().

        {
                global $ilUser;
        
                $webspace_dir = ilUtil::getWebspaceDir();
                $image_dir = $webspace_dir."/usr_images";
                $file = $image_dir."/usr_".$ilUser->getID()."."."jpg";
                $thumb_file = $image_dir."/usr_".$ilUser->getID()."_small.jpg";
                $xthumb_file = $image_dir."/usr_".$ilUser->getID()."_xsmall.jpg";
                $xxthumb_file = $image_dir."/usr_".$ilUser->getID()."_xxsmall.jpg";
                $upload_file = $image_dir."/upload_".$ilUser->getID();
        
                // remove user pref file name
                $ilUser->setPref("profile_image", "");
                $ilUser->update();
        
                if (@is_file($file))
                {
                        unlink($file);
                }
                if (@is_file($thumb_file))
                {
                        unlink($thumb_file);
                }
                if (@is_file($xthumb_file))
                {
                        unlink($xthumb_file);
                }
                if (@is_file($xxthumb_file))
                {
                        unlink($xxthumb_file);
                }
                if (@is_file($upload_file))
                {
                        unlink($upload_file);
                }
        
                $this->saveProfile();
        }

Here is the call graph for this function:

ilPersonalProfileGUI::saveProfile (  ) 

save user profile data

Definition at line 301 of file class.ilPersonalProfileGUI.php.

References $_POST, $key, __checkUserDefinedRequiredFields(), ilUtil::is_email(), sendInfo(), showProfile(), ilUtil::stripSlashes(), and workWithUserSetting().

Referenced by changeUserPassword(), removeUserPicture(), and uploadUserPicture().

        {
                global $ilUser;
                
                //init checking var
                $form_valid = true;

                // testing by ratana ty:
                // if people check on check box it will
                // write some datata to table usr_pref
                // if check on Public Profile
                if (($_POST["chk_pub"])=="on")
                {
                        $ilUser->setPref("public_profile","y");
                }
                else
                {
                        $ilUser->setPref("public_profile","n");
                }

                // if check on Institute
                $val_array = array("institution", "department", "upload", "street",
                        "zip", "city", "country", "phone_office", "phone_home", "phone_mobile",
                        "fax", "email", "hobby", "matriculation");
        
                // set public profile preferences
                foreach($val_array as $key => $value)
                {
                        if (($_POST["chk_".$value]) == "on")
                        {
                                $ilUser->setPref("public_".$value,"y");
                        }
                        else
                        {
                                $ilUser->setPref("public_".$value,"n");
                        }
                }

                // check dynamically required fields
                foreach($this->settings as $key => $val)
                {
                        if (substr($key,0,8) == "require_")
                        {
                                $require_keys[] = substr($key,8);
                        }
                }

                foreach($require_keys as $key => $val)
                {
                        // exclude required system and registration-only fields
                        $system_fields = array("login", "default_role", "passwd", "passwd2");
                        if (!in_array($val, $system_fields))
                        {
                                if ($this->workWithUserSetting($val))
                                {
                                        if (isset($this->settings["require_" . $val]) && $this->settings["require_" . $val])
                                        {
                                                if (empty($_POST["usr_" . $val]))
                                                {
                                                        sendInfo($this->lng->txt("fill_out_all_required_fields") . ": " . $this->lng->txt($val));
                                                        $form_valid = false;
                                                }
                                        }
                                }
                        }
                }

                // Check user defined required fields
                if($form_valid and !$this->__checkUserDefinedRequiredFields())
                {
                        sendInfo($this->lng->txt("fill_out_all_required_fields"));
                        $form_valid = false;
                }

                // check email
                if ($this->workWithUserSetting("email"))
                {
                        if (!ilUtil::is_email($_POST["usr_email"]) and !empty($_POST["usr_email"]) and $form_valid)
                        {
                                sendInfo($this->lng->txt("email_not_valid"));
                                $form_valid = false;
                        }
                }

                //update user data (not saving!)
                if ($this->workWithUserSetting("firstname"))
                {
                        $ilUser->setFirstName(ilUtil::stripSlashes($_POST["usr_firstname"]));
                }
                if ($this->workWithUserSetting("lastname"))
                {
                        $ilUser->setLastName(ilUtil::stripSlashes($_POST["usr_lastname"]));
                }
                if ($this->workWithUserSetting("gender"))
                {
                        $ilUser->setGender($_POST["usr_gender"]);
                }
                if ($this->workWithUserSetting("title"))
                {
                        $ilUser->setUTitle(ilUtil::stripSlashes($_POST["usr_title"]));
                }
                $ilUser->setFullname();
                if ($this->workWithUserSetting("institution"))
                {
                        $ilUser->setInstitution(ilUtil::stripSlashes($_POST["usr_institution"]));
                }
                if ($this->workWithUserSetting("department"))
                {
                        $ilUser->setDepartment(ilUtil::stripSlashes($_POST["usr_department"]));
                }
                if ($this->workWithUserSetting("street"))
                {
                        $ilUser->setStreet(ilUtil::stripSlashes($_POST["usr_street"]));
                }
                if ($this->workWithUserSetting("zipcode"))
                {
                        $ilUser->setZipcode(ilUtil::stripSlashes($_POST["usr_zipcode"]));
                }
                if ($this->workWithUserSetting("city"))
                {
                        $ilUser->setCity(ilUtil::stripSlashes($_POST["usr_city"]));
                }
                if ($this->workWithUserSetting("country"))
                {
                        $ilUser->setCountry(ilUtil::stripSlashes($_POST["usr_country"]));
                }
                if ($this->workWithUserSetting("phone_office"))
                {
                        $ilUser->setPhoneOffice(ilUtil::stripSlashes($_POST["usr_phone_office"]));
                }
                if ($this->workWithUserSetting("phone_home"))
                {
                        $ilUser->setPhoneHome(ilUtil::stripSlashes($_POST["usr_phone_home"]));
                }
                if ($this->workWithUserSetting("phone_mobile"))
                {
                        $ilUser->setPhoneMobile(ilUtil::stripSlashes($_POST["usr_phone_mobile"]));
                }
                if ($this->workWithUserSetting("fax"))
                {
                        $ilUser->setFax(ilUtil::stripSlashes($_POST["usr_fax"]));
                }
                if ($this->workWithUserSetting("email"))
                {
                        $ilUser->setEmail(ilUtil::stripSlashes($_POST["usr_email"]));
                }
                if ($this->workWithUserSetting("hobby"))
                {
                        $ilUser->setHobby(ilUtil::stripSlashes($_POST["usr_hobby"]));
                }
                if ($this->workWithUserSetting("referral_comment"))
                {
                        $ilUser->setComment(ilUtil::stripSlashes($_POST["usr_referral_comment"]));
                }
                if ($this->workWithUserSetting("matriculation"))
                {
                        $ilUser->setMatriculation(ilUtil::stripSlashes($_POST["usr_matriculation"]));
                }
                // Set user defined data
                $ilUser->setUserDefinedData($_POST['udf']);

                // everthing's ok. save form data
                if ($form_valid)
                {
                        // init reload var. page should only be reloaded if skin or style were changed
                        $reload = false;
        
                        if ($this->workWithUserSetting("skin_style"))
                        {
                                //set user skin and style
                                if ($_POST["usr_skin_style"] != "")
                                {
                                        $sknst = explode(":", $_POST["usr_skin_style"]);
                
                                        if ($ilUser->getPref("style") != $sknst[1] ||
                                                $ilUser->getPref("skin") != $sknst[0])
                                        {
                                                $ilUser->setPref("skin", $sknst[0]);
                                                $ilUser->setPref("style", $sknst[1]);
                                                $reload = true;
                                        }
                                }
                        }
        
                        if ($this->workWithUserSetting("language"))
                        {       
                                // reload page if language was changed
                                //if ($_POST["usr_language"] != "" and $_POST["usr_language"] != $_SESSION['lang'])
                                // (this didn't work as expected, alex)
                                if ($_POST["usr_language"] != $ilUser->getLanguage())
                                {
                                        $reload = true;
                                }

                                // set user language
                                $ilUser->setLanguage($_POST["usr_language"]);

                        }
                        if ($this->workWithUserSetting("hits_per_page"))
                        {
                                // set user hits per page
                                if ($_POST["hits_per_page"] != "")
                                {
                                        $ilUser->setPref("hits_per_page",$_POST["hits_per_page"]);
                                }
                        }
        
                        // set show users online
                        if ($this->workWithUserSetting("show_users_online"))
                        {
                                $ilUser->setPref("show_users_online", $_POST["show_users_online"]);
                        }
                        
                        // save notes setting
                        if ($_POST["chk_notes"] != "")
                        {
                                $ilUser->setPref("show_notes","y");
                        }
                        else
                        {
                                $ilUser->setPref("show_notes","n");
                        }

                        // profile ok
                        $ilUser->setProfileIncomplete(false);
                        
                        // save user data & object_data
                        $ilUser->setTitle($ilUser->getFullname());
                        $ilUser->setDescription($ilUser->getEmail());
                        $ilUser->update();
        
                        // reload page only if skin or style were changed
                        // feedback
                        if (!empty($this->password_error))
                        {
                                sendInfo($this->password_error,true);
                        }
                        elseif (!empty($this->upload_error))
                        {
                                sendInfo($this->upload_error,true);
                        }
                        else if ($reload)
                        {
                                // feedback
                                sendInfo($this->lng->txt("saved_successfully"),true);
                                $this->ctrl->redirect($this, "");
                                //$this->tpl->setVariable("RELOAD","<script language=\"Javascript\">\ntop.location.href = \"./start.php\";\n</script>\n");
                        }
                        else
                        {
                                sendInfo($this->lng->txt("saved_successfully"),true);
                        }
                }
                
                $this->showProfile();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPersonalProfileGUI::showProfile (  ) 

show profile form

Definition at line 561 of file class.ilPersonalProfileGUI.php.

References $_POST, $_SESSION, $data, $ilias, $key, $lng, $rbacreview, $role_id, __showOtherInformations(), __showUserDefinedFields(), ilObjStyleSettings::_lookupActivatedStyle(), ilLanguage::_lookupEntry(), ilUtil::formRadioButton(), ilUtil::generatePasswords(), ilUtil::getImagePath(), ilUtil::getWebspaceDir(), infoPanel(), ilUtil::prepareFormOutput(), sendInfo(), userSettingEnabled(), and userSettingVisible().

Referenced by saveProfile().

        {
                global $ilUser, $styleDefinition, $rbacreview, $ilias, $lng, $ilSetting;
                
                $settings = $ilias->getAllSettings();
                
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_profile.html");
                
                // set locator
/*
                $this->tpl->setVariable("TXT_LOCATOR", $this->lng->txt("locator"));
                $this->tpl->touchBlock("locator_separator");
                $this->tpl->touchBlock("locator_item");
                //$this->tpl->setCurrentBlock("locator_item");
                //$this->tpl->setVariable("ITEM", $this->lng->txt("personal_desktop"));
                //$this->tpl->setVariable("LINK_ITEM",
                //      $this->ctrl->getLinkTargetByClass("ilpersonaldesktopgui"));
                //$this->tpl->parseCurrentBlock();
                
                $this->tpl->setCurrentBlock("locator_item");
                $this->tpl->setVariable("ITEM", $this->lng->txt("personal_profile"));
                $this->tpl->setVariable("LINK_ITEM",
                        $this->ctrl->getLinkTargetByClass("ilpersonalprofilegui", "showProfile"));
                $this->tpl->parseCurrentBlock();
*/
                
                // catch feedback message
                if ($ilUser->getProfileIncomplete())
                {
                        sendInfo($lng->txt("profile_incomplete"));
                }
                else
                {
                        sendInfo();
                }
                
                
                // display infopanel if something happened
                infoPanel();

                if ($this->userSettingVisible("language"))
                {
                        //get all languages
                        $languages = $this->lng->getInstalledLanguages();
                        
                        // preselect previous chosen language otherwise saved language
                        $selected_lang = (isset($_POST["usr_language"]))
                                ? $_POST["usr_language"]
                                : $ilUser->getLanguage();
                        
                        //go through languages
                        foreach($languages as $lang_key)
                        {
                                $this->tpl->setCurrentBlock("sel_lang");
                                //$tpl->setVariable("LANG", $lng->txt("lang_".$lang_key));
                                $this->tpl->setVariable("LANG", ilLanguage::_lookupEntry($lang_key,"meta", "meta_l_".$lang_key));
                                $this->tpl->setVariable("LANGSHORT", $lang_key);
                        
                                if ($selected_lang == $lang_key)
                                {
                                        $this->tpl->setVariable("SELECTED_LANG", "selected=\"selected\"");
                                }
                        
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                // get all templates
                include_once("classes/class.ilObjStyleSettings.php");
                $templates = $styleDefinition->getAllTemplates();
                
                if ($this->userSettingVisible("skin_style"))
                {
                        foreach($templates as $template)
                        {
                                // get styles information of template
                                $styleDef =& new ilStyleDefinition($template["id"]);
                                $styleDef->startParsing();
                                $styles = $styleDef->getStyles();
                        
                                foreach($styles as $style)
                                {
                                        if (!ilObjStyleSettings::_lookupActivatedStyle($template["id"],$style["id"]))
                                        {
                                                continue;
                                        }
                
                                        $this->tpl->setCurrentBlock("selectskin");
                        
                                        if ($ilUser->skin == $template["id"] &&
                                                $ilUser->prefs["style"] == $style["id"])
                                        {
                                                $this->tpl->setVariable("SKINSELECTED", "selected=\"selected\"");
                                        }
                        
                                        $this->tpl->setVariable("SKINVALUE", $template["id"].":".$style["id"]);
                                        $this->tpl->setVariable("SKINOPTION", $styleDef->getTemplateName()." / ".$style["name"]);
                                        $this->tpl->parseCurrentBlock();
                                }
                        }
                }
                
                // hits per page
                if ($this->userSettingVisible("hits_per_page"))
                {
                        $hits_options = array(2,10,15,20,30,40,50,100,9999);
                
                        foreach($hits_options as $hits_option)
                        {
                                $this->tpl->setCurrentBlock("selecthits");
                
                                if ($ilUser->prefs["hits_per_page"] == $hits_option)
                                {
                                        $this->tpl->setVariable("HITSSELECTED", "selected=\"selected\"");
                                }
                
                                $this->tpl->setVariable("HITSVALUE", $hits_option);
                
                                if ($hits_option == 9999)
                                {
                                        $hits_option = $this->lng->txt("no_limit");
                                }
                
                                $this->tpl->setVariable("HITSOPTION", $hits_option);
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                // Users Online
                if ($this->userSettingVisible("show_users_online"))
                {
                        $users_online_options = array("y","associated","n");
                        $selected_option = $ilUser->prefs["show_users_online"];
                        foreach($users_online_options as $an_option)
                        {
                                $this->tpl->setCurrentBlock("select_users_online");
                
                                if ($selected_option == $an_option)
                                {
                                        $this->tpl->setVariable("USERS_ONLINE_SELECTED", "selected=\"selected\"");
                                }
                
                                $this->tpl->setVariable("USERS_ONLINE_VALUE", $an_option);
                
                                $this->tpl->setVariable("USERS_ONLINE_OPTION", $this->lng->txt("users_online_show_".$an_option));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                // show notes
                if ($ilUser->prefs["show_notes"] != "n")
                {
                        $this->tpl->setVariable("CHK_NOTES", "checked");
                }
                $this->tpl->setVariable("TXT_SHOW_NOTES", $this->lng->txt("show_notes_on_pd"));
                
                if (($ilUser->getAuthMode(true) == AUTH_LOCAL ||
                        ($ilUser->getAuthMode(true) == AUTH_CAS && $ilSetting->get("cas_allow_local")) ||
                        ($ilUser->getAuthMode(true) == AUTH_SOAP && $ilSetting->get("soap_auth_allow_local"))
                        )
                        &&
                        $this->userSettingVisible('password'))
                {
                        if($this->ilias->getSetting('usr_settings_disable_password'))
                        {
                                $this->tpl->setCurrentBlock("disabled_password");
                                $this->tpl->setVariable("TXT_DISABLED_PASSWORD", $this->lng->txt("chg_password"));
                                $this->tpl->setVariable("TXT_DISABLED_CURRENT_PASSWORD", $this->lng->txt("current_password"));
                                $this->tpl->parseCurrentBlock();
                        }
                        elseif ($settings["passwd_auto_generate"] == 1)
                        {
                                $passwd_list = ilUtil::generatePasswords(5);
                         
                                foreach ($passwd_list as $passwd)
                                {
                                        $passwd_choice .= ilUtil::formRadioButton(0,"new_passwd",$passwd)." ".$passwd."<br/>";
                                }
                
                                $this->tpl->setCurrentBlock("select_password");
                                $this->tpl->setVariable("TXT_CHANGE_PASSWORD", $this->lng->txt("chg_password"));
                                $this->tpl->setVariable("TXT_CURRENT_PASSWORD", $this->lng->txt("current_password"));
                                $this->tpl->setVariable("TXT_SELECT_PASSWORD", $this->lng->txt("select_password"));
                                $this->tpl->setVariable("PASSWORD_CHOICE", $passwd_choice);
                                $this->tpl->setVariable("TXT_NEW_LIST_PASSWORD", $this->lng->txt("new_list_password"));
                                $this->tpl->parseCurrentBlock();
                        }
                        else
                        {
                                $this->tpl->setCurrentBlock("change_password");
                                $this->tpl->setVariable("TXT_CHANGE_PASSWORD", $this->lng->txt("chg_password"));
                                $this->tpl->setVariable("TXT_CURRENT_PW", $this->lng->txt("current_password"));
                                $this->tpl->setVariable("TXT_DESIRED_PW", $this->lng->txt("desired_password"));
                                $this->tpl->setVariable("TXT_RETYPE_PW", $this->lng->txt("retype_password"));
                                $this->tpl->setVariable("CHANGE_PASSWORD", $this->lng->txt("chg_password"));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_pd_b.gif"),
                        $this->lng->txt("personal_desktop"));

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

                $this->tpl->setVariable("HEADER", $this->lng->txt("personal_desktop"));
                $this->tpl->setVariable("TXT_OF",strtolower($this->lng->txt("of")));
                $this->tpl->setVariable("USR_FULLNAME",$ilUser->getFullname());
                
                $this->tpl->setVariable("TXT_USR_DATA", $this->lng->txt("userdata"));
                $this->tpl->setVariable("TXT_NICKNAME", $this->lng->txt("username"));
                $this->tpl->setVariable("TXT_PUBLIC_PROFILE", $this->lng->txt("public_profile"));
                
                $data = array();
                $data["fields"] = array();
                $data["fields"]["gender"] = "";
                $data["fields"]["firstname"] = "";
                $data["fields"]["lastname"] = "";
                $data["fields"]["title"] = "";
                $data["fields"]["institution"] = "";
                $data["fields"]["department"] = "";
                $data["fields"]["street"] = "";
                $data["fields"]["city"] = "";
                $data["fields"]["zipcode"] = "";
                $data["fields"]["country"] = "";
                $data["fields"]["phone_office"] = "";
                $data["fields"]["phone_home"] = "";
                $data["fields"]["phone_mobile"] = "";
                $data["fields"]["fax"] = "";
                $data["fields"]["email"] = "";
                $data["fields"]["hobby"] = "";
                $data["fields"]["referral_comment"] = "";
                $data["fields"]["matriculation"] = "";
                $data["fields"]["create_date"] = "";
                $data["fields"]["approve_date"] = "";
                $data["fields"]["active"] = "";
                
                $data["fields"]["default_role"] = $role;
                // fill presets
                foreach($data["fields"] as $key => $val)
                {
                        // note: general "title" is not as "title" for a person
                        if ($key != "title")
                        {
                                $str = $this->lng->txt($key);
                        }
                        else
                        {
                                $str = $this->lng->txt("person_title");
                        }
                
                        // check to see if dynamically required
                        if (isset($this->settings["require_" . $key]) && $this->settings["require_" . $key])
                        {
                                                $str = $str . '<span class="asterisk">*</span>';
                        }
                
                        if ($this->userSettingVisible("$key"))
                        {
                                $this->tpl->setVariable("TXT_".strtoupper($key), $str);
                        }
                }
                
                if ($this->userSettingVisible("gender"))
                {
                        $this->tpl->setVariable("TXT_GENDER_F",$this->lng->txt("gender_f"));
                        $this->tpl->setVariable("TXT_GENDER_M",$this->lng->txt("gender_m"));
                }
                
                
                if ($this->userSettingVisible("upload"))
                {
                        $this->tpl->setVariable("TXT_UPLOAD",$this->lng->txt("personal_picture"));
                        $webspace_dir = ilUtil::getWebspaceDir("output");
                        $full_img = $ilUser->getPref("profile_image");
                        $last_dot = strrpos($full_img, ".");
                        $small_img = substr($full_img, 0, $last_dot).
                                        "_small".substr($full_img, $last_dot, strlen($full_img) - $last_dot);
                        $image_file = $webspace_dir."/usr_images/".$small_img;
                        
                        if (@is_file($image_file))
                        {
                                $this->tpl->setCurrentBlock("pers_image");
                                $this->tpl->setVariable("IMG_PERSONAL", $image_file."?dummy=".rand(1,99999));
                                $this->tpl->setVariable("ALT_IMG_PERSONAL",$this->lng->txt("personal_picture"));
                                $this->tpl->parseCurrentBlock();
                                if ($this->userSettingEnabled("upload"))
                                {
                                        $this->tpl->setCurrentBlock("remove_pic");
                                        $this->tpl->setVariable("TXT_REMOVE_PIC", $this->lng->txt("remove_personal_picture"));
                                }
                                $this->tpl->parseCurrentBlock();
                                $this->tpl->setCurrentBlock("content");
                        }
                        
                        if ($this->userSettingEnabled("upload"))
                        {
                                $this->tpl->setCurrentBlock("upload_pic");
                                $this->tpl->setVariable("UPLOAD", $this->lng->txt("upload"));
                        }
                        $this->tpl->setVariable("TXT_FILE", $this->lng->txt("userfile"));
                        $this->tpl->setVariable("USER_FILE", $this->lng->txt("user_file"));
                }
                $this->tpl->setCurrentBlock("adm_content");
                
                // ilinc upload pic
                if ($this->userSettingVisible("upload") and $this->ilias->getSetting("ilinc_active"))
                {
                        include_once ('ilinc/classes/class.ilObjiLincUser.php');
                        $ilinc_user = new ilObjiLincUser($ilUser);
                                
                        if ($ilinc_user->id)
                        {
                                include_once ('ilinc/classes/class.ilnetucateXMLAPI.php');
                                $ilincAPI = new ilnetucateXMLAPI();
                                
                                $ilincAPI->uploadPicture($ilinc_user);
                                $response = $ilincAPI->sendRequest("uploadPicture");
                        
                                // return URL to user's personal page
                                $url = trim($response->data['url']['cdata']);
                
                                $this->tpl->setCurrentBlock("ilinc_upload_pic");
                                $this->tpl->setVariable("TXT_ILINC_UPLOAD", $this->lng->txt("ilinc_upload_pic_text"));
                                $this->tpl->setVariable("ILINC_UPLOAD_LINK", $url);
                                $this->tpl->setVariable("ILINC_UPLOAD_LINKTXT", $this->lng->txt("ilinc_upload_pic_linktext"));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                
                if ($this->userSettingVisible("language"))
                {
                        $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("language"));
                }
                if ($this->userSettingVisible("show_users_online"))
                {
                        $this->tpl->setVariable("TXT_SHOW_USERS_ONLINE", $this->lng->txt("show_users_online"));
                }
                if ($this->userSettingVisible("skin_style"))
                {
                        $this->tpl->setVariable("TXT_USR_SKIN_STYLE", $this->lng->txt("usr_skin_style"));
                }
                if ($this->userSettingVisible("hits_per_page"))
                {
                        $this->tpl->setVariable("TXT_HITS_PER_PAGE", $this->lng->txt("usr_hits_per_page"));
                }
                if ($this->userSettingVisible("show_users_online"))
                {
                        $this->tpl->setVariable("TXT_SHOW_USERS_ONLINE", $this->lng->txt("show_users_online"));
                }
                $this->tpl->setVariable("TXT_PERSONAL_DATA", $this->lng->txt("personal_data"));
                $this->tpl->setVariable("TXT_SYSTEM_INFO", $this->lng->txt("system_information"));
                $this->tpl->setVariable("TXT_CONTACT_DATA", $this->lng->txt("contact_data"));

                if($this->__showOtherInformations())
                {
                        $this->tpl->setVariable("TXT_OTHER", $this->lng->txt("user_profile_other"));
                }
                $this->tpl->setVariable("TXT_SETTINGS", $this->lng->txt("settings"));
                
                //values
                $this->tpl->setVariable("NICKNAME", ilUtil::prepareFormOutput($ilUser->getLogin()));
                
                if ($this->userSettingVisible("firstname"))
                {
                        $this->tpl->setVariable("FIRSTNAME", ilUtil::prepareFormOutput($ilUser->getFirstname()));
                }
                if ($this->userSettingVisible("lastname"))
                {
                        $this->tpl->setVariable("LASTNAME", ilUtil::prepareFormOutput($ilUser->getLastname()));
                }
                
                if ($this->userSettingVisible("gender"))
                {
                        // gender selection
                        $gender = strtoupper($ilUser->getGender());
                        
                        if (!empty($gender))
                        {
                                $this->tpl->setVariable("BTN_GENDER_".$gender,"checked=\"checked\"");
                        }
                }
                
                $this->tpl->setVariable("CREATE_DATE", $ilUser->getCreateDate());
                $this->tpl->setVariable("APPROVE_DATE", $ilUser->getApproveDate());
                
                if ($ilUser->getActive())
                {
                        $this->tpl->setVariable("ACTIVE", "checked=\"checked\"");
                }
                
                if ($this->userSettingVisible("title"))
                {
                        $this->tpl->setVariable("TITLE", ilUtil::prepareFormOutput($ilUser->getUTitle()));
                }
                if ($this->userSettingVisible("institution"))
                {
                        $this->tpl->setVariable("INSTITUTION", ilUtil::prepareFormOutput($ilUser->getInstitution()));
                }
                if ($this->userSettingVisible("department"))
                {
                        $this->tpl->setVariable("DEPARTMENT", ilUtil::prepareFormOutput($ilUser->getDepartment()));
                }
                if ($this->userSettingVisible("street"))
                {
                        $this->tpl->setVariable("STREET", ilUtil::prepareFormOutput($ilUser->getStreet()));
                }
                if ($this->userSettingVisible("zipcode"))
                {
                        $this->tpl->setVariable("ZIPCODE", ilUtil::prepareFormOutput($ilUser->getZipcode()));
                }
                if ($this->userSettingVisible("city"))
                {
                        $this->tpl->setVariable("CITY", ilUtil::prepareFormOutput($ilUser->getCity()));
                }
                if ($this->userSettingVisible("country"))
                {
                        $this->tpl->setVariable("COUNTRY", ilUtil::prepareFormOutput($ilUser->getCountry()));
                }
                if ($this->userSettingVisible("phone_office"))
                {
                        $this->tpl->setVariable("PHONE_OFFICE", ilUtil::prepareFormOutput($ilUser->getPhoneOffice()));
                }
                if ($this->userSettingVisible("phone_home"))
                {
                        $this->tpl->setVariable("PHONE_HOME", ilUtil::prepareFormOutput($ilUser->getPhoneHome()));
                }
                if ($this->userSettingVisible("phone_mobile"))
                {
                        $this->tpl->setVariable("PHONE_MOBILE", ilUtil::prepareFormOutput($ilUser->getPhoneMobile()));
                }
                if ($this->userSettingVisible("fax"))
                {
                        $this->tpl->setVariable("FAX", ilUtil::prepareFormOutput($ilUser->getFax()));
                }
                if ($this->userSettingVisible("email"))
                {
                        $this->tpl->setVariable("EMAIL", ilUtil::prepareFormOutput($ilUser->getEmail()));
                }
                if ($this->userSettingVisible("hobby"))
                {
                        $this->tpl->setVariable("HOBBY", ilUtil::prepareFormOutput($ilUser->getHobby()));               // here
                }
                if ($this->userSettingVisible("referral_comment"))
                {
                        $this->tpl->setVariable("REFERRAL_COMMENT", ilUtil::prepareFormOutput($ilUser->getComment()));
                }
                if ($this->userSettingVisible("matriculation"))
                {
                        $this->tpl->setVariable("MATRICULATION", ilUtil::prepareFormOutput($ilUser->getMatriculation()));
                }
                
                // show user defined visible fields
                $this->__showUserDefinedFields();

                // get assigned global roles (default roles)
                $global_roles = $rbacreview->getGlobalRoles();
                
                foreach($global_roles as $role_id)
                {
                        if (in_array($role_id, $_SESSION["RoleId"]))
                        {
                                $roleObj = $this->ilias->obj_factory->getInstanceByObjId($role_id);
                                $role_names .= $roleObj->getTitle().", ";
                                unset($roleObj);
                        }
                }
                
                $this->tpl->setVariable("TXT_DEFAULT_ROLES", $this->lng->txt("default_roles"));
                $this->tpl->setVariable("DEFAULT_ROLES", substr($role_names,0,-2));
                
                $this->tpl->setVariable("TXT_REQUIRED_FIELDS", $this->lng->txt("required_field"));
                
                //button
                $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
                
                // addeding by ratana ty
                if ($this->userSettingEnabled("upload"))
                {
                        $this->tpl->setVariable("UPLOAD", $this->lng->txt("upload"));
                }

                // 
                if ($ilUser->prefs["public_profile"] == "y")
                {
                        $this->tpl->setVariable("CHK_PUB","checked");
                }
                $val_array = array("institution", "department", "upload", "street",
                        "zip", "city", "country", "phone_office", "phone_home", "phone_mobile",
                        "fax", "email", "hobby", "matriculation", "show_users_online");
                foreach($val_array as $key => $value)
                {
                        if ($this->userSettingVisible("$value"))
                        {
                                if ($ilUser->prefs["public_".$value] == "y")
                                {
                                        $this->tpl->setVariable("CHK_".strtoupper($value), "checked");
                                }
                        }
                }
                // End of showing
                // Testing by ratana ty
                
                
                $profile_fields = array(
                        "gender",
                        "firstname",
                        "lastname",
                        "title",
                        "upload",
                        "institution",
                        "department",
                        "street",
                        "city",
                        "zipcode",
                        "country",
                        "phone_office",
                        "phone_home",
                        "phone_mobile",
                        "fax",
                        "email",
                        "hobby",
                        "matriculation",
                        "referral_comment",
                        "language",
                        "skin_style",
                        "hits_per_page",
                        "show_users_online"
                );
                foreach ($profile_fields as $field)
                {
                        if (!$this->ilias->getSetting("usr_settings_hide_" . $field))
                        {
                                if ($this->ilias->getSetting("usr_settings_disable_" . $field))
                                {
                                        $this->tpl->setVariable("DISABLED_" . strtoupper($field), " disabled=\"disabled\"");
                                }
                        }
                }
                
                $this->tpl->parseCurrentBlock();
                $this->tpl->show();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPersonalProfileGUI::uploadUserPicture (  ) 

upload user image

(original method by ratana ty)

Definition at line 135 of file class.ilPersonalProfileGUI.php.

References ilUtil::escapeShellArg(), ilUtil::getConvertCmd(), ilUtil::getWebspaceDir(), ilUtil::moveUploadedFile(), saveProfile(), sendInfo(), and workWithUserSetting().

        {
                global $ilUser;

                if ($this->workWithUserSetting("upload"))
                {

                        if ($_FILES["userfile"]["size"] == 0)
                        {
                                $this->upload_error = $this->lng->txt("msg_no_file");
                        }
                        else
                        {
                                
                                $webspace_dir = ilUtil::getWebspaceDir();
                                $image_dir = $webspace_dir."/usr_images";
                                $store_file = "usr_".$ilUser->getID()."."."jpg";
                        
                                // store filename
                                $ilUser->setPref("profile_image", $store_file);
                                $ilUser->update();

                                // move uploaded file
                                $uploaded_file = $image_dir."/upload_".$ilUser->getId()."pic";
                                if (!ilUtil::moveUploadedFile($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"],
                                        $uploaded_file, false))
                                {
                                        sendInfo($this->lng->txt("upload_error", true));
                                        $this->ctrl->redirect($this, "showProfile");
                                }
                                chmod($uploaded_file, 0770);
                        
                                // take quality 100 to avoid jpeg artefacts when uploading jpeg files
                                // taking only frame [0] to avoid problems with animated gifs
                                $show_file  = "$image_dir/usr_".$ilUser->getId().".jpg"; 
                                $thumb_file = "$image_dir/usr_".$ilUser->getId()."_small.jpg";
                                $xthumb_file = "$image_dir/usr_".$ilUser->getId()."_xsmall.jpg"; 
                                $xxthumb_file = "$image_dir/usr_".$ilUser->getId()."_xxsmall.jpg";
                                $uploaded_file = ilUtil::escapeShellArg($uploaded_file);
                                $show_file = ilUtil::escapeShellArg($show_file);
                                $thumb_file = ilUtil::escapeShellArg($thumb_file);
                                $xthumb_file = ilUtil::escapeShellArg($xthumb_file);
                                $xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
                                
                                system(ilUtil::getConvertCmd()." $uploaded_file" . "[0] -geometry 200x200 -quality 100 JPEG:$show_file");
                                system(ilUtil::getConvertCmd()." $uploaded_file" . "[0] -geometry 100x100 -quality 100 JPEG:$thumb_file");
                                system(ilUtil::getConvertCmd()." $uploaded_file" . "[0] -geometry 75x75 -quality 100 JPEG:$xthumb_file");
                                system(ilUtil::getConvertCmd()." $uploaded_file" . "[0] -geometry 30x30 -quality 100 JPEG:$xxthumb_file");
                        }
                }
                
                $this->saveProfile();
        }

Here is the call graph for this function:

ilPersonalProfileGUI::userSettingEnabled ( setting  ) 

Returns TRUE if user setting is enabled, FALSE otherwise.

Definition at line 120 of file class.ilPersonalProfileGUI.php.

References $result.

Referenced by showProfile().

        {
                $result = TRUE;
                if ($this->settings["usr_settings_disable_".$setting] == 1)
                {
                        $result = FALSE;
                }
                return $result;
        }

Here is the caller graph for this function:

ilPersonalProfileGUI::userSettingVisible ( setting  ) 

Returns TRUE if user setting is visible, FALSE otherwise.

Definition at line 106 of file class.ilPersonalProfileGUI.php.

References $result.

Referenced by __showOtherInformations(), and showProfile().

        {
                $result = TRUE;
                if ($this->settings["usr_settings_hide_".$setting] == 1)
                {
                        $result = FALSE;
                }
                return $result;
        }

Here is the caller graph for this function:

ilPersonalProfileGUI::workWithUserSetting ( setting  ) 

Returns TRUE if working with the given user setting is allowed, FALSE otherwise.

Definition at line 88 of file class.ilPersonalProfileGUI.php.

References $result.

Referenced by saveProfile(), and uploadUserPicture().

        {
                $result = TRUE;
                if ($this->settings["usr_settings_hide_".$setting] == 1)
                {
                        $result = FALSE;
                }
                if ($this->settings["usr_settings_disable_".$setting] == 1)
                {
                        $result = FALSE;
                }
                return $result;
        }

Here is the caller graph for this function:


Field Documentation

ilPersonalProfileGUI::$ctrl

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

ilPersonalProfileGUI::$ilias

Definition at line 39 of file class.ilPersonalProfileGUI.php.

Referenced by ilPersonalProfileGUI(), and showProfile().

ilPersonalProfileGUI::$lng

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

Referenced by ilPersonalProfileGUI(), and showProfile().

ilPersonalProfileGUI::$tpl

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

Referenced by ilPersonalProfileGUI().

ilPersonalProfileGUI::$user_defined_fields = null

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


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