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