%PDF- %PDF-
Mini Shell

Mini Shell

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

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

$arResult['POST_ACTION'] = $arParams['POST_URL'];
$ajaxTemplate = 'ajax-post';

if($_SERVER["REQUEST_METHOD"]=="POST" && check_bitrix_sessid()) { // Постинг отклика

	if (isset($_REQUEST['FEEDBACK_CASTING_ID']) && intval($_REQUEST['FEEDBACK_CASTING_ID'])>0) {
		
		if ($USER->IsAuthorized()) {

			$profile = getUserProfile($USER->GetID());			

			$rsCasting = CIBlockElement::GetByID($_REQUEST['FEEDBACK_CASTING_ID']);
			if ($arCasting = $rsCasting->GetNext()) {
	
				$feebackText = strip_tags($_REQUEST['FEEDBACK_TEXT']);
	
				$arFeedbackFields = array(
					'IBLOCK_ID' => intval($arParams['IBLOCK_ID']),
					'NAME' => $profile['NAME'].' -> #'.$arCasting['ID'],
					'DETAIL_TEXT' => $feebackText,
					'PROPERTY_VALUES' => array('VACANCY' => $arCasting['ID'], 'USER_ID' => $USER->GetID())
				);				
				
				$el = new CIBlockElement;
				if($feebackID = $el->Add($arFeedbackFields,false,false,false))
					$arResult['OK'] = $arFeedbackFields;
				else
				  $arResult['ERRORS'] = GetMessage("ERROR_AT_SAVING").'('.$arParams['IBLOCK_ID'].'): '.$el->LAST_ERROR;
				
				// Обновляем счетчик
				$cnt = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'PROPERTY_VACANCY' => $arCasting['ID']),array());
				CIBlockElement::SetPropertyValuesEx($arCasting['ID'], $arCasting['IBLOCK_ID'], array('FEEDBACK_COUNT'=>$cnt)); 
				
				// Шлем уведомление				
		    $arMessageFields = array(
		       "TO_USER_ID" => $arCasting['CREATED_BY'],
		       "FROM_USER_ID" => 0, 
		       "NOTIFY_TYPE" => IM_NOTIFY_SYSTEM, 
		       "NOTIFY_MODULE" => "im", 
		       "NOTIFY_MESSAGE" => GetMessage("NEW_RESPONSE_FROM").$profile['NAME'].GetMessage("ON_YOUR_VACANCY").'"'.$arCasting['NAME'].'": '.$feebackText
		    );
		    CIMNotify::Add($arMessageFields);

			}
			else $arResult['ERRORS'] = GetMessage("AD").'#'.$_REQUEST['FEEDBACK_CASTING_ID'].GetMessage("FOR_RESPONSE_IS_NOT_FOUND");
			
		}
		else $arResult['ERRORS'] = GetMessage("SENDING_OF_ANONYMOUS_RESPONSES_IS_FORBIDDEN");
	}
	else $arResult['ERRORS'] = GetMessage("NOT_SPECIFIED_AD_ID");	
}

elseif($_SERVER["REQUEST_METHOD"]=="GET" && check_bitrix_sessid()) { // Загрузка списка откликов для вакансии
	
	if (isset($_REQUEST['VACANCY_ID']) && intval($_REQUEST['VACANCY_ID'])>0) {

		$rsList = CIBlockElement::GetList(array('created'=>'DESC'),
			array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'PROPERTY_VACANCY' => $_REQUEST['VACANCY_ID']),false,false,
			array('ID','NAME','CREATED_BY','DATE_CREATE','DETAIL_TEXT'));
		while ($vacancy = $rsList->Fetch()) {
			$vacancy['USER']['PROFILE'] = getUserProfile($vacancy['CREATED_BY']);
			$vacancy['USER']['META'] = getUserMeta($vacancy['CREATED_BY']);
			$arResult['FEEDBACKS'][] = $vacancy;
		}
		
		$ajaxTemplate = 'ajax-list';
	}
	else $arResult['ERRORS'] = GetMessage("NOT_SPECIFIED_AD_ID");	
	
}

if(isset($_REQUEST["ajax"]) && $_REQUEST["ajax"] === "Y") {
	
	$this->setFrameMode(false);
	$APPLICATION->RestartBuffer();
	$this->IncludeComponentTemplate($ajaxTemplate);
	define("PUBLIC_AJAX_MODE", true);
	require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");
	die();
}
else {
	$this->IncludeComponentTemplate();
}

Zerion Mini Shell 1.0