function OnAfterUserAuthorizeHandler(&$arFields) { $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+'); global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); fwrite($f, "---start\n"); if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') { $facebook = new Facebook_Facebook(array('appId' => '447579571927341', 'secret' => '2f2cf9cd60f9e98d6cf3309e6b7bde5d')); $id = $arUser["XML_ID"]; $user_info = $facebook->api('/' . $id . '?fields=id,name,first_name,middle_name,last_name,gender,birthday,email,picture'); $props = array(); if (!$arUser['PERSONAL_GENDER']) { if (isset($user_info['gender']) && $user_info['gender']) { $props['PERSONAL_GENDER'] = $user_info['gender'] == 'male' ? 'M' : 'F'; } } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($USER->GetId(), BLOG_BY_USER_ID); $props = array(); if (!$blogUser['AVATAR']) { if (isset($user_info['picture']) && $user_info['picture']) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://graph.facebook.com/{$id}/picture?type=large"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); $output = curl_exec($ch); if ($output) { $fileName = md5($user_info['picture']); $fullPath = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/social_pictures/{$fileName}.jpg"; if (file_put_contents($fullPath, $output) !== false) { $picture = CFile::MakeFileArray($fullPath); $props['AVATAR'] = $picture; $user = new CBlogUser(); $user->Update($blogUser["ID"], $props); unlink($fullPath); } } } } } fwrite($f, "---finish\n"); fclose($f); }
public function OnAfterUserAuthorizeHandler(&$arFields) { global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); $social = MH_Social_SocialFabric::getSocial($arUser['EXTERNAL_AUTH_ID'], $arUser["XML_ID"]); if ($arUser['ID'] > 0 && $arUser['UF_RULES'] != '1') { $props = array(); if (!$arUser['PERSONAL_GENDER']) { $props['PERSONAL_GENDER'] = $social->getGender(); } if (!$arUser['PERSONAL_BIRTHDAY']) { $props['PERSONAL_BIRTHDAY'] = $social->getBirthday(); } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID); if (!$blogUser || !$blogUser['AVATAR']) { $props = array('USER_ID' => $arUser['ID']); if ($path = $social->getPicture()) { $picture = CFile::MakeFileArray($path); $props['AVATAR'] = $picture; $user = new CBlogUser(); if ($blogUser) { $user->Update($blogUser["ID"], $props); } else { $user->Add($props); } unlink($path); } } } }
} if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); } } } if ($strError == '') { if (CModule::IncludeModule("blog")) { $APPLICATION->ResetException(); $arblogFields = array("ALIAS" => $_REQUEST["blog_ALIAS"], "DESCRIPTION" => $_REQUEST["blog_DESCRIPTION"], "INTERESTS" => $_REQUEST["blog_INTERESTS"], "AVATAR" => $_FILES["blog_AVATAR"]); $arblogFields["AVATAR"]["del"] = $_REQUEST["blog_AVATAR_del"]; $ar_res = CBlogUser::GetByID($arResult["ID"], BLOG_BY_USER_ID); if ($ar_res) { $arblogFields["AVATAR"]["old_file"] = $ar_res["AVATAR"]; $BLOG_USER_ID = intval($ar_res["ID"]); $BLOG_USER_ID1 = CBlogUser::Update($BLOG_USER_ID, $arblogFields); $blog_res = intval($BLOG_USER_ID1) > 0; } else { $arblogFields["USER_ID"] = $arResult["ID"]; $arblogFields["~DATE_REG"] = CDatabase::CurrentTimeFunction(); $BLOG_USER_ID = CBlogUser::Add($arblogFields); $blog_res = intval($BLOG_USER_ID) > 0; } if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); } } } if (CModule::IncludeModule("learning") && $strError == '') { $arStudentFields = array("RESUME" => $_REQUEST["student_RESUME"], "PUBLIC_PROFILE" => $_REQUEST["student_PUBLIC_PROFILE"] == "Y" ? "Y" : "N"); $ar_res = CStudent::GetList(array(), array("USER_ID" => $arResult["ID"]));
function SetLastVisit() { if (isset($GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"]) && $GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"] == "Y") { return True; } if (!$GLOBALS["USER"]->IsAuthorized()) { return False; } $userID = IntVal($GLOBALS["USER"]->GetID()); if ($userID <= 0) { return False; } $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID); if ($arBlogUser) { CBlogUser::Update($arBlogUser["ID"], array("=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction())); } else { CBlogUser::Add(array("USER_ID" => $userID, "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(), "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(), "ALLOW_POST" => "Y")); } $GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"] = "Y"; return True; }
$arPICTURE["del"] = $_POST["AVATAR_del"]; $arHobbyDB = array(); $arHobby = explode(",", $_POST["INTERESTS"]); foreach ($arHobby as $Hobby) { $Hobby = trim($Hobby); $arHobbyDB[] = $Hobby; } $arHobbyDB = array_unique($arHobbyDB); if (count($arHobbyDB) > 0) { $Hobby = implode(", ", $arHobbyDB); } else { $Hobby = ""; } $arFields = array("ALIAS" => $_POST["ALIAS"], "DESCRIPTION" => $_POST["DESCRIPTION"], "AVATAR" => $arPICTURE, "INTERESTS" => $Hobby, "PATH" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arParams["ID"]))); $DB->StartTransaction(); $res = CBlogUser::Update($BLOG_USER_ID, $arFields); if ($res) { $arPICTURE = $_FILES["PERSONAL_PHOTO"]; $arPICTURE["old_file"] = $arResult["arUser"]["PERSONAL_PHOTO"]; $arPICTURE["del"] = $_POST["PERSONAL_PHOTO_del"]; $arFields = array("PERSONAL_WWW" => $_POST["PERSONAL_WWW"], "PERSONAL_GENDER" => $_POST["PERSONAL_GENDER"], "PERSONAL_BIRTHDAY" => $_POST["PERSONAL_BIRTHDAY"], "PERSONAL_PHOTO" => $arPICTURE); $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("USER", $arFields); $res = $USER->Update($BlogUser["USER_ID"], $arFields); if ($res) { $DB->Commit(); } else { $DB->Rollback(); $strErrorMessage .= $USER->LAST_ERROR; } $arFilter = array("OWNER_ID" => $BlogUser["USER_ID"], "ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID); if (!empty($arParams["GROUP_ID"])) {
$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'); } }