%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_profile_edit/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_profile_edit/component.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** * Bitrix vars * @global CUser $USER * @global CMain $APPLICATION * @global CDatabase $DB * @global CUserTypeManager $USER_FIELD_MANAGER * @global CCacheManager $CACHE_MANAGER * @param array $arParams * @param array $arResult * @param CBitrixComponent $this */ global $USER_FIELD_MANAGER, $CACHE_MANAGER; if (!CModule::IncludeModule("socialnetwork")) { ShowError(GetMessage("SONET_MODULE_NOT_INSTALL")); return; } $arParams["ID"] = IntVal($arParams["ID"]); if(strLen($arParams["USER_VAR"])<=0) $arParams["USER_VAR"] = "id"; if(strLen($arParams["PAGE_VAR"])<=0) $arParams["PAGE_VAR"] = "page"; $arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]); if(strlen($arParams["PATH_TO_USER"])<=0) $arParams["PATH_TO_USER"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#"); if(strlen($arParams["PATH_TO_USER_EDIT"])<=0) $arParams["PATH_TO_USER_EDIT"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#&mode=edit"); $arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]); $arParams['IS_FORUM'] = CModule::IncludeModule('forum') ? 'Y' : 'N'; $arParams['IS_BLOG'] = (CModule::IncludeModule('blog') && !IsModuleInstalled("intranet")) ? 'Y' : 'N'; TrimArr($arParams['USER_FIELDS_PERSONAL']); TrimArr($arParams['USER_FIELDS_CONTACT']); TrimArr($arParams['USER_FIELDS_MAIN']); TrimArr($arParams['USER_PROPERTY_PERSONAL']); TrimArr($arParams['USER_PROPERTY_CONTACT']); TrimArr($arParams['USER_PROPERTY_MAIN']); TrimArr($arParams['EDITABLE_FIELDS']); if (!is_array($arParams['EDITABLE_FIELDS']) || count($arParams['EDITABLE_FIELDS']) <= 0) { $arParams['EDITABLE_FIELDS'] = array('LOGIN', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'EMAIL', 'TIME_ZONE', 'PERSONAL_BIRTHDAY', 'PERSONAL_CITY', 'PERSONAL_COUNTRY', 'PERSONAL_FAX', 'PERSONAL_GENDER', 'PERSONAL_ICQ', 'PERSONAL_MAILBOX', 'PERSONAL_MOBILE', 'PERSONAL_PAGER', 'PERSONAL_PHONE', 'PERSONAL_PHOTO', 'PERSONAL_STATE', 'PERSONAL_STREET', 'PERSONAL_WWW', 'PERSONAL_ZIP'); if ($arParams['IS_FORUM'] == 'Y') $arParams['EDITABLE_FIELDS'] = array_merge($arParams['EDITABLE_FIELDS'], array('FORUM_SHOW_NAME', 'FORUM_DESCRIPTION', 'FORUM_INTERESTS', 'FORUM_SIGNATURE', 'FORUM_AVATAR', 'FORUM_HIDE_FROM_ONLINE', 'FORUM_SUBSC_GROUP_MESSAGE', 'FORUM_SUBSC_GET_MY_MESSAGE')); if ($arParams['IS_BLOG'] == 'Y') $arParams['EDITABLE_FIELDS'] = array_merge($arParams['EDITABLE_FIELDS'], array('BLOG_ALIAS', 'BLOG_DESCRIPTION', 'BLOG_INTERESTS', 'BLOG_AVATAR', 'BLOG_SIGNATURE')); } $arResult["arSocServ"] = array(); if (CModule::IncludeModule("socialservices")) { $oAuthManager = new CSocServAuthManager(); $arResult["arSocServ"] = $oAuthManager->GetActiveAuthServices(array()); if (!empty($arResult["arSocServ"])) { $arParams['EDITABLE_FIELDS'][] = 'SOCSERVICES'; } } if(in_array('TIME_ZONE', $arParams['EDITABLE_FIELDS'])) { $arParams['EDITABLE_FIELDS'][] = 'AUTO_TIME_ZONE'; } $arResult['CONTEXT'] = \Bitrix\Socialnetwork\ComponentHelper::getUrlContext(); $arParams['PATH_TO_USER'] = \Bitrix\Socialnetwork\ComponentHelper::addContextToUrl($arParams['PATH_TO_USER'], $arResult["CONTEXT"]); $arResult["urlToCancel"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arParams["ID"])); $CurrentUserPerms = CSocNetUserPerms::InitUserPerms( $USER->GetID(), $arParams["ID"], CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, (CModule::IncludeModule("bitrix24") && CBitrix24::IsPortalAdmin($USER->GetID()) ? false : true)) ); $dbUser = CUser::GetByID($arParams["ID"]); $arResult["User"] = $dbUser->GetNext(); if (in_array($arResult["User"]["EXTERNAL_AUTH_ID"], \Bitrix\Socialnetwork\ComponentHelper::checkPredefinedAuthIdList(array('bot', 'imconnector', 'replica')))) { $CurrentUserPerms["Operations"]["modifyuser_main"] = false; $CurrentUserPerms["Operations"]["modifyuser"] = false; } if ( !$CurrentUserPerms["Operations"]["modifyuser"] || !$CurrentUserPerms["Operations"]["modifyuser_main"] ) { $arResult["FATAL_ERROR"] = GetMessage("SONET_P_PU_NO_RIGHTS"); } $arResult["bEdit"] = ( !isset($arResult["FATAL_ERROR"]) && ( $USER->CanDoOperation('edit_own_profile') || $USER->IsAdmin() ) ? "Y" : "N" ); //check integrator for cloud if ( CModule::IncludeModule("bitrix24") && $arResult["User"]["ID"] != $USER->GetID() && \CBitrix24::isIntegrator($USER->GetID()) && \CBitrix24::IsPortalAdmin($arResult["User"]["ID"]) ) { $arResult["bEdit"] = "N"; } if ($arResult['bEdit'] != 'Y') { $APPLICATION->AuthForm(GetMessage('SONET_P_PU_NO_RIGHTS')); } $arResult["User"]["IS_EMAIL"] = ( $arResult["User"]['EXTERNAL_AUTH_ID'] == 'email' && IsModuleInstalled('mail') ); if (in_array($arResult['User']['EXTERNAL_AUTH_ID'], \Bitrix\Socialnetwork\ComponentHelper::checkPredefinedAuthIdList('email'))) { $arParams['EDITABLE_FIELDS'] = array_intersect($arParams['EDITABLE_FIELDS'], array("NAME", "LAST_NAME", "SECOND_NAME", "PERSONAL_PHOTO")); } if ($arResult['User']['EXTERNAL_AUTH_ID']) { foreach ($arParams['EDITABLE_FIELDS'] as $key => $value) { if ($value == 'LOGIN' || $value == 'PASSWORD') { unset($arParams['EDITABLE_FIELDS'][$key]); } } } elseif (in_array('PASSWORD', $arParams['EDITABLE_FIELDS'])) { $arParams['EDITABLE_FIELDS'][] = 'CONFIRM_PASSWORD'; } if(!is_array($arResult["User"])) { $arResult["FATAL_ERROR"] = GetMessage("SONET_P_USER_NO_USER"); } else { $arResult["GROUPS_CAN_EDIT"] = array(); if ($USER->CanDoOperation('edit_all_users') || $USER->CanDoOperation('edit_subordinate_users')) { if($USER->CanDoOperation('edit_all_users')) { $dbGroup = CGroup::GetList( ($by="c_sort"), ($order="asc"), array("ACTIVE" => "Y") ); while($arGroup = $dbGroup->Fetch()) { $arResult["GROUPS_CAN_EDIT"][$arGroup["ID"]] = $arGroup; $arGroupsCanEditID[] = $arGroup["ID"]; } } elseif($USER->CanDoOperation('edit_subordinate_users')) { $arGroupsCanEditID = CSocNetTools::GetSubordinateGroups(); if ( is_array($arGroupsCanEditID) && count($arGroupsCanEditID) > 0 ) { $dbGroup = CGroup::GetList( ($by="c_sort"), ($order="asc"), array( "ID" => implode(" | ", $arGroupsCanEditID), "ACTIVE" => "Y" ) ); while($arGroup = $dbGroup->Fetch()) { $arResult["GROUPS_CAN_EDIT"][$arGroup["ID"]] = $arGroup; } } } } else { foreach ($arParams['EDITABLE_FIELDS'] as $key => $value) if ($value == 'GROUP_ID' || $value == 'ACTIVE') unset($arParams['EDITABLE_FIELDS'][$key]); } if ($arParams['IS_FORUM'] == 'Y') { $arForumUser = CForumUser::GetByUSER_ID($arParams["ID"]); if (is_array($arForumUser) && count($arForumUser) > 0) { foreach ($arForumUser as $key => $value) { if (true || in_array('FORUM_'.$key, $arParams['EDITABLE_FIELDS'])) { $arResult['User']['FORUM_'.$key] = htmlspecialcharsbx($value); $arResult['User']['~FORUM_'.$key] = $value; } } } } if ($arParams['IS_BLOG'] == 'Y') { $dbRes = CBlogUser::GetList(array(), array("USER_ID" => $arParams['ID'])); if ($arBlogUser = $dbRes->Fetch()) { foreach ($arBlogUser as $key => $value) { $arResult['User']['BLOG_'.$key] = htmlspecialcharsbx($value); $arResult['User']['~BLOG_'.$key] = $value; } } } $SONET_USER_ID = $arParams['ID'];//intval($_POST["SONET_USER_ID"]); if($arResult['bEdit'] == 'Y' && $_SERVER["REQUEST_METHOD"]=="POST" && strlen($_POST["submit"])>0 && check_bitrix_sessid()) { if(CModule::IncludeModule("socialservices")) { $arPerm = array(); if(is_array($_POST["SPERM"]) && isset($_POST["USER_ID_TWITTER"]) && !empty($_POST["USER_ID_TWITTER"])) $arPerm = $_POST["SPERM"]; $arFields = array("PERMISSIONS" => serialize($arPerm)); $arFields['SEND_ACTIVITY'] = 'N'; $arFields['USER_ID'] = $SONET_USER_ID; if(isset($_POST["ss-send-my-actives"]) && $_POST["ss-send-my-actives"] == 'Y') $arFields['SEND_ACTIVITY'] = 'Y'; if(is_array($_POST["USER_ID_TWITTER"])) foreach($_POST["USER_ID_TWITTER"] as $value) CSocServAuth::Update($value, $arFields); if(is_array($_POST["USER_ID_OTHER"])) foreach($_POST["USER_ID_OTHER"] as $value) CSocServAuth::Update($value, array("SEND_ACTIVITY" => $arFields['SEND_ACTIVITY'], "USER_ID" => $arFields['USER_ID'])); } $arPICTURE = array(); $picturesToDelete = array(); $arPICTURE_WORK = array(); //PERSONAL_PHOTO upload //bitrix24 template if ( $_POST['PERSONAL_PHOTO_ID'] && intval($_POST['PERSONAL_PHOTO_ID']) > 0 && intval($_POST['PERSONAL_PHOTO_ID']) != intval($arResult["User"]["PERSONAL_PHOTO"]) && in_array($_POST['PERSONAL_PHOTO_ID'], \Bitrix\Main\UI\FileInputUtility::instance()->checkFiles( 'PERSONAL_PHOTO_IMAGE_ID', array($_POST['PERSONAL_PHOTO_ID']) )) ) { $arPICTURE = CFile::MakeFileArray($_POST['PERSONAL_PHOTO_ID']); $arPICTURE["old_file"] = $arResult["User"]["PERSONAL_PHOTO"]; $picturesToDelete[] = $_POST['PERSONAL_PHOTO_ID']; } elseif ( //usual template strlen($_FILES["PERSONAL_PHOTO"]["name"]) > 0 ) { $arPICTURE = $_FILES["PERSONAL_PHOTO"]; $arPICTURE["old_file"] = $arResult["User"]["PERSONAL_PHOTO"]; } else if (($_POST["PERSONAL_PHOTO_del"] ?: $_POST["PERSONAL_PHOTO_ID_del"]) <> '') { $arPICTURE["old_file"] = $arResult["User"]["PERSONAL_PHOTO"]; $arPICTURE["del"] = ($_POST["PERSONAL_PHOTO_del"] ?: $_POST["PERSONAL_PHOTO_ID_del"]); } //WORK_LOGO upload //bitrix24 template if ( $_POST['WORK_LOGO_ID'] && intval($_POST['WORK_LOGO_ID']) > 0 && intval($_POST['WORK_LOGO_ID']) != intval($arResult["User"]["WORK_LOGO"]) && in_array($_POST['WORK_LOGO_ID'], \Bitrix\Main\UI\FileInputUtility::instance()->checkFiles( 'WORK_LOGO_IMAGE_ID', array($_POST['WORK_LOGO_ID']) )) ) { $arPICTURE_WORK = CFile::MakeFileArray($_POST['WORK_LOGO_ID']); $picturesToDelete[] = $_POST['WORK_LOGO_ID']; } elseif ( // usual template strlen($_FILES["WORK_LOGO"]["name"]) > 0 || isset($_POST["WORK_LOGO_del"]) ) { $arPICTURE_WORK = $_FILES["WORK_LOGO"]; $arPICTURE_WORK["old_file"] = $arResult["User"]["WORK_LOGO"]; $arPICTURE_WORK["del"] = $_POST["WORK_LOGO_del"]; } if (sizeof($arPICTURE_WORK) != 0) { $arPICTURE_WORK["old_file"] = $arResult["User"]["WORK_LOGO"]; $arPICTURE_WORK["del"] = ($_POST["WORK_LOGO_del"] ?: $_POST["WORK_LOGO_ID_del"]); } $arFields = Array( 'ACTIVE', 'GROUP_ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'PERSONAL_PHOTO', 'PERSONAL_GENDER', 'PERSONAL_BIRTHDAY', 'PERSONAL_BIRTHDATE', 'PERSONAL_PROFESSION', 'PERSONAL_NOTES', 'EMAIL', 'PERSONAL_PHONE', 'PERSONAL_MOBILE', 'PERSONAL_WWW', 'PERSONAL_ICQ', 'PERSONAL_FAX', 'PERSONAL_PAGER', 'PERSONAL_COUNTRY', 'PERSONAL_STREET', 'PERSONAL_MAILBOX', 'PERSONAL_CITY', 'PERSONAL_STATE', 'PERSONAL_ZIP', 'WORK_COUNTRY', 'WORK_CITY', 'WORK_STATE', 'WORK_COMPANY', 'WORK_DEPARTMENT', 'WORK_PROFILE', 'WORK_WWW', 'WORK_PHONE', 'WORK_FAX', 'WORK_PAGER', 'WORK_LOGO', 'WORK_POSITION', 'LOGIN', 'PASSWORD', 'CONFIRM_PASSWORD', ); $arFieldsValue = array(); foreach ($arFields as $key) { if ('PERSONAL_PHOTO' == $key) { if (sizeof($arPICTURE) != 0) $arFieldsValue[$key] = $arPICTURE; } elseif ('WORK_LOGO' == $key) { if (sizeof($arPICTURE_WORK) != 0) $arFieldsValue[$key] = $arPICTURE_WORK; } elseif ('GROUP_ID' == $key && !IsModuleInstalled("bitrix24")) { if (is_array($arGroupsCanEditID) && is_array($_POST[$key])) { $arFieldsValue[$key] = array_intersect($_POST[$key], $arGroupsCanEditID); } } elseif ($_POST[$key] !== $arResult['User'][$key]) $arFieldsValue[$key] = $_POST[$key]; } $removeAdminRights = false; //groups for bitrix24 cloud if ( \Bitrix\Main\Loader::includeModule("bitrix24") && \CBitrix24::IsPortalAdmin($USER->GetID()) && $USER->GetID() != $arResult["User"]['ID'] && !( // not extranet !is_array($arResult["User"]['UF_DEPARTMENT']) || empty($arResult["User"]['UF_DEPARTMENT'][0]) ) && $arResult["User"]['ACTIVE'] == "Y" ) { //moving admin rights to another user if ( !\CBitrix24::IsPortalAdmin($arResult["User"]['ID']) && $_POST["IS_ADMIN"] == "Y" && !CBitrix24::isMoreAdminAvailable() ) { $removeAdminRights = true; } $curUserGroups = CUser::GetUserGroup($arResult["User"]['ID']); foreach ($curUserGroups as $groupKey => $group) { if ($group == 1 || $group == 12 || $group == 11) { unset($curUserGroups[$groupKey]); } } if ($_POST["IS_ADMIN"] == "Y") { $curUserGroups[] = "1"; $curUserGroups[] = "12"; } else { $curUserGroups[] = "11"; } $arFieldsValue["GROUP_ID"] = $curUserGroups; } //time zones $arFieldsValue['AUTO_TIME_ZONE'] = ($_POST['AUTO_TIME_ZONE'] == "Y" || $_POST['AUTO_TIME_ZONE'] == "N"? $_POST['AUTO_TIME_ZONE'] : ""); if(isset($_POST['TIME_ZONE'])) $arFieldsValue['TIME_ZONE'] = $_POST['TIME_ZONE']; if (strlen($arFieldsValue['PASSWORD']) <= 0) { unset($arFieldsValue['PASSWORD']); unset($arFieldsValue['CONFIRM_PASSWORD']); } $USER_FIELD_MANAGER->EditFormAddFields("USER", $arFieldsValue); if (in_array('PASSWORD', $arParams['EDITABLE_FIELDS'])) $arParams['EDITABLE_FIELDS'][] = 'CONFIRM_PASSWORD'; $arKeys = array_intersect(array_keys($arFieldsValue), $arParams['EDITABLE_FIELDS']); $arNewFieldsValue = array(); foreach ($arKeys as $key) $arNewFieldsValue[$key] = $arFieldsValue[$key]; $res = $USER->Update($SONET_USER_ID, $arNewFieldsValue); while ($f = array_pop($picturesToDelete)) CFile::Delete($f); if (!$res) $strErrorMessage = $USER->LAST_ERROR; else { if ($removeAdminRights) { $curAdminGroups = CUser::GetUserGroup($USER->GetID()); foreach ($curAdminGroups as $groupKey => $group) { if ($group == 1 || $group == 12) { unset($curAdminGroups[$groupKey]); } } $curAdminGroups[] = "11"; CUser::SetUserGroup($USER->GetID(), $curAdminGroups); } if ($arParams['IS_FORUM'] == 'Y') { $arForumFields = array( "SHOW_NAME" => ($_POST["FORUM_SHOW_NAME"]=="Y") ? "Y" : "N", "HIDE_FROM_ONLINE" => ($_POST["FORUM_HIDE_FROM_ONLINE"]=="Y") ? "Y" : "N", "SUBSC_GROUP_MESSAGE" => ($_POST["FORUM_SUBSC_GROUP_MESSAGE"]=="Y") ? "Y" : "N", "SUBSC_GET_MY_MESSAGE" => ($_POST["FORUM_SUBSC_GET_MY_MESSAGE"]=="Y") ? "Y" : "N", "DESCRIPTION" => $_POST["FORUM_DESCRIPTION"], "INTERESTS" => $_POST["FORUM_INTERESTS"], "SIGNATURE" => $_POST["FORUM_SIGNATURE"] ); if (strlen($_FILES["FORUM_AVATAR"]["name"]) > 0 || isset($_POST["FORUM_AVATAR_del"])) $arForumFields["AVATAR"] = $_FILES["FORUM_AVATAR"]; foreach ($arForumFields as $key => $value) if (!in_array('FORUM_'.$key, $arParams['EDITABLE_FIELDS'])) unset($arForumFields[$key]); if (count($arForumFields) > 0) { if (isset($arForumFields['AVATAR'])) { $arForumFields["AVATAR"]["del"] = $_POST["FORUM_AVATAR_del"]; $arForumFields["AVATAR"]["old_file"] = $arResult['User']['FORUM_AVATAR']; } if ($arResult['User']['FORUM_ID']) $FID = CForumUser::Update($arResult['User']['FORUM_ID'], $arForumFields); else { $arForumFields["USER_ID"] = $arResult["User"]['ID']; $FID = CForumUser::Add($arForumFields); } if (!$FID && ($ex = $APPLICATION->GetException())) $strErrorMessage = $ex->GetString(); } } if (strlen($strErrorMessage) <= 0 && $arParams['IS_BLOG'] == 'Y') { $arBlogFields = Array( "ALIAS" => $_POST['BLOG_ALIAS'], "DESCRIPTION" => $_POST['BLOG_DESCRIPTION'], "INTERESTS" => $_POST['BLOG_INTERESTS'] ); if (strlen($_FILES["BLOG_AVATAR"]["name"]) > 0 || isset($_POST["BLOG_AVATAR_del"])) $arBlogFields["AVATAR"] = $_FILES["BLOG_AVATAR"]; foreach ($arBlogFields as $key => $value) if (!in_array('BLOG_'.$key, $arParams['EDITABLE_FIELDS'])) unset($arBlogFields[$key]); if (isset($arBlogFields['AVATAR'])) { $arBlogFields["AVATAR"]["del"] = $_POST['BLOG_AVATAR_del']; $arBlogFields["AVATAR"]["old_file"] = $arResult['User']["BLOG_AVATAR"]; } if (count($arBlogFields) > 0) { if ($arResult['User']['BLOG_ID']) $BID = CBlogUser::Update($arResult['User']['BLOG_ID'], $arBlogFields); else { $arBlogFields["USER_ID"] = $arParams['ID']; $arBlogFields["~DATE_REG"] = CDatabase::CurrentTimeFunction(); $BID = CBlogUser::Add($arBlogFields); } if (!$BID && ($ex = $APPLICATION->GetException())) $strErrorMessage = $ex->GetString(); } } if(IsModuleInstalled("bitrix24") && isset($arFieldsValue["GROUP_ID"]) && defined("BX_COMP_MANAGED_CACHE")) { global $CACHE_MANAGER; $CACHE_MANAGER->ClearByTag('sonet_group'); } } if(strlen($strErrorMessage)<=0) if ($_REQUEST['backurl']) { LocalRedirect($_REQUEST['backurl']); } else { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arParams["ID"]))); } else { $arResult["ERROR_MESSAGE"] = $strErrorMessage; $bVarsFromForm = true; } } if($arResult['bEdit'] == 'Y' && $_SERVER["REQUEST_METHOD"]=="POST" && (strlen($_POST["submit_fire"])>0 || strlen($_POST["submit_recover"])>0) && check_bitrix_sessid()) { if ($CurrentUserPerms["Operations"]["modifyuser_main"] && $SONET_USER_ID != $USER->GetID()) { $arFields = array("ACTIVE" => strlen($_POST["submit_fire"])>0 ? "N" : "Y"); $res = $USER->Update($SONET_USER_ID, $arFields); $arResult["User"]["ACTIVE"] = strlen($_POST["submit_fire"])>0 ? "N" : "Y"; } } $arResult["User"]["PERSONAL_LOCATION"] = GetCountryByID($arResult["User"]["PERSONAL_COUNTRY"]); if (strlen($arResult["User"]["PERSONAL_LOCATION"])>0 && strlen($arResult["User"]["PERSONAL_CITY"])>0) $arResult["User"]["PERSONAL_LOCATION"] .= ", "; $arResult["User"]["PERSONAL_LOCATION"] .= $arResult["User"]["PERSONAL_CITY"]; $arResult["User"]["WORK_LOCATION"] = GetCountryByID($arResult["User"]["WORK_COUNTRY"]); if (strlen($arResult["User"]["WORK_LOCATION"])>0 && strlen($arResult["User"]["WORK_CITY"])>0) $arResult["User"]["WORK_LOCATION"] .= ", "; $arResult["User"]["WORK_LOCATION"] .= $arResult["User"]["WORK_CITY"]; if (CModule::IncludeModule('mail')) { $dbMailbox = CMailbox::getList( array( 'TIMESTAMP_X' => 'DESC' ), array( 'LID' => SITE_ID, 'ACTIVE' => 'Y', 'USER_ID' => intval($arParams['ID']), 'SERVER_TYPE' => 'imap|controller|domain' ) ); $mailbox = $dbMailbox->fetch(); if (strpos($mailbox['LOGIN'], '@') !== false) $arResult['User']['MAILBOX'] = $mailbox['LOGIN']; } if ($USER->CanDoOperation('edit_all_users') || $USER->CanDoOperation('edit_subordinate_users')) { $arResult["User"]["GROUP_ID"] = array(); $rsGroup = CUser::GetUserGroupList($arResult["User"]["ID"]); while ($arGroup = $rsGroup->Fetch()) { if (strlen($arGroup["DATE_ACTIVE_FROM"]) <= 0 && strlen($arGroup["DATE_ACTIVE_TO"]) <= 0) $arResult["User"]["GROUP_ID"][] = $arGroup["GROUP_ID"]; } $arResult["User"]["GROUP_ID"] = array_intersect($arResult["User"]["GROUP_ID"], $arGroupsCanEditID); } $arResult["arSex"] = array( "M" => GetMessage("SONET_P_USER_SEX_M"), "F" => GetMessage("SONET_P_USER_SEX_F"), ); if($bVarsFromForm) { static $skip = array("PERSONAL_PHOTO"=>1, "WORK_LOGO"=>1, "FORUM_AVATAR"=>1, "BLOG_AVATAR"=>1); foreach($_POST as $k => $v) { if(!isset($skip[$k])) { if(is_array($v)) { foreach($v as $k1 => $v1) { $arResult["User"][$k][$k1] = htmlspecialcharsbx($v1); $arResult["User"]['~'.$k][$k1] = $v1; } } else { $arResult["User"][$k] = htmlspecialcharsbx($v); $arResult["User"]['~'.$k] = $v; } } } } $userName = ''; if ($arParams["SET_TITLE"] == "Y" || $arParams["SET_NAV_CHAIN"] != "N") { if (strlen($arParams["NAME_TEMPLATE"]) <= 0) $arParams["NAME_TEMPLATE"] = CSite::GetNameFormat(); $arParams["TITLE_NAME_TEMPLATE"] = str_replace( array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"] ); $bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false; $arTmpUser = array( 'NAME' => $arResult["User"]["~NAME"], 'LAST_NAME' => $arResult["User"]["~LAST_NAME"], 'SECOND_NAME' => $arResult["User"]["~SECOND_NAME"], 'LOGIN' => $arResult["User"]["~LOGIN"], ); $userName = CUser::FormatName($arParams['TITLE_NAME_TEMPLATE'], $arTmpUser, $bUseLogin); } if($arParams["SET_TITLE"]=="Y") $APPLICATION->SetTitle(GetMessage("SONET_P_USER_TITLE")." \"".trim($userName, " ")."\""); if ($arParams["SET_NAV_CHAIN"] != "N") { $APPLICATION->AddChainItem($userName, CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arResult["User"]["ID"]))); $APPLICATION->AddChainItem(GetMessage("SONET_P_USER_TITLE_VIEW")); } if(strlen($arResult["User"]["PERSONAL_WWW"])>0) $arResult["User"]["PERSONAL_WWW"] = ((strpos($arResult["User"]["PERSONAL_WWW"], "http") === false)? "http://" : "").$arResult["User"]["PERSONAL_WWW"]; $arResult["User"]["PERSONAL_PHOTO_FILE"] = CFile::GetFileArray($arResult["User"]["PERSONAL_PHOTO"]); if ($arResult["User"]["PERSONAL_PHOTO_FILE"] !== false) $arResult["User"]["PERSONAL_PHOTO_IMG"] = CFile::ShowImage($arResult["User"]["PERSONAL_PHOTO_FILE"]["ID"], 150, 150, "border=0", "", true); $arResult["User"]["WORK_LOGO_FILE"] = CFile::GetFileArray($arResult["User"]["WORK_LOGO"]); if ($arResult["User"]["WORK_LOGO_FILE"] !== false) $arResult["User"]["WORK_LOGO_IMG"] = CFile::ShowImage($arResult["User"]["WORK_LOGO_FILE"]["ID"], 150, 150, "border=0", "", true); if ($arParams['IS_FORUM'] == 'Y') { $arResult["User"]["FORUM_AVATAR_FILE"] = CFile::GetFileArray($arResult["User"]["FORUM_AVATAR"]); if ($arResult["User"]["FORUM_AVATAR_FILE"] !== false) $arResult["User"]["FORUM_AVATAR_IMG"] = CFile::ShowImage($arResult["User"]["FORUM_AVATAR_FILE"]["ID"], 150, 150, "border=0", "", true); } if ($arParams['IS_BLOG'] == 'Y') { $arResult["User"]["BLOG_AVATAR_FILE"] = CFile::GetFileArray($arResult["User"]["BLOG_AVATAR"]); if ($arResult["User"]["BLOG_AVATAR_FILE"] !== false) $arResult["User"]["BLOG_AVATAR_IMG"] = CFile::ShowImage($arResult["User"]["BLOG_AVATAR_FILE"]["ID"], 150, 150, "border=0", "", true); } $arPolicy = $USER->GetGroupPolicy($arResult["User"]["ID"]); $arResult["PASSWORD_MIN_LENGTH"] = intval($arPolicy["PASSWORD_LENGTH"]); if($arResult["PASSWORD_MIN_LENGTH"] <= 0) $arResult["PASSWORD_MIN_LENGTH"] = 6; } //time zones $arResult["TIME_ZONE_ENABLED"] = CTimeZone::Enabled(); if($arResult["TIME_ZONE_ENABLED"]) $arResult["TIME_ZONE_LIST"] = CTimeZone::GetZones(); $this->IncludeComponentTemplate(); ?>