function parseProfile($intElmntId, $strCommand) { global $_PATHS, $objLang, $_CLEAN_POST, $_CONF, $objLiveAdmin, $objLiveUser; //*** Retrieve the latest user info from the DB. $objLiveUser->updateProperty(true, false, $_CONF['app']['account']->getId()); $objTpl = new HTML_Template_IT($_PATHS['templates']); $objTpl->loadTemplatefile("profile.tpl.htm"); $objTpl->setVariable("TITLE", $objLang->get("pageTitle")); //*** Render timezones. $objTimeZones = Timezone::select(); //echo $objLiveUser->getProperty("time_zone_id"); foreach ($objTimeZones as $objTimeZone) { $objTpl->setCurrentBlock("timezone-option"); if ($objLiveUser->getProperty("time_zone_id") == $objTimeZone->getId()) { $objTpl->setVariable("TIMEZONE_SELECTED", " selected=\"selected\""); } $objTpl->setVariable("TIMEZONE_VALUE", $objTimeZone->getId()); $objTpl->setVariable("TIMEZONE_TEXT", $objTimeZone->getLongName()); $objTpl->parseCurrentBlock(); } //*** Render languages. $objLanguages = $objLang->getLangs(); foreach ($objLanguages as $objLanguage) { $objTpl->setCurrentBlock("language-option"); if ($objLang->name == $objLanguage->name) { $objTpl->setVariable("LANGUAGE_SELECTED", " selected=\"selected\""); } $objTpl->setVariable("LANGUAGE_VALUE", $objLanguage->name); $objTpl->setVariable("LANGUAGE_TEXT", $objLanguage->language); $objTpl->parseCurrentBlock(); } $objTpl->setCurrentBlock("profile"); //*** Post the profile form if submitted. if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "editProfile") { //*** The element form has been posted. $blnError = false; //*** Check sanitized input. if (is_null($_CLEAN_POST["frm_name"])) { $objTpl->setVariable("ERROR_NAME_ON", " error"); $objTpl->setVariable("ERROR_NAME", $objLang->get("profileName", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_email"])) { $objTpl->setVariable("ERROR_EMAIL_ON", " error"); $objTpl->setVariable("ERROR_EMAIL", $objLang->get("commonTypeText", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_language"])) { $objTpl->setVariable("ERROR_LANGUAGE_ON", " error"); $objTpl->setVariable("ERROR_LANGUAGE", $objLang->get("commonTypeText", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_timezone"])) { $objTpl->setVariable("ERROR_TIMEZONE_ON", " error"); $objTpl->setVariable("ERROR_TIMEZONE", $objLang->get("commonTypeText", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["dispatch"])) { $blnError = true; } if ($blnError === true) { //*** Display global error. $objTpl->setVariable("FORM_NAME_VALUE", $_POST["frm_name"]); $objTpl->setVariable("FORM_EMAIL_VALUE", $_POST["frm_email"]); $objTpl->setVariable("ERROR_PROFILE_MAIN", $objLang->get("main", "formerror")); } else { //*** Save the user profile. $data = array('name' => $_CLEAN_POST["frm_name"], 'email' => $_CLEAN_POST["frm_email"], 'time_zone_id' => $_CLEAN_POST["frm_timezone"]); $objLiveAdmin->updateUser($data, $objLiveUser->getProperty('perm_user_id')); //*** Save the language setting. $objLang->setLang($_CLEAN_POST["frm_language"]); $_SESSION['objLang'] = NULL; header("Location: " . Request::getURI() . "/?cid=" . $_POST["cid"]); exit; } } $objTpl->setVariable("PROFILE", $objLang->get("userprofile", "label")); $objTpl->setVariable("LABEL_USERNAME", $objLang->get("username", "form")); $objTpl->setVariable("FORM_USERNAME_VALUE", $objLiveUser->getProperty('handle')); $objTpl->setVariable("LABEL_NAME", $objLang->get("name", "form")); $objTpl->setVariable("FORM_NAME_VALUE", $objLiveUser->getProperty('name')); $objTpl->setVariable("LABEL_EMAIL", $objLang->get("emailaddress", "form")); $objTpl->setVariable("FORM_EMAIL_VALUE", $objLiveUser->getProperty('email')); $objTpl->setVariable("LABEL_LANGUAGE", $objLang->get("language", "form")); $objTpl->setVariable("LABEL_TIMEZONE", $objLang->get("timezone", "form")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("save", "button")); $objTpl->setVariable("CID", NAV_MYPUNCH_PROFILE); $objTpl->setVariable("CMD", $strCommand); $objTpl->setVariable("EID", $intElmntId); $objTpl->parseCurrentBlock(); $objTpl->setCurrentBlock("password"); //*** Post the password form if submitted. if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "editPass") { //*** The element form has been posted. $blnError = false; //*** Check sanitized input. if (is_null($_CLEAN_POST["frm_currentpass"])) { $objTpl->setVariable("ERROR_CURRENTPASS_ON", " error"); $objTpl->setVariable("ERROR_CURRENTPASS", $objLang->get("commonTypePassword", "formerror")); $blnError = true; } if (!is_null($_CLEAN_POST["frm_currentpass"])) { if (sha1($_CLEAN_POST["frm_currentpass"]) !== $objLiveUser->getProperty('passwd')) { $objTpl->setVariable("ERROR_CURRENTPASS_ON", " error"); $objTpl->setVariable("ERROR_CURRENTPASS", $objLang->get("wrongPassword", "formerror")); $blnError = true; } } if (is_null($_CLEAN_POST["frm_newpass"])) { $objTpl->setVariable("ERROR_NEWPASS_ON", " error"); $objTpl->setVariable("ERROR_NEWPASS", $objLang->get("commonTypePassword", "formerror")); $blnError = true; } if (!is_null($_CLEAN_POST["frm_newpass"]) && strlen($_CLEAN_POST["frm_newpass"]) < $_CONF['app']['minPassLength']) { $objTpl->setVariable("ERROR_NEWPASS_ON", " error"); $objTpl->setVariable("ERROR_NEWPASS", $objLang->get("shortPassword", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_verifypass"])) { $objTpl->setVariable("ERROR_VERIFYPASS_ON", " error"); $objTpl->setVariable("ERROR_VERIFYPASS", $objLang->get("commonTypePassword", "formerror")); $blnError = true; } if (!is_null($_CLEAN_POST["frm_newpass"]) && !is_null($_CLEAN_POST["frm_verifypass"])) { if ($_CLEAN_POST["frm_newpass"] !== $_CLEAN_POST["frm_verifypass"]) { $objTpl->setVariable("ERROR_VERIFYPASS_ON", " error"); $objTpl->setVariable("ERROR_VERIFYPASS", $objLang->get("passwordNotMatch", "formerror")); $blnError = true; } } if (is_null($_CLEAN_POST["dispatch"])) { $blnError = true; } if ($blnError === true) { //*** Display global error. $objTpl->setVariable("ERROR_PASSWORD_MAIN", $objLang->get("main", "formerror")); } else { //*** Save the password. $data = array('passwd' => $_CLEAN_POST["frm_newpass"]); $objLiveAdmin->updateUser($data, $objLiveUser->getProperty('perm_user_id')); header("Location: " . Request::getURI() . "/?cid=" . $_POST["cid"]); exit; } } $objTpl->setVariable("PASSWORD", $objLang->get("password", "label")); $objTpl->setVariable("LABEL_CURRENTPASS", $objLang->get("currentpassword", "form")); $objTpl->setVariable("LABEL_NEWPASS", $objLang->get("newpassword", "form")); $objTpl->setVariable("NEWPASS_NOTE", sprintf($objLang->get("newpasswordNote", "tip"), $_CONF['app']['minPassLength'])); $objTpl->setVariable("LABEL_VERIFYPASS", $objLang->get("verifypassword", "form")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("save", "button")); $objTpl->setVariable("CID", NAV_MYPUNCH_PROFILE); $objTpl->setVariable("CMD", $strCommand); $objTpl->setVariable("EID", $intElmntId); $objTpl->parseCurrentBlock(); $strReturn = $objTpl->get(); return $strReturn; }