%PDF- %PDF-
Direktori : /home/bitrix/www/local/components/p4/p.user.profile/ |
Current File : /home/bitrix/www/local/components/p4/p.user.profile/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? if(!(CModule::IncludeModule("main") && CModule::IncludeModule('iblock'))) return; global $USER; global $USER_FIELD_MANAGER; unset($arParams["IBLOCK_TYPE"]); $arParams["IBLOCK_ID"] = intval($arParams["IBLOCK_ID"]); $usrid = 0; $usrid = (isset($arParams['MODERATE']) && $arParams['MODERATE'] == "Y" && isset($arParams['USER_ID']) && intval($arParams['USER_ID']) > 0) ? intval($arParams['USER_ID']) : intval($USER->GetID()); if ($usrid>0) { // Пользователь должен быть авторизован $arResult["BX_SESSION_CHECK"] = bitrix_sessid_post(); // Сохраняем if($_SERVER["REQUEST_METHOD"]=="POST" && $_REQUEST["lk_prof_s"]<>'' && check_bitrix_sessid()) { $obUser = new CUser; $rsUser = CUser::GetByID($usrid); $arUser = $rsUser->Fetch(); $pers_mob = strpos($_REQUEST["PERSONAL_MOBILE"], "_") !== false ? "" : preg_replace('/[^0-9+]/', '', $_REQUEST["PERSONAL_MOBILE"]); $pers_phone = strpos($_REQUEST["PERSONAL_PHONE"], "_") !== false ? "" : preg_replace('/[^0-9+]/', '', $_REQUEST["PERSONAL_PHONE"]); $arUserFields = array( "PERSONAL_PROFESSION" => $_REQUEST["PERSONAL_PROFESSION"], "PERSONAL_WWW" => $_REQUEST["PERSONAL_WWW"], "PERSONAL_ICQ" => $_REQUEST["PERSONAL_ICQ"], "PERSONAL_GENDER" => $_REQUEST["PERSONAL_GENDER"], "PERSONAL_BIRTHDAY" => $_REQUEST["PERSONAL_BIRTHDAY"], "PERSONAL_PHOTO" => $arPERSONAL_PHOTO, "PERSONAL_PHONE" => $pers_phone, "PERSONAL_FAX" => $_REQUEST["PERSONAL_FAX"], "PERSONAL_MOBILE" => $pers_mob, "PERSONAL_PAGER" => $_REQUEST["PERSONAL_PAGER"], "PERSONAL_STREET" => $_REQUEST["PERSONAL_STREET"], "PERSONAL_MAILBOX" => $_REQUEST["PERSONAL_MAILBOX"], "PERSONAL_ZIP" => $_REQUEST["PERSONAL_ZIP"], "PERSONAL_NOTES" => $_REQUEST["PERSONAL_NOTES"], "WORK_COMPANY" => $_REQUEST["WORK_COMPANY"], "WORK_DEPARTMENT" => $_REQUEST["WORK_DEPARTMENT"], "WORK_POSITION" => $_REQUEST["WORK_POSITION"], "WORK_WWW" => $_REQUEST["WORK_WWW"], "WORK_PHONE" => $_REQUEST["WORK_PHONE"], "WORK_FAX" => $_REQUEST["WORK_FAX"], "WORK_PAGER" => $_REQUEST["WORK_PAGER"], "WORK_STREET" => $_REQUEST["WORK_STREET"], "WORK_MAILBOX" => $_REQUEST["WORK_MAILBOX"], "WORK_CITY" => $_REQUEST["WORK_CITY"], "WORK_STATE" => $_REQUEST["WORK_STATE"], "WORK_ZIP" => $_REQUEST["WORK_ZIP"], "WORK_COUNTRY" => $_REQUEST["WORK_COUNTRY"], "WORK_PROFILE" => $_REQUEST["WORK_PROFILE"], "WORK_LOGO" => $arWORK_LOGO, "WORK_NOTES" => $_REQUEST["WORK_NOTES"], "AUTO_TIME_ZONE" => ($_REQUEST["AUTO_TIME_ZONE"] == "Y" || $_REQUEST["AUTO_TIME_ZONE"] == "N"? $_REQUEST["AUTO_TIME_ZONE"] : ""), "PROFILE_NAME" => $_REQUEST["PROFILE_NAME"], "CAT_PROF" => $_REQUEST["CAT_PROF"], "SEX" => $_REQUEST["SEX"], "LANGUAGE" => $_REQUEST["LANGUAGE"], "UF_SOCIAL" => $_REQUEST["UF_SOCIAL"], "UF_HIDECONT" => $_REQUEST["UF_HIDECONT"] ); $strError =''; $USER_FIELD_MANAGER->EditFormAddFields("USER", $arUserFields); if(!$obUser->Update($usrid, $arUserFields, true)) $strError .= $obUser->LAST_ERROR; $arResult["STR_ERROR"] = $strError; $PROP = array(); // $PROP["DETAIL_TEXT"] = Array("VALUE" => Array ("TEXT" => $_REQUEST["ABOUT"], "TYPE" => "html")); $PROP["ARBAITEN"] = Array("VALUE" => Array ("TEXT" => $_REQUEST["WORKS"], "TYPE" => "html")); $PROP["MODELINTJOB"] = Array("VALUE" => Array ("TEXT" => $_REQUEST["JOB"], "TYPE" => "html")); $PROP["OTHERINFA"] = Array("VALUE" => Array ("TEXT" => $_REQUEST["OTHER"], "TYPE" => "html")); if(true || $_REQUEST["SECTION_ID"]==7) { // Юзер в разделе Модели $PROP["FACETYPE"] = $_REQUEST["FACETYPE"]; $PROP["EYECOLOR"] = $_REQUEST["EYECOLOR"]; $PROP["HAIRCOLOR"] = $_REQUEST["HAIRCOLOR"]; $PROP["SKINCOLOR"] = $_REQUEST["SKINCOLOR"]; $PROP["HAIRLENGTH"] = $_REQUEST["HAIRLENGTH"]; $PROP["HEIGHT"] = $_REQUEST["HEIGHT"]; $PROP["WEIGHT"] = $_REQUEST["WEIGHT"]; $PROP["BREAST"] = $_REQUEST["BREAST"]; $PROP["WAIST"] = $_REQUEST["WAIST"]; $PROP["HIP"] = $_REQUEST["HIP"]; $PROP["SIZE"] = $_REQUEST["SIZE"]; $PROP["SHOES"] = $_REQUEST["SHOES"]; $PROP["BODYSIZETYPE"] = 249; $PROP["SIZETYPE"] = $_REQUEST["SIZETYPE"]; $PROP["SHOESTYPE"] = $_REQUEST["SHOESTYPE"]; $PROP["STAGE"] = $_REQUEST["STAGE"]; $PROP["MODELTHEME"] = Array(); $PROP["MODELOPTIONS"] = Array(); $PROP["LANGUAGES"] = Array(); foreach ($_REQUEST["GANR"] as $k=>$v) { if($v==1) $PROP["MODELTHEME"][] = $k; } foreach ($_REQUEST["OPS"] as $k=>$v) { if($v==1) $PROP["MODELOPTIONS"][] = $k; } foreach ($_REQUEST["MODELTYPE"] as $k=>$v) { if($v==1) $PROP["MODELTYPE"] = $k; } $j = 0; foreach ($_REQUEST["LANGUAGES"] as $k=>$v) { if ($v == "...") { $j++; if ($j = 3) { $PROP["LANGUAGES"][$k]["VALUE"] = ''; }; } else { $PROP["LANGUAGES"][$k]["VALUE"] = $v; }; } $j = 0; foreach ($_REQUEST["LANGLEVEL"] as $k=>$v) { if ($v == "...") { $j++; if ($j = 3) { $PROP["LANGUAGES"][$k]["DESCRIPTION"] = ''; }; } else { $PROP["LANGUAGES"][$k]["DESCRIPTION"] = $v; }; } } } /* ?><pre><? print_r($PROP); ?></pre><? // */ $arFields = Array( "MODIFIED_BY" => $USER->GetID(), // элемент изменен текущим пользователем "DETAIL_TEXT" => $_REQUEST["ABOUT"], ); $el = new CIBlockElement; $res = $el->Update($_REQUEST["PROFILE_ID"], $arFields); CIBlockElement::SetPropertyValuesEx($_REQUEST["PROFILE_ID"], $arParams["IBLOCK_ID"], $PROP); $arResult['DATA_SAVED'] = 'Y'; } // Найдём профиль пользователя $res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "PROPERTY_ACCOUNT"=>$usrid, 'SHOW_NEW'=>'Y'), false, false, array("ID", "IBLOCK_ID", "DETAIL_PICTURE", "IBLOCK_SECTION_ID", "DETAIL_TEXT", "PROPERTY_*")); if($ob = $res->GetNextElement()) { // Редактирование и просмотр доступны для существующего профиля $ar_fields = $ob->GetFields(); // поля $arResult["AVATAR"]["IMGP"] = CFile::ShowImage($ar_fields["DETAIL_PICTURE"], 260, 260, "class='img-responsive' border=0"); $arResult["PROFILE"]["ABOUT"] = $ar_fields["~DETAIL_TEXT"]; $arResult["PROFILE"]["ID"] = $ar_fields["ID"]; $arResult["PROFILE"]["DETAIL_PICTURE"] = $ar_fields["DETAIL_PICTURE"]; $arResult["PROFILE"]["IBLOCK_SECTION_ID"] = $ar_fields["IBLOCK_SECTION_ID"]; $arResult["PROPS"] = $ob->GetProperties(); // свойства $arResult["PROFILE"]["WIDESCREEN"] = CFile::GetPath($arResult["PROPS"]["WIDESCREEN"]["VALUE"]); if (isset($arResult['PROPS']["REGION"]["VALUE"]) && intval($arResult['PROPS']["REGION"]["VALUE"]) > 0){ $arFilter = Array("ID"=>$arResult['PROPS']["REGION"]["VALUE"]); $arSelect = Array("ID", "NAME", "IBLOCK_SECTION_ID", "PROPERTY_NAME_RU"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); if($ar_res = $res->GetNext()) {$nam_reg = (isset($ar_res["PROPERTY_NAME_RU_VALUE"]) && SITE_ID == "ru") ? $ar_res["PROPERTY_NAME_RU_VALUE"] : $ar_res["NAME"]; $region = $nam_reg; $s_ida=$ar_res["IBLOCK_SECTION_ID"];} if (isset($s_ida)){ $arFilter = Array("ID"=>$s_ida, "IBLOCK_ID"=>6); $arSelect = Array("ID", "NAME", "IBLOCK_SECTION_ID", "UF_NAME_RU", "UF_PHONE_CODE"); $res = CIBlockSection::GetList(Array(), $arFilter, false, $arSelect, false); if($ar_res = $res->GetNext()) {$s_idb=$ar_res["IBLOCK_SECTION_ID"]; if (intval($ar_res["UF_PHONE_CODE"])>0) $arResult["PROFILE"]["COUNTRY_CODE"] = $ar_res["UF_PHONE_CODE"]; if (IntVal($s_idb) == 31){$nam_reg = (isset($ar_res["UF_NAME_RU"]) && SITE_ID == "ru") ? $ar_res["UF_NAME_RU"] : $ar_res["NAME"]; $region = $region.", ".$nam_reg;};} }; if (isset($s_idb)){ $arFilter = Array("ID"=>$s_idb, "IBLOCK_ID"=>6); $arSelect = Array("ID", "NAME", "IBLOCK_SECTION_ID", "UF_NAME_RU", "UF_PHONE_CODE"); $res = CIBlockSection::GetList(Array(), $arFilter, false, $arSelect, false); if($ar_res = $res->GetNext()) {$nam_reg = (isset($ar_res["UF_NAME_RU"]) && SITE_ID == "ru") ? $ar_res["UF_NAME_RU"] : $ar_res["NAME"]; $region = $region.", ".$nam_reg; if (intval($ar_res["UF_PHONE_CODE"])>0) $arResult["PROFILE"]["COUNTRY_CODE"] = $ar_res["UF_PHONE_CODE"]; $s_idc=$ar_res["IBLOCK_SECTION_ID"];} }; } else {$region = "";}; $arResult["PROFILE"]["REGION"] = $region; $rsUser = CUser::GetByID($usrid); $arUser = $rsUser->Fetch(); $arResult["PROFILE"]["NAME"] = trim($arUser["NAME"]); $arResult["PROFILE"]["LAST_NAME"] = trim($arUser["LAST_NAME"]); /* ?> <pre><? print_r($ar_fields); ?></pre> <pre><? print_r($ar_prop); ?></pre> <? // */ // выберем свойства $rsProp = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arParams["IBLOCK_ID"])); while ($arProp = $rsProp->Fetch()) { if($arProp["PROPERTY_TYPE"] != "F") { $arTemp = array( "ID" => $arProp["ID"], "CODE" => $arProp["CODE"], "NAME" => $arProp["NAME"], "PROPERTY_TYPE" => $arProp["PROPERTY_TYPE"], "MULTIPLE" => $arProp["MULTIPLE"], "HINT" => $arProp["HINT"] ); if ($arProp["PROPERTY_TYPE"]=="L") { $arrEnum = array(); $arrXmlId = array(); $rsEnum = CIBlockProperty::GetPropertyEnum($arProp["ID"]); while($arEnum = $rsEnum->Fetch()) { $arrEnum[$arEnum["ID"]] = $arProp["ID"] == 80 || $arProp["ID"] == 81 ? $arEnum["XML_ID"] : $arEnum["VALUE"]; $arrXmlId[$arEnum["ID"]] = $arEnum["XML_ID"]; } $arTemp["VALUE_LIST"] = $arrEnum; $arTemp["VALUE_XML_ID"] = $arrXmlId; $arTemp["LIST_TYPE"] = $arProp["LIST_TYPE"]; } $arResult["arrProp"][$arProp["ID"]] = $arTemp; } } if(true || $arResult["PROFILE"]["IBLOCK_SECTION_ID"]==7) { // Юзер в разделе Модели // параметры, 1-й столбец $arResult["arparams"][0][] = $arResult["arrProp"][74]; $arResult["arparams"][0][] = $arResult["arrProp"][67]; $arResult["arparams"][0][] = $arResult["arrProp"][104]; $arResult["arparams"][0][] = $arResult["arrProp"][65]; $arResult["arparams"][0][] = $arResult["arrProp"][66]; // параметры, 2-й столбец $arResult["arparams"][1][] = $arResult["arrProp"][75]; $arResult["arparams"][1][] = $arResult["arrProp"][76]; $arResult["arparams"][1][] = $arResult["arrProp"][77]; $arResult["arparams"][1][] = $arResult["arrProp"][78]; $arResult["arparams"][1][] = $arResult["arrProp"][79]; $arResult["arparams"][1][] = $arResult["arrProp"][80]; $arResult["arparams"][1][] = $arResult["arrProp"][81]; // Стили $arResult["arstyles"] = $arResult["arrProp"][68]; // Дополнительно $arResult["aroptions"] = $arResult["arrProp"][70]; } $arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM"); $arFilter = Array("IBLOCK_ID"=>15, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); while($ob = $res->GetNext()) { $arResult["lang"][$ob['ID']] = $ob['NAME']; }; if (isset($arResult["PROPS"]["ACCOUNT"]["VALUE"]) && strlen($arResult["PROPS"]["ACCOUNT"]["VALUE"]) > 0) { $rsUser = CUser::GetByID(intval($arResult["PROPS"]["ACCOUNT"]["VALUE"])); $arUser = $rsUser->Fetch(); foreach ($arUser as $key => $val) { $arResult["arUser"][$key] = $arUser[$key]; }; }; } else { $arResult['ERROR'] = GetMessage("FILL_IN_ALL_REQUIRED_FIELDS"); } $this->IncludeComponentTemplate(); ?>