%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/bitrix/www/local/components/p4/casting.list/
Upload File :
Create Path :
Current File : //proc/self/root/home/bitrix/www/local/components/p4/casting.list/component.php

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

// todo Кэширование запросов

$arFilter = array('IBLOCK_ID'=>12, 'ACTIVE'=>'Y', 'ACTIVE_DATE'=>'Y', 'PROPERTY_SECTIONS'=>CAT_PROFILE_MODEL);

if ($USER->IsAuthorized() && isset($_REQUEST['FILTER_SELF']) && $_REQUEST['FILTER_SELF'] === 'Y')
{
	$arFilter['CREATED_BY'] = $USER->GetID();
	unset($arFilter['ACTIVE']);
	unset($arFilter['ACTIVE_DATE']);
}

if (isset($_REQUEST['FILTER_REGION'])) $arFilter['PROPERTY_CITY'] = $_REQUEST['FILTER_REGION'];
else $arFilter['>PROPERTY_CITY'] = 0;

if (isset($_REQUEST['FILTER_TFP']))
	if($_REQUEST['FILTER_TFP']=='Y') $arFilter['PROPERTY_TFP'] = 'Y'; else $arFilter['!PROPERTY_TFP'] = 'N';

if (isset($_REQUEST['FILTER_CASTING']))
	if($_REQUEST['FILTER_CASTING']=='Y') $arFilter['PROPERTY_COMPENSATION_TYPE'] = 452;

if (is_array($_REQUEST['FILTER_SEX']))
{
	if (count($_REQUEST['FILTER_SEX'])==1)
		$arFilter['PROPERTY_SEX'] = $_REQUEST['FILTER_SEX'][0];
	else
	{
		$arSex = array('LOGIC' => 'AND');
		foreach($_REQUEST['FILTER_SEX'] as $sex)
			$arSex[] = array('PROPERTY_SEX'=>intval($sex));
		$arFilter[] = $arSex;
	}
}
elseif (isset($_REQUEST['FILTER_SEX'])) $arFilter['PROPERTY_SEX'] = $_REQUEST['FILTER_SEX'];

if (is_array($_REQUEST['FILTER_GENRES']))
{
	if (count($_REQUEST['FILTER_GENRES'])==1)
		$arFilter['PROPERTY_GENRES'] = $_REQUEST['FILTER_GENRES'][0];
	else
	{
		$arGenres = array(); ;
		foreach($_REQUEST['FILTER_GENRES'] as $genres)
			$arGenres[] = array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 12, "PROPERTY_GENRES" => intval($genres))));
		$arFilter[] = array('LOGIC' => 'AND', $arGenres);
	}
}
elseif (isset($_REQUEST['FILTER_GENRES'])) $arFilter['PROPERTY_GENRES'] = $_REQUEST['FILTER_GENRES'];

$arResult['APP_RESULT']['FILTER'] = $arFilter;

$pageNav = array(
	'iNumPage' => isset($_REQUEST['PAGE_N'])&&intval($_REQUEST['PAGE_N'])>0?$_REQUEST['PAGE_N']:1,
	'nPageSize' => 80,
);

$rs = CIBlockElement::GetList(
	array('active_from'=>'desc'), $arFilter, false, $pageNav,
	array('ID','IBLOCK_ID','NAME','DETAIL_PICTURE','PROPERTY_CITY','PROPERTY_JOB_DATE', 'CREATED_BY', 'ACTIVE', 'DATE_ACTIVE_FROM', 'DATE_ACTIVE_TO',
		'PROPERTY_COMPENSATION_TYPE','PROPERTY_COMPENSATION_CURRENCY','PROPERTY_COMPENSATION','PROPERTY_TFP', 'PROPERTY_FEEDBACK_COUNT',
		'PROPERTY_STATUS'));

$arResult['APP_RESULT']['ITEMS'] = array();

$userID = $USER->GetID();

while ($item = $rs->Fetch())
{
	$rsCity = CIBlockElement::GetList(array('NAME'=>'ASC'),array('IBLOCK_ID'=>6,'ID'=>$item['PROPERTY_CITY_VALUE']),false,false,
		array('ID','NAME','IBLOCK_SECTION_ID','PROPERTY_NAME_RU'));
	if ($city = $rsCity->Fetch())
	{
		$arCity = array(
			'ID' => $city['ID'],
			'NAME' => $city['NAME'],
			'NAME_RU' => $city['PROPERTY_NAME_RU_VALUE'],
			'OWNER' => $city['IBLOCK_SECTION_ID']
		);
	}
	else $arCity = array();
	
	$isReply = 'N';
	
	if ($userID>0)
	{
		$arFilter = array('IBLOCK_ID'=>14, 'CREATED_BY'=>$userID, 'PROPERTY_VACANCY'=>$item['ID']);
		$rsP = CIBlockElement::GetList(array(), $arFilter);
		if ($rsP->Fetch())
			$isReply = 'Y';
	}

	$arResult['APP_RESULT']['ITEMS'][] = array(
		'ID' => $item['ID'],
		'NAME' => $item['NAME'],
		'PICTURE' => CFile::GetPath($item['DETAIL_PICTURE']),
		'CITY' => $item['PROPERTY_CITY_VALUE'],
		'CITY_NAME' => $arCity,
		'JOB_DATE' => MakeTimeStamp($item['PROPERTY_JOB_DATE_VALUE']),
		'COMPENSATION_TYPE' => $item['PROPERTY_COMPENSATION_TYPE_ENUM_ID'],
		'COMPENSATION_CURRENCY' => $item['PROPERTY_COMPENSATION_CURRENCY_ENUM_ID'],
		'COMPENSATION' => $item['PROPERTY_COMPENSATION_VALUE'],
		'TFP' => isset($item['PROPERTY_TFP_VALUE'])?$item['PROPERTY_TFP_VALUE']:'N',
		'IS_REPLY' => $isReply,
		'IS_SELF' => $isReply && $item['CREATED_BY'] == $userID ? 'Y' : 'N',
		'ACTIVE' => $item['ACTIVE'],
		'DATE_ACTIVE_TO' => MakeTimeStamp($item['DATE_ACTIVE_TO']),
		'DATE_ACTIVE_FROM' => MakeTimeStamp($item['DATE_ACTIVE_FROM']),
		'FEEDBACK_COUNT' => intval($item['PROPERTY_FEEDBACK_COUNT_VALUE'])>0 ? $item['PROPERTY_FEEDBACK_COUNT_VALUE'] : 0,
		'STATUS' => $item['PROPERTY_STATUS_VALUE']
	);
	
}

$arResult['APP_RESULT']['PAGE_N'] = $rs->NavPageNomer;
$arResult['APP_RESULT']['PAGE_SIZE'] = $rs->NavPageSize;
$arResult['APP_RESULT']['PAGE_COUNT'] = $rs->NavPageCount;
$arResult['APP_RESULT']['COUNT'] = $rs->NavRecordCount;
$arResult['APP_RESULT']['OK'] = true;
//$arResult['APP_RESULT']['FILTER'] = print_r($arFilter,true);

$this->IncludeComponentTemplate();


Zerion Mini Shell 1.0