Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
 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);
             }
         }
     }
 }
Ejemplo n.º 3
0
         }
         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"]));
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 $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"])) {
Ejemplo n.º 6
0
         $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');
     }
 }