%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/p4/casting.item/
Upload File :
Create Path :
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();
}

Zerion Mini Shell 1.0