%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(); }; ?>