%PDF- %PDF-
Mini Shell

Mini Shell

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

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

$arResult["BX_SESSION_CHECK"] = bitrix_sessid_post();

// Режим AJAX-подгрузки справочников
if ($arParams['AJAX_REF']=='Y') {	

	$rs = CIBlockProperty::GetByID('COUNTRY', $arParams['IBLOCK_ID']);
	if($ar_res=$rs->GetNext()) {

		if ($_GET['REF']=='STATE')
			$res = CIBlockSection::GetList(Array("SORT"=>"ASC","NAME"=>"ASC"),
				Array("IBLOCK_ID"=>$ar_res['LINK_IBLOCK_ID'], "ACTIVE"=>"Y", "DEPTH_LEVEL"=>2, "SECTION_ID"=>$_GET["SID"]));
		elseif ($_GET['REF']=='CITY')
			$res = CIBlockElement::GetList(Array("SORT"=>"ASC","NAME"=>"ASC"),
				Array("IBLOCK_ID"=>$ar_res['LINK_IBLOCK_ID'], "ACTIVE"=>"Y", "SECTION_ID"=>$_GET["SID"], "INCLUDE_SUBSECTIONS"=>"Y"));	

		?><option value=""></option><?	
		while($ar_result=$res->GetNext()) {
			?><option value="<?=$ar_result['ID']?>"><?=$ar_result['NAME']?></option><?
		}
	}
	return;
}

/*
function checkDateFormat($datetime) {
	$format = "DD.MM.YYYY";
	if ($arr = ParseDateTime($datetime, $format)) return true;
	else return false;
}
*/

function clearDateMask($date) {
	if ($date=="__.__.____") return '';
	else return $date;
}

if($_SERVER["REQUEST_METHOD"]=="POST" && check_bitrix_sessid()) {

	CModule::IncludeModule("bizproc");

	// Валидация полей		
	$_POST['CASTING_PROPS']['JOB_DATE']=clearDateMask($_POST['CASTING_PROPS']['JOB_DATE']);
	$_POST['CASTING_PROPS']['DATE_FROM']=clearDateMask($_POST['CASTING_PROPS']['DATE_FROM']);
	$_POST['CASTING_PROPS']['DATE_TO']=clearDateMask($_POST['CASTING_PROPS']['DATE_TO']);

	$_POST['CASTING']['IBLOCK_ID'] = $arParams['IBLOCK_ID'];
	$_POST['CASTING']['PROPERTY_VALUES'] = $_POST['CASTING_PROPS'];
	//$_POST['CASTING']['ACTIVE'] = 'N';

	$el = new CIBlockElement();
	if($CASTING_ID = $el->Add($_POST['CASTING'])) {
		$arResult['CASTING_ID'] = $CASTING_ID;
		
		// Запускаем БП (дикий костыль, @todo: сделать поиск БП с автозапуском)
		$arErrorsTmp = array();
		CBPDocument::StartWorkflow(4,array("iblock", "CIBlockDocument", $arResult['CASTING_ID']),array(),$arErrorsTmp);

		if (count($arErrorsTmp) > 0) {
		      $arResult['ERRORS'] = print_r($arErrorsTmp,true);
		}


	} else {
	  $arResult['ERRORS'] = GetMessage("AD_REGISTRATION_ERROR").'<br/>'.$el->LAST_ERROR;
	}

	$arResult['CASTING'] = $_POST['CASTING'];
	$arResult['CASTING_PROPS'] = $_POST['CASTING_PROPS'];
		
}

// Формируем поля-справочники из ИБ
if (CModule::IncludeModule("iblock")) {
	
	// Разделы	
	$res = CIBlockProperty::GetByID('SECTION', $arParams['IBLOCK_ID']);
	if($ar_res = $res->GetNext()) {
		$rs = CIBlockSection::GetList(array('SORT'=>'ASC','NAME'=>'ASC'),array('IBLOCK_ID'=>$ar_res['LINK_IBLOCK_ID'],'UF_PROF'=>1,'ACTIVE'=>'Y'));
		while ($ar = $rs->GetNext()) {
			$arResult['SECTIONS'][$ar['ID']] = $ar['DESCRIPTION'];
		}
	}

	// Обнаженка
	$property_enums = CIBlockPropertyEnum::GetList(Array('SORT'=>'ASC'), Array('IBLOCK_ID'=>$arParams['IBLOCK_ID'], 'CODE'=>'NUDITY'));
	while($enum_fields = $property_enums->GetNext()) {
		$arResult['NUDITY'][$enum_fields['ID']] = $enum_fields['VALUE'];
	}
	
	// Компенсация валюта
	$property_enums = CIBlockPropertyEnum::GetList(Array('SORT'=>'ASC'), Array('IBLOCK_ID'=>$arParams['IBLOCK_ID'], 'CODE'=>'COMPENSATION_CURRENCY'));
	while($enum_fields = $property_enums->GetNext()) {
		$arResult['CURRENCY'][$enum_fields['ID']] = $enum_fields['VALUE'];
	}	

	// Компенсация за какую норму
	$property_enums = CIBlockPropertyEnum::GetList(Array('SORT'=>'ASC'), Array('IBLOCK_ID'=>$arParams['IBLOCK_ID'], 'CODE'=>'COMPENSATION_TYPE'));
	while($enum_fields = $property_enums->GetNext()) {
		$arResult['COMPENSATION_TYPE'][$enum_fields['ID']] = $enum_fields['VALUE'];
	}	

	// Пол
	$property_enums = CIBlockPropertyEnum::GetList(Array('SORT'=>'ASC'), Array('IBLOCK_ID'=>$arParams['IBLOCK_ID'], 'CODE'=>'SEX'));
	while($enum_fields = $property_enums->GetNext()) {
		$arResult['SEX'][$enum_fields['ID']] = $enum_fields['VALUE'];
	}
	
	// Страны
	$res = CIBlockProperty::GetByID('COUNTRY', $arParams['IBLOCK_ID']);
	if($ar_res = $res->GetNext()) {
		$rs = CIBlockSection::GetList(array('SORT'=>'ASC','NAME'=>'ASC'),array('IBLOCK_ID'=>$ar_res['LINK_IBLOCK_ID'],'SECTION_ID'=>false,'ACTIVE'=>'Y'));
		while ($ar = $rs->GetNext()) {
			$arResult['COUNTRY'][$ar['ID']] = $ar['NAME'];
		}
	}
	
	// Имя и емайл
	if ($USER->GetID()>0) {
		if (strlen($arResult['CASTING_PROPS']['CONTACT_NAME'])==0) {
			$profile = getUserProfile($USER->GetID());
			$arResult['CASTING_PROPS']['CONTACT_NAME'] = $profile['NAME'];	
		}
		if (strlen($arResult['CASTING_PROPS']['CONTACT_EMAIL'])==0) {
			$arResult['CASTING_PROPS']['CONTACT_EMAIL'] = $USER->GetEmail();			
		}
		
		$arResult['NO_EDIT'] = 'Y';
	}

}

/* ?><pre><? print_r($arResult); ?></pre><? // */
	
if (intval($arResult['CASTING_ID'])>0 && strlen($arParams['OK_URL'])>0) {
	header("Location: ".$arParams['OK_URL'].'&POST_ID='.$arResult['CASTING_ID']);
}
else {
	$this->IncludeComponentTemplate();
}

Zerion Mini Shell 1.0