%PDF- %PDF-
| Direktori : /home/bitrix/www/local/components/p4/p.portfolio.profile/ |
| 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">×</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> <?=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();
};
?>