%PDF- %PDF-
| Direktori : /home/bitrix/www/local/components/p4/casting.item/ |
| Current File : //home/bitrix/www/local/components/p4/casting.item/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/* @var array $arParams */
/* @var array $arResult */
/* @global CMain $APPLICATION */
/* @global CUser $USER */
$arResult['APP_RESULT']['OK'] = true;
if ($_SERVER["REQUEST_METHOD"]=="POST" && isset($_REQUEST['FEEDBACK_CASTING_ID']) && intval($_REQUEST['FEEDBACK_CASTING_ID'])>0)
{
if (!isset($arParams['V2']) || $arParams['V2'] != 'Y')
{
$arResult['APP_RESULT']['OK'] = false;
$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('APP_UPGRADE');
$this->IncludeComponentTemplate();
return;
}
// Постинг отлика
$_REQUEST['sessid'] = bitrix_sessid(); // Вообще конечно надо бы проверять
$APPLICATION->IncludeComponent("p4:p.castings.feedback", "json", array("IBLOCK_ID" => 14));
}
elseif ($_SERVER["REQUEST_METHOD"]=="POST" && isset($arParams['CASTING_POST']) && $arParams['CASTING_POST']=='Y')
{
// Постинг кастинга
$_REQUEST['sessid'] = bitrix_sessid();
// Преобразование дат из timestamp
if (intval($_POST['CASTING_PROPS']['JOB_DATE'])>0)
$_POST['CASTING_PROPS']['JOB_DATE'] = ConvertTimeStamp($_POST['CASTING_PROPS']['JOB_DATE']);
if (intval($_POST['CASTING_PROPS']['START_DATE'])>0)
$_POST['CASTING_PROPS']['START_DATE'] = ConvertTimeStamp($_POST['CASTING_PROPS']['START_DATE']);
if (intval($_POST['CASTING_PROPS']['END_DATE'])>0)
$_POST['CASTING_PROPS']['END_DATE'] = ConvertTimeStamp($_POST['CASTING_PROPS']['END_DATE']);
if (isset($_POST['CASTING_PROPS']['NUDITY']) && $_POST['CASTING_PROPS']['NUDITY'] != 199)
unset($_POST['CASTING_PROPS']['NUDITY']);
$APPLICATION->IncludeComponent("p4:p.castings.edit", "json", array(
"IBLOCK_ID" => 12,
"PREFIX" => "Vacancy: "
));
}
elseif (isset($_REQUEST['ID'])&&intval($_REQUEST['ID'])>0)
{
// todo Кэширование запросов
$arFilter = array('IBLOCK_ID'=>12, 'ACTIVE'=>'Y', 'ID'=>$_REQUEST['ID']);
$rs = CIBlockElement::GetList(array(), $arFilter);
if ($ob = $rs->GetNextElement())
{
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
// $arResult['APP_RESULT']['FIELDS'] = $arFields;
// $arResult['APP_RESULT']['PROPS'] = $arProps;
$arUser['PROFILE'] = getUserProfile($arFields['CREATED_BY']);
$arResult['APP_RESULT']['ITEM'] = array(
'ID' => $arFields['ID'],
'NAME' => $arFields['NAME'],
'PICTURE' => CFile::GetPath($arFields['DETAIL_PICTURE']),
'CASTING_TEXT' => $arProps['CASTING_TEXT']['VALUE'],
'CITY' => $arProps['CITY']['VALUE'],
'CREATED_BY' => $arUser['PROFILE']['NAME'],
'COMPENSATION' => $arProps['COMPENSATION']['VALUE'],
'COMPENSATION_CURRENCY' => $arProps['COMPENSATION_CURRENCY']['VALUE_ENUM_ID'],
'COMPENSATION_TYPE' => $arProps['COMPENSATION_TYPE']['VALUE_ENUM_ID'],
/*
'CONTACT_COMPANY' => $arProps['CONTACT_COMPANY']['VALUE'],
'CONTACT_EMAIL' => $arProps['CONTACT_EMAIL']['VALUE'],
'CONTACT_NAME' => $arProps['CONTACT_NAME']['VALUE'],
'CONTACT_PHONE' => $arProps['CONTACT_PHONE']['VALUE'],
'CONTACT_SITE' => $arProps['CONTACT_SITE']['VALUE'],
*/
'START_DATE' => MakeTimeStamp($arProps['START_DATE']['VALUE']),
'END_DATE' => MakeTimeStamp($arProps['END_DATE']['VALUE']),
'JOB_DATE' => MakeTimeStamp($arProps['JOB_DATE']['VALUE']),
'GENRES' => $arProps['GENRES']['VALUE_ENUM_ID'],
'NUDITY' => $arProps['NUDITY']['VALUE_ENUM_ID'],
'SEX' => $arProps['SEX']['VALUE_ENUM_ID'],
'TFP' => $arProps['TFP']['VALUE'],
'IS_REPLY' => 'N',
);
if ($USER->IsAuthorized())
{
$userID = $USER->GetID();
if (isset($_REQUEST['FEEDBACK']) && $_REQUEST['FEEDBACK'] === 'Y') // Подгружает отклики для своего кастинга
{
// if ($arFields['CREATED_BY'] == $userID) // todo добавить проверку
{
$arResult['APP_RESULT']['ITEM']['FEEDBACK_ITEMS'] = array();
$arFilter = array('IBLOCK_ID'=>14, 'PROPERTY_VACANCY'=>$_REQUEST['ID']);
$dbFeedback = CIBlockElement::GetList(array('ID'=>'desc'), $arFilter, false, false,
array('ID', 'NAME', 'DATE_CREATE', 'DETAIL_TEXT', 'PROPERTY_USER_ID'));
while ($arFeedback = $dbFeedback->Fetch())
{
$dbProfile = CIBlockElement::GetList(array(),
array("IBLOCK_ID" => IBLOCK_PROFILE_ID, "PROPERTY_ACCOUNT" => $userID, "ACTIVE" => 'Y'),
false, false, array("ID")
);
if ($arProfile = $dbProfile->Fetch())
{
$arResult['APP_RESULT']['ITEM']['FEEDBACK_ITEMS'][] = array(
'ID' => $arFeedback['ID'],
'DATE_CREATE' => MakeTimeStamp($arFeedback['DATE_CREATE']),
'NOTE' => $arFeedback['DETAIL_TEXT'],
'PROFILE_ID' => $arProfile['ID']
);
}
}
}
}
else
{
$arFilter = array('IBLOCK_ID'=>14, 'CREATED_BY'=>$userID, 'PROPERTY_VACANCY'=>$_REQUEST['ID']);
$rs = CIBlockElement::GetList(array(), $arFilter);
if ($rs->Fetch())
$arResult['APP_RESULT']['ITEM']['IS_REPLY'] = 'Y';
}
}
}
else
{
$arResult['APP_RESULT']['OK'] = false;
$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('CASTING_NOT_FOUND');
}
$this->IncludeComponentTemplate();
}
else
{
$arResult['APP_RESULT']['OK'] = false;
$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('CASTING_ID_NOT_DEFINED');
$this->IncludeComponentTemplate();
}