%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/p4/p.ajax.post_avatar/
Upload File :
Create Path :
Current File : /home/bitrix/www/local/components/p4/p.ajax.post_avatar/component.php

<?php

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die();
}

if (!(CModule::IncludeModule('main') && CModule::IncludeModule('iblock'))) {
    return;
}

$usrid = $USER->GetID();

// сохраняет аватар из cropit в аккаунт или профиль
if ($usrid > 0 && 'POST' == $_SERVER['REQUEST_METHOD'] && strlen($_REQUEST['avatar']) > 0 && check_bitrix_sessid()) {
    $tmpdir = $_SERVER['DOCUMENT_ROOT'].'/tmp';
    $tmpfname = tempnam($tmpdir, 'AVA').'.jpg';
    $avatar = explode(',', $_REQUEST['avatar']);
    file_put_contents($tmpfname, base64_decode($avatar[1]));
    $arFile = CFile::MakeFileArray($tmpfname);

    echo 'FILE: '.print_r($arFile, true)."\n";

    $res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT' => $usrid),
        false, false, array('ID', 'IBLOCK_ID', 'DETAIL_PICTURE'));

    if ($ar_fields = $res->GetNext()) { // Если найден профиль, сохраняем в DETAIL_PICTURE
        $el = new CIBlockElement();
        $arFile['old_file'] = $ar_fields['DETAIL_PICTURE'];
        $fields = array('DETAIL_PICTURE' => $arFile);
        if (false == $el->Update($ar_fields['ID'], $fields)) {
            echo 'ERROR: (user) '.$el->LAST_ERROR;
        } else {
            updateUserAvatar($usrid);
            echo 'OK';
        }
    } else { // Сохраняем в аватар пользователя
        $fields = array('PERSONAL_PHOTO' => $arFile);
        $user = new CUser();
        if (false == $user->Update($usrid, $fields)) {
            echo 'ERROR: (account) '.$user->LAST_ERROR;
        } else {
            echo 'OK';
        }
    }

    unlink($tmpfname);
} else {
    echo 'ERROR: parameters not valid';
}

Zerion Mini Shell 1.0