%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/p4/p.user.profile/
Upload File :
Create Path :
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();
	  
?>

Zerion Mini Shell 1.0