%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();
?>