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