%PDF- %PDF-
| Direktori : /home/bitrix/www/local/components/p4/casting.list/ |
| Current File : //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();