%PDF- %PDF-
Direktori : /home/bitrix/www/local/components/p4/user.album/ |
Current File : /home/bitrix/www/local/components/p4/user.album/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /* @global CUser $USER */ $arResult[] = array(); $arResult['APP_RESULT'] = array('OK' => true, 'ERROR_MESSAGE' => ''); //$arResult['APP_RESULT']['REQUEST'] = $_REQUEST; define('IBLOCK_PRINT_ID', 30); //AddMessage2Log('USER_ALBUM ['.$_SERVER["REQUEST_METHOD"].'] '.bitrix_sessid() // .' '.($USER->IsAuthorized()?'Y':'N').' '.print_r($_REQUEST, true)."\nCookies: ".print_r($_COOKIE, true)."\nFiles: ".print_r($_FILES, true)); if ($USER->IsAuthorized() && ($_SERVER["REQUEST_METHOD"]=="POST" || $_SERVER["REQUEST_METHOD"]=="PUT")) { if (isset($_REQUEST['MODE']) && strlen($_REQUEST['MODE'])>0) { $rsProfile = CIBlockElement::GetList(array(), array("IBLOCK_ID"=>IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT'=>$USER->GetID(), 'ACTIVE'=>'Y', 'SHOW_NEW'=>'Y'), false, false, array('IBLOCK_ID', 'ID', 'NAME')); if ($arProfile = $rsProfile->Fetch()) { if ($_REQUEST['MODE']=='SETHMAP_UPLOAD') { if (isset($_REQUEST['IMAGE_1']) && isset($_REQUEST['IMAGE_2'])) { $CIBlockElement = new CIBlockElement(); $rsPrint = CIBlockElement::GetList(array(), array('IBLOCK_ID'=>IBLOCK_PRINT_ID,'PROPERTY_PROFILE'=>$arProfile['ID'],'PROPERTY_TYPE'=>453)); if ($arPrint = $rsPrint->Fetch()) { CIBlockElement::SetPropertyValuesEx($arPrint['ID'], IBLOCK_PRINT_ID, array('FILES' => array($_REQUEST['IMAGE_1'],$_REQUEST['IMAGE_1']))); } else { $arFields = array( 'IBLOCK_ID' => IBLOCK_PRINT_ID, 'PROPERTY_VALUES' => array( 'PROFILE' => $arProfile['ID'], 'TYPE' => 453, 'FILES' => array($_REQUEST['IMAGE_1'],$_REQUEST['IMAGE_2']) ) ); $CIBlockElement = new CIBlockElement(); if (!($sectionID = $CIBlockElement->Add($arFields))) { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = $bs->LAST_ERROR; } } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('IMAGE_NOT_EXIST'); } } elseif ($_REQUEST['MODE']=='WIDESCREEN_UPLOAD' && count($_FILES['WIDESCREEN'])>0) // Загрузить widescreen в профиль { CIBlockElement::SetPropertyValuesEx($arProfile['ID'], IBLOCK_PROFILE_ID, array('WIDESCREEN' => $_FILES['WIDESCREEN'])); } else { // Ищем корневой альбом, если нет - создаем $rsSection = CIBlockSection::GetList(array(), array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "UF_PORTF_USR"=>$arProfile['ID'], "SECTION_ID"=>false), false, array("IBLOCK_ID", "ID")); $sectionID = 0; if ($arSection = $rsSection->Fetch()) $sectionID = $arSection['ID']; else { // Создаем корневой раздел альбомов $arSectionFields = array( "ACTIVE" => 'Y', "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => IBLOCK_PORTFOLIO_ID, "NAME" => $arProfile['NAME'], "UF_PORTF_USR" => $arProfile['ID'] ); $bs = new CIBlockSection; if (!($sectionID = $bs->Add($arSectionFields))) { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = $bs->LAST_ERROR; } } if ($sectionID>0) { if ($_REQUEST['MODE']=='ADD_ALBUM' && strlen($_REQUEST['NAME'])>0) // Добавить альбом { $arAlbumFields = array( "ACTIVE" => 'Y', "IBLOCK_SECTION_ID" => $sectionID, "IBLOCK_ID" => IBLOCK_PORTFOLIO_ID, "NAME" => $_REQUEST['NAME'], "SORT" => isset($_REQUEST['SORT'])?$_REQUEST['SORT']:500 ); $bs = new CIBlockSection; $albumID = $bs->Add($arAlbumFields); if ($albumID>0) $arResult['APP_RESULT']['ALBUM_ID'] = $albumID; else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = $bs->LAST_ERROR; } } else { // Проверяем права на альбом $rsAlbum = CIBlockSection::GetList(array(), array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "ID"=>$_REQUEST['ALBUM_ID'], "SECTION_ID"=>$sectionID)); if ($rsAlbum->Fetch()) { if ($_REQUEST['MODE']=='UPDATE_ALBUM' && intval($_REQUEST['ALBUM_ID'])>0) // Изменить альбом { $arAlbumFields = array(); if (strlen($_REQUEST['NAME'])>0) $arAlbumFields['NAME'] = $_REQUEST['NAME']; if (intval($_REQUEST['SORT'])>0) $arAlbumFields['SORT'] = $_REQUEST['SORT']; if (count($arAlbumFields)>0) { $bs = new CIBlockSection; if (!$bs->Update($_REQUEST['ALBUM_ID'], $arAlbumFields)) { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = $bs->LAST_ERROR; } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('ALBUM_UPDATE_EMPTY_PARAMS'); } } elseif ($_REQUEST['MODE']=='DELETE_ALBUM' && intval($_REQUEST['ALBUM_ID'])>0) // Удалить альбом { if(!CIBlockSection::Delete($_REQUEST['ALBUM_ID'],false)) { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('ALBUM_DELETE_ERROR'); } } elseif ($_REQUEST['MODE']=='ADD_PHOTO' && intval($_REQUEST['ALBUM_ID'])>0 && count($_FILES['PHOTO'])>0) // Добавить фото в альбом { $arImages = array( 'PREVIEW_PICTURE' => array("width" => 400, "height" => 400), 'DETAIL_PICTURE' => array("width" => 1280, "height" => 1280), ); foreach($arImages as $idx=>$image) { $destPath = $_FILES['PHOTO']['tmp_name'].'_'.$idx; $res = CFile::ResizeImageFile( $_FILES['PHOTO']['tmp_name'], $destPath, array("width" => 1280, "height" => 1280), BX_RESIZE_IMAGE_PROPORTIONAL_ALT); $arImagesFile[$idx] = array( 'name' => $_FILES['PHOTO']['name'], 'tmp_name' => $destPath, 'errors' => $_FILES['PHOTO']['error'], 'type' => $_FILES['PHOTO']['type'], 'size' => '', 'mode' => 'detail_picture', 'width' => '', 'height' => '', 'path' => $destPath ); } $arPhotoFields = array( 'IBLOCK_ID' => IBLOCK_PORTFOLIO_ID, 'IBLOCK_SECTION_ID' => $_REQUEST['ALBUM_ID'], 'NAME' => $_FILES['PHOTO']['name'], 'PREVIEW_PICTURE' => $arImagesFile['PREVIEW_PICTURE'], 'DETAIL_PICTURE' => $arImagesFile['DETAIL_PICTURE'], 'PROPERTY_VALUES' => array( 'REAL_PICTURE' => $_FILES['PHOTO'] ) ); $el = new CIBlockElement; $photoID = $el->Add($arPhotoFields,false,false,true); if ($photoID>0) { $arResult['APP_RESULT']['PHOTO_ID'] = $photoID; ProfileTypeHelper::runModerate($arProfile['ID'], false); } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = $el->LAST_ERROR; } foreach($arImages as $idx=>$image) unlink($_FILES['PHOTO']['tmp_name'].'_'.$idx); } elseif ($_REQUEST['MODE']=='DELETE_PHOTO' && intval($_REQUEST['PHOTO_ID'])>0) // Удалить фото { if(!CIBlockElement::Delete($_REQUEST['PHOTO_ID'])) { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('ALBUM_PHOTO_DELETE_ERROR'); } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('INVALID_REQUEST'); } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('ALBUM_UPDATE_ACCESS_DENIED'); } } } } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('PROFILE_NOT_FOUND'); } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('MODE_NOT_EXIST'); } } else { $arResult['APP_RESULT']['OK'] = false; $arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('USER_NOT_AUTHORIZED'); } $this->IncludeComponentTemplate();