%PDF- %PDF-
Mini Shell

Mini Shell

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

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
// @todo AJAX подгрузка для "Больше"!
// @todo Кэширование?
IncludeTemplateLangFile(__FILE__);
CModule::IncludeModule("iblock");
function reArrayFiles(&$file_post) {

    $file_ary = array();
    $file_count = count($file_post['name']);
    $file_keys = array_keys($file_post);

    for ($i=0; $i<$file_count; $i++) {
        foreach ($file_keys as $key) {
            $file_ary[$i][$key] = $file_post[$key][$i];
        }
    }

    return $file_ary;
}
$arResult[] = array();
$arResult['APP_RESULT'] = array('OK' => true, 'ERROR_MESSAGE' => '');
define('IBLOCK_PRINT_ID', 30);
$usrid = 0;
$usrid = (isset($_REQUEST['MODER']) && $_REQUEST['MODER'] == "Y" && intval($_REQUEST['ACC_ID']) > 0 && intval($USER->GetID()) == 1370) ? intval($_REQUEST['ACC_ID']) : intval($USER->GetID());
$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PROFILE_ID, "PROPERTY_ACCOUNT"=>$usrid, 'SHOW_NEW'=>'Y'), false, false,
		array("ID", "IBLOCK_ID", "DETAIL_PICTURE", "IBLOCK_SECTION_ID", "DETAIL_TEXT", "PROPERTY_AGE"));

	if($ob = $res->GetNext()) {
		$arResult['AGE'] = $ob['PROPERTY_AGE_VALUE'];
	};
	$rsProfile = CIBlockElement::GetList(array(),
		array("IBLOCK_ID"=>IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT'=>$usrid, 'ACTIVE'=>'Y'), false, false, array('IBLOCK_ID', 'ID', 'NAME'));
		if ($arProfile = $rsProfile->Fetch()){
			$db_list = CIBlockSection::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "DEPTH_LEVEL"=>1,"UF_PORTF_USR"=>$arProfile['ID']), false,
			array("IBLOCK_ID","ID","UF_PORTF_USR"));
			if ($ar_result = $db_list->GetNext()) $sid = $ar_result["ID"];
			$count_phot = 0;
			if (intval($sid)>0) {
			$db_list = CIBlockSection::GetList(Array(),	Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "SECTION_ID"=>$sid), false,
			array("IBLOCK_ID", "ID", "NAME", "UF_PORTF_ACC"));
			while($ar_result = $db_list->GetNext()) {
			$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID,"SECTION_ID"=>$ar_result['ID']), false,
			array("IBLOCK_ID","ID","NAME"));
			$count_phot += intval($res->SelectedRowsCount());
			}
		}
	};
	$arResult['PHOTO_COUNT'] = $count_phot;
if (isset($arParams['AJAX_REF']) && $arParams['AJAX_REF']=='Y' && check_bitrix_sessid())
{
	if (isset($_REQUEST['MODE']) && strlen($_REQUEST['MODE'])>0)
	{
		$rsProfile = CIBlockElement::GetList(array(),
			array("IBLOCK_ID"=>IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT'=>$usrid, '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');
				}
			}
			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) {
						  $res = CIBlockSection::GetList(array(),array("IBLOCK_ID" => IBLOCK_PORTFOLIO_ID, "ID" => $albumID));
						  if($ar_fields = $res->GetNext()) {
								$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID'] = $ar_fields['ID'];
								$arResult['ALBUM_RESULT'][$albumID]['NAME'] = $ar_fields['NAME'];
							}
					  ?>
					  	<div id="contain<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>">
	<div class="modal fade edit_modal" id="rename_album<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">

		<form method="post" action="" name="f_albom<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" data-sid="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>">
      
			<div class="modal-header">		    
				<button type="button" class="close close_edit" data-dismiss="modal">&times;</button>
				<h3 class="modal-title" id="myModalLabel" style="display: inline;"><?=GetMessage("RENAME_ALBUM")?></h3>
			</div>
		<div class="modal-body">
				<div class="alert alert-danger" id="rename_album_error" style="margin-top:0px; display: none;">
					<?=GetMessage("FAILED_TO_RENAME_ALBUM")?>
				</div>
				<input type="hidden" name="sessid" value="<?=bitrix_sessid()?>">
				<input id="phn<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" class="form-control" type="text" data-id="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" style="width:100%; margin-top:0px;"
					value="<?=$arResult['ALBUM_RESULT'][$albumID]['NAME']?>" name="NAME"/>

				<div style="margin-top:15px;text-align:right;">
				<a rel="nofollow" style="float: left;" class="btn btn-default btn-transparent ok_edit delete-album-btn" data-id="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>"
			title="<?=GetMessage("DELETE_ALBUM")?>"><i class="fa fa-trash"></i>&nbsp;&nbsp;<?=GetMessage("P_DELETE")?></a>
        <button type="button" class="btn btn-default btn-transparent cancel_edit" data-dismiss="modal"><?=GetMessage("UNDO")?></button>
        <button type="submit" class="btn btn-default btn-transparent ok_edit save-album-btn" data-id="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>"><?=GetMessage("SAVE")?></button>
				</div>
				
      </div>
      
		</form>

	  </div>
	</div>
</div>
						<div class="col-xs-11 t title" id="name_alb<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>">
							<div class="tc"><h3><?=$arResult['ALBUM_RESULT'][$albumID]['NAME']?></h3></div>
						</div>
						
						<div class="col-xs-1 t edit right" style="float: right; display: inline-block; margin-top: 17px;">
							<div class="tc"><a data-toggle="modal" data-target="#rename_album<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" style="font-size:14px; font-family: proximanovaregular; letter-spacing:1px; right:<?=GetMessage("RIGHT_NUM")?>px"><?=GetMessage("P_EDIT")?></a></div>
						</div>
						
						<div class="col-xs-12" style="margin-top: -17px;">
							<div class="divider"></div>
						</div>
						<div class="col-xs-12 nopadding overflow" id="portfolio_albom<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>">
						<div class="figph" id="figph<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>">

						</div>
						<figure class="col-xs-3 add_prt_photo" style="margin-top: 15px;"><a class="doupload" data-id="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>"><div class="addphoto center"><div class="plus">+</div><?=GetMessage("ADD_PHOTO")?><br/><?=GetMessage("PLEASE_NO_SELFIES")?></div></a></figure>
							<div class="bordertop"></div>
							<div class="borderleft"></div>	
							<div class="borderright"></div>
							<div class="borderbottom"></div>
						</div>
						
						<div id="bxiu_simple_cont<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" class="bxiu-simple-cont" style="display: none;">
						<form name="photoform<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" id="photoform<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" method="POST" data-id="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" enctype="multipart/form-data">
							<div class="bxiu-field-upload">
								<input type="file" name="PHOTO[]" size="1"<?=(strpos($_SERVER["HTTP_USER_AGENT"], "Opera") === false ? " multiple=\"multiple\"" : "")?> data-albid="<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" 
								id="bxiu_upload_inp<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" class="bxiu-fake-input" />
							</div>
						</form>
					
							<div class="empty-clear"></div>
							<div class="bxiu-files-list" id="bxiu_files_list<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>"></div>
							<div class="empty-clear"></div>
							<input type="button" class="btn btn-default" id="bxiu_simple_go<?=$arResult['ALBUM_RESULT'][$albumID]['ALBUM_ID']?>" value="<?=GetMessage("P_GO_TO_ALBUM")?>" style="display: none; margin-bottom: 15px;">
						</div>
	</div>
					  <?
					  }
					  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{?>
										<div class="tc"><h3><?=$arAlbumFields['NAME']?></h3></div>					 
									<?	
									}
								}
								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),
								);
								if (is_array($_FILES['PHOTO'])){
								$arFiles = reArrayFiles($_FILES['PHOTO']);
								foreach($arFiles as $idy => $file){
									$br_v = false;
								foreach($arImages as $idx=>$image)
								{
								

									$destPath = $file['tmp_name'].'_'.$idx;
									
									$res = CFile::ResizeImageFile(
										$file['tmp_name'], $destPath,
										array("width" => 1280, "height" => 1280),
										BX_RESIZE_IMAGE_PROPORTIONAL_ALT);
														
									$arImagesFile[$idx] = array(
										'name' => $file['name'],
										'tmp_name' => $destPath,
										'errors' => $file['error'],
										'type' => $file['type'],
										'size' => '',
										'mode' => 'detail_picture',
										'width' => '',
										'height' => '',
										'path' => $destPath
									);
											
								}
															
						    $arPhotoFields = array(
							    'IBLOCK_ID' => IBLOCK_PORTFOLIO_ID,
							    'IBLOCK_SECTION_ID' => $_REQUEST['ALBUM_ID'],
							    'NAME' => $file['name'],
									'PREVIEW_PICTURE' => $arImagesFile['PREVIEW_PICTURE'],
									'DETAIL_PICTURE' => $arImagesFile['DETAIL_PICTURE'],
									'PROPERTY_VALUES' => array(
										'REAL_PICTURE' => $file
									)
						    );
						    $rsProfile = CIBlockElement::GetList(array(),
							array("IBLOCK_ID"=>IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT'=>$usrid, 'ACTIVE'=>'Y'), false, false, array('IBLOCK_ID', 'ID', 'NAME'));
							if ($arProfile = $rsProfile->Fetch()){
								$db_list = CIBlockSection::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "DEPTH_LEVEL"=>1,"UF_PORTF_USR"=>$arProfile['ID']), false,
								array("IBLOCK_ID","ID","UF_PORTF_USR"));
								if ($ar_result = $db_list->GetNext()) $sid = $ar_result["ID"];
								$count_ph = 0;
								if (intval($sid)>0) {
								$db_list = CIBlockSection::GetList(Array(),	Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID, "SECTION_ID"=>$sid), false,
									array("IBLOCK_ID", "ID", "NAME", "UF_PORTF_ACC"));
								while($ar_result = $db_list->GetNext()) {
										$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID,"SECTION_ID"=>$ar_result['ID']), false,
										array("IBLOCK_ID","ID","NAME"));
										$count_ph += intval($res->SelectedRowsCount());
								}
								}
							};
							if ($count_ph < 50) {
						    $el = new CIBlockElement;
						    $photoID = $el->Add($arPhotoFields,false,false,true);
						    if ($photoID>0) {
							$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID,"ID"=>$photoID), false,
								false,
								array("IBLOCK_ID","ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));
							if($ar_fields = $res->GetNext()) {
								$arResult['PHOTO_RESULT'][$photoID]['ID'] = $ar_fields['ID'];
								$arResult['PHOTO_RESULT'][$photoID]['PREVIEW_PICTURE'] = CFile::GetPath($ar_fields["DETAIL_PICTURE"]);
								$pic_inf = CFile::GetByID($ar_fields["PREVIEW_PICTURE"]);
								$arPicInf = $pic_inf->Fetch();
								$arResult['PHOTO_RESULT'][$photoID]['TYPE_IMAGE'] = intval($arPicInf['HEIGHT']) > intval($arPicInf['WIDTH']) ? 'V' : 'H';
							}
							?>
								<figure class="col-xs-3 figurephoto active_photo_prt" data-current-cnt="<?=($count_ph+1);?>" data-id="<?=$arResult['PHOTO_RESULT'][$photoID]['ID']?>" style="margin-top: 15px;">
									
									<a class="portfolio-item-link pil2 nonactivelink">
										<img class="img-responsive" style="background: url(<?=$arResult['PHOTO_RESULT'][$photoID]['PREVIEW_PICTURE']?>) center <?=$arResult['PHOTO_RESULT'][$photoID]['TYPE_IMAGE'] == 'V' ? 'top' : 'center';?> no-repeat; background-size: cover;" alt="" />
										<span title="<?=GetMessage("P_DELETE_PHOTO")?>" class="bin portfolio-item-remove" id="<?=$arResult['PHOTO_RESULT'][$photoID]['ID']?>"><i class="fa fa-trash-o"></i></span>
										<span title="<?=GetMessage("ADULT_ONLY");?>" data-id="<?=$arResult['PHOTO_RESULT'][$photoID]['ID']?>" class="pl18 adult_item act_off"></span>
									</a>
								
								</figure>
							<?
							}
						    else
						    {
									$arResult['APP_RESULT']['OK'] = false;
									$arResult['APP_RESULT']['ERROR_MESSAGE'] = $el->LAST_ERROR;
						    }
							} else {
								$br_v = true;?>
								<figure class="error_photo_limit"></figure>
							<?
							}							
	
								foreach($arImages as $idx=>$image){
								unlink($file['tmp_name'].'_'.$idx);
								};
										if ($br_v){
											break;
										};
								}
								}
							}
							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');
								}
							}
							elseif ($_REQUEST['MODE']=='ADULT_ON' && intval($_REQUEST['PHOTO_ID'])>0)
							{
								 
								$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID,"ID"=>intval($_REQUEST['PHOTO_ID'])), false,
								false,
								array("IBLOCK_ID","ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));
								 if ($ar_fields = $res->GetNext()){
									CIBlockElement::SetPropertyValueCode($ar_fields['ID'], "ADULT", "1");
															
								} else {
									$arResult['APP_RESULT']['OK'] = false;
								};
							}
							elseif ($_REQUEST['MODE']=='ADULT_OFF' && intval($_REQUEST['PHOTO_ID'])>0)
							{
								$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>IBLOCK_PORTFOLIO_ID,"ID"=>intval($_REQUEST['PHOTO_ID'])), false,
								false,
								array("IBLOCK_ID","ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));
								 if ($ar_fields = $res->GetNext()){
									CIBlockElement::SetPropertyValueCode($ar_fields['ID'], "ADULT", "0");
															
								} else {
									$arResult['APP_RESULT']['OK'] = false;
								};
							}
							elseif ($_REQUEST['MODE']=='WIDESCREEN_UPLOAD' && count($_FILES['WIDESCREEN'])>0) // Загрузить widescreen в профиль
							{
								// AddMessage2Log($_FILES);
								CIBlockElement::SetPropertyValuesEx($arProfile['ID'], IBLOCK_PROFILE_ID, array('WIDESCREEN' => $_FILES['WIDESCREEN']));					
							}
							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 
{
function getImageUploaderId()
{
	static $iIndexOnPage = 0;
	$iIndexOnPage++;
	return 'bx_img_upl_'.$iIndexOnPage;
}
$arParams["UPLOADER_ID"] = getImageUploaderId();
function getPhotoParam($ar_fields) {
	$preview_pict = CFile::GetPath($ar_fields["PREVIEW_PICTURE"]);
	$detail_pict = CFile::GetPath($ar_fields["DETAIL_PICTURE"]);
	$pic_info = CFile::GetByID($ar_fields["PREVIEW_PICTURE"]);
	$arPicInfo = $pic_info->Fetch();
	$type_im = intval($arPicInfo['HEIGHT']) > intval($arPicInfo['WIDTH']) ? 'V' : 'H';
	if (!$detail_pict) $detail_pict = CFile::GetPath($ar_fields["PROPERTY_REAL_PICTURE_VALUE"]);
	if (!$preview_pict) $preview_pict = $detail_pict;
	if (!$detail_pict) $detail_pict = $preview_pict;
	// Подгружаем рейтинг и данные по комментариям
	$arVoteResult = CRatings::GetRatingVoteResult("IBLOCK_ELEMENT", $ar_fields['ID']);				
	return array(
		'ID' => $ar_fields['ID'],
		'NAME' => $ar_fields['NAME'],
		'PREVIEW_PICTURE_SRC' => $detail_pict,
		'DETAIL_PICTURE_SRC' => $detail_pict,
		'TYPE_IMAGE' => $type_im,
		'VOTES' => empty($arVoteResult)?0:$arVoteResult['TOTAL_VOTES'],
		'FORUM_MESSAGE_CNT' => intval($ar_fields['PROPERTY_FORUM_MESSAGE_CNT_VALUE'])>0?$ar_fields['PROPERTY_FORUM_MESSAGE_CNT_VALUE']:'0',
		'ADULT' => intval($ar_fields['PROPERTY_ADULT_VALUE'])>0?$ar_fields['PROPERTY_ADULT_VALUE']:'0',
		'INVISIBLE' => 'N'
	);
}

if (intval($arParams['PROFILE_ID'])>0) {
	$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>2, "PROPERTY_ACCOUNT"=>$arParams["ACCOUNT_ID"], 'SHOW_NEW'=>'Y'), false, false,
		array("ID", "IBLOCK_ID", "DETAIL_PICTURE", "PROPERTY_TYPE_P4"));
	if ($ob = $res->GetNext()){
		$arResult['ALBUMS_LIMIT'] = ProfileTypeHelper::getLimits(intval($ob['PROPERTY_TYPE_P4_VALUE']))[ProfileTypeHelper::GALLERY_MAX_ALBUM];
	};
	

	// Определяем SECTION_ID профиля
	$db_listh = CIBlockSection::GetList(Array(),
		Array("IBLOCK_ID"=>4, "DEPTH_LEVEL"=>1, "UF_PORTF_USR"=>$arParams['PROFILE_ID']), false,
		array("IBLOCK_ID", "ID", "UF_PORTF_USR")
	);
	$sidh = 0;
	if ($ar_resulth = $db_listh->GetNext()) $sidh = $ar_resulth["ID"];
	
	if (intval($sidh)>0) {

		$arAlbumsFilter = Array("IBLOCK_ID"=>4, "SECTION_ID"=>$sidh);
		if (!isset($USER) || !in_array(9, $USER->GetUserGroupArray()))
			$arAlbumsFilter['UF_IS_POLAROID'] = false;
		
		// Формируем список альбомов
		$db_list = CIBlockSection::GetList(Array(), $arAlbumsFilter, false,
			array("IBLOCK_ID", "ID", "NAME", "UF_PORTF_ACC"));
		while($ar_result = $db_list->GetNext()) {
			if($ar_result["UF_PORTF_ACC"]==1) {
				$arResult['ALBUMS']['PRIVATE'][$ar_result["ID"]] = array('NAME'=>$ar_result['NAME']); // Только для авторизованных
				if ($USER->IsAuthorized())
					$arResult['ALBUMS']['ITEMS'][$ar_result["ID"]] = array('NAME'=>$ar_result['NAME']);
			}
			else
				$arResult['ALBUMS']['ITEMS'][$ar_result["ID"]] = array('NAME'=>$ar_result['NAME']); // Доступные пользователю альбомы
		}

		// Заполняем альбомы
		foreach($arResult['ALBUMS']['ITEMS'] as $albom_id => $alum) {
			$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>4,"SECTION_ID"=>$albom_id), false,
				array("iNumPage"=>1, "nPageSize"=>$arParams['N_PAGE_SIZE']),
				array("IBLOCK_ID","ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));
			while($ar_fields = $res->GetNext()) {
				$arResult['ALBUMS']['ITEMS'][$albom_id]['PHOTOS'][] = getPhotoParam($ar_fields);
			}
			$arResult['ALBUMS']['ITEMS'][$albom_id]['SHOW_MORE_BUTTON'] = $res->IsNavPrint()?'Y':'N';
			$arResult['ALBUMS']['ITEMS'][$albom_id]['COUNT'] = $res->NavRecordCount;
		}

		// Отбираем лучшие работы (если есть) - формируем виртуальный альбом
		$res = CIBlockElement::GetList(Array("SORT"=>"ASC"),
			Array("IBLOCK_ID"=>4,"PROPERTY_BFOTO_VALUE"=>1, "SECTION_ID"=>array_keys($arResult['ALBUMS']['ITEMS'])), 
			false, array("iNumPage"=>1, "nPageSize"=>$arParams['N_PAGE_SIZE']),
			array("IBLOCK_ID","ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));

	 	$bestItems = array();
		while($ar_fields = $res->GetNext()) {
			$bestItems[] = getPhotoParam($ar_fields);	
		}
		if (count($bestItems)>0) {
			$arResult['ALBUMS']['ITEMS'][0] = array(
				'NAME' => GetMessage("BEST_WORKS"),
				'SHOW_MORE_BUTTON' => 'N',
				'PHOTOS' => $bestItems
			);
		}

		// Сортируем альбомы (ставим "Лучшие первым")
		ksort($arResult['ALBUMS']['ITEMS']);

		// ShowPhoto - показ фотографии (подгружаем фотографию дополнительно (без учета постраничного режима)
		$arResult['SHOW_PHOTO'] = array();
		if (intval($_REQUEST['ShowPhoto'])>0) {			
			// Ищем фотографию в подгруженных, если не находим - подгружаем невидимой в последний альбом
			$res = CIBlockElement::GetList(array("SORT"=>"ASC"),
				array("IBLOCK_ID"=>4,'ID'=>intval($_REQUEST['ShowPhoto'])), false, false,
				array("IBLOCK_ID","ID","IBLOCK_SECTION_ID","NAME","PREVIEW_PICTURE","DETAIL_PICTURE",
					"PROPERTY_REAL_PICTURE","PROPERTY_FORUM_MESSAGE_CNT", "PROPERTY_ADULT"));
			if($arPhoto = $res->GetNext()) {
				$arResult['SHOW_PHOTO']['ID'] = $arPhoto['ID'];
				$arResult['SHOW_PHOTO']['ON_PAGE'] = false;

				foreach($arResult['ALBUMS']['ITEMS'][$arPhoto['IBLOCK_SECTION_ID']]['PHOTOS'] as $photo)
					if ($photo['ID']==$arPhoto['ID']) {
						$arResult['SHOW_PHOTO']['ON_PAGE'] = true;
						break;
					}
				
				if (!$arResult['SHOW_PHOTO']['ON_PAGE']) {
					$photo = getPhotoParam($arPhoto);
					$photo['INVISIBLE'] = 'Y';
					$arResult['ALBUMS']['ITEMS'][$arPhoto['IBLOCK_SECTION_ID']]['PHOTOS'][] = $photo;
				}
			}
		}

	} else {$arResult['ERRORS'] = GetMessage("PROFILE_ID_IS_NOT_SPECIFIED");}
}
else $arResult['ERRORS'] = GetMessage("PROFILE_ID_IS_NOT_SPECIFIED");

$this->IncludeComponentTemplate();
};
?>

Zerion Mini Shell 1.0