%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/p4/catalog.album.image/
Upload File :
Create Path :
Current File : /home/bitrix/www/local/components/p4/catalog.album.image/component.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arResult['APP_RESULT']['OK'] = true;

if (isset($_REQUEST['ID'])&&intval($_REQUEST['ID'])>0)
{
	if (isset($_REQUEST['WIDTH'])&&intval($_REQUEST['WIDTH'])>0) // Выдать ссылку на изображение по ID альбома и лайки по нему
	{
		//$maxDim = isset($_REQUEST['WIDTH'])&&intval($_REQUEST['WIDTH'])>0?$_REQUEST['WIDTH']:1024;
		$maxDim = $_REQUEST['WIDTH'];
	
		$res = CIBlockElement::GetList(Array("created"=>"DESC","SORT"=>"ASC"), Array("IBLOCK_ID"=>4,"SECTION_ID"=>$_REQUEST['ID']), false, false,
			array("IBLOCK_ID","ID","PROPERTY_REAL_PICTURE","PROPERTY_ADULT"));
		while($arImage = $res->GetNext())
		{
			$file = CFile::GetFileArray($arImage['PROPERTY_REAL_PICTURE_VALUE']);
			
			if ($file['WIDTH']<$file['HEIGHT'])
				$arSize = array('width' => $maxDim, 'height' => round($maxDim * $file['HEIGHT'] / $file['WIDTH'])+1);
			else
				$arSize = array('width' => round($maxDim * $file['WIDTH'] / $file['HEIGHT'])+1, 'height' => $maxDim);
			
			$image = CFile::ResizeImageGet($file, $arSize, BX_RESIZE_IMAGE_PROPORTIONAL, true);
	
			if ($USER->IsAuthorized())
			{
				$arVoteResult = CRatings::GetRatingVoteResult("P4_PORTFOLIO", $arImage['ID']);
				// $image['like'] = rand(0,1)==1; // debug
				$image['like'] = $arVoteResult['USER_HAS_VOTED'] == 'Y';
			}
			else $image['like'] = false;
	
		  $image["adult"] = $arImage['PROPERTY_ADULT_VALUE']==1?'Y':'N';
	
			$arResult['APP_RESULT']['PHOTOS'][$arImage['ID']] = $image;
		}		
	}
	elseif (isset($_REQUEST['ADULT']) && intval($_REQUEST['ID'])>0)
	{
		CIBlockElement::SetPropertyValuesEx($_REQUEST['ID'], false, array('ADULT' => $_REQUEST['ADULT']=='Y'?'1':'0'));		
	}
	elseif (isset($_REQUEST['LIKE']) && intval($_REQUEST['ID'])>0)
	{
		if ($_REQUEST['LIKE']=='Y')
		{
			$arAddVote = array(
				"ENTITY_TYPE_ID"  =>  "P4_PORTFOLIO",
				"ENTITY_ID"       =>  $_REQUEST['ID'],
				"VALUE"           =>  $_REQUEST['LIKE']=='Y'?1:-1,
				"USER_ID"         =>  $USER->GetID(),
			 	"USER_IP"         =>  $_SERVER['REMOTE_ADDR'],
			);
			CRatings::AddRatingVote($arAddVote);
		}
		else
		{
			$arCancelVote = array(
				"ENTITY_TYPE_ID"  =>  "P4_PORTFOLIO",
				"ENTITY_ID"       =>  $_REQUEST['ID'],
				"USER_ID"         =>  $USER->GetID(),
			 	"USER_IP"         =>  $_SERVER['REMOTE_ADDR'],
			);
			CRatings::CancelRatingVote($arCancelVote);
		}
		
		//$arVoteResult = CRatings::GetRatingVoteResult("P4_PORTFOLIO", $_REQUEST['ID']);
		//$arResult['APP_RESULT']['VOTE'] = $arVoteResult;
	}
	else
	{
		$res = CIBlockElement::GetList(Array("created"=>"desc"), Array("IBLOCK_ID"=>4,"SECTION_ID"=>$_REQUEST['ID']), false, false,
			array("IBLOCK_ID","ID","DATE_CREATE","DETAIL_PICTURE","PROPERTY_REAL_PICTURE","PROPERTY_ADULT"));
		$idx=0;
		while($arImage = $res->Fetch())
		{
			$file = CFile::GetFileArray(intval($arImage['DETAIL_PICTURE'])>0?$arImage['DETAIL_PICTURE']:$arImage['PROPERTY_REAL_PICTURE_VALUE']);
			
			$image = array(
				"id" => $arImage['ID'],
	      "src" => $file['SRC'],
	      "height" => $file['HEIGHT'],
	      "width" => $file['WIDTH'],			
	      "size" => $file['FILE_SIZE'],
	      "created" => $arImage['DATE_CREATE'],
	      "adult" => $arImage['PROPERTY_ADULT_VALUE']==1?'Y':'N'
			);
			
			if ($USER->IsAuthorized())
			{
				$arVoteResult = CRatings::GetRatingVoteResult("P4_PORTFOLIO", $arImage['ID']);
				$image['like'] = $arVoteResult['USER_HAS_VOTED'] == 'Y';
			}
			else $image['like'] = false;
	
			$arResult['APP_RESULT']['PHOTOS'][$idx++] = $image;
		}		
	}

}
else
{
	$arResult['APP_RESULT']['OK'] = false;
	$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('EMPTY_IMAGE_ID');
}

$this->IncludeComponentTemplate();
?>

Zerion Mini Shell 1.0