Здравствуйте! Хочу организовать на основе инфоблоков и веб-форм систему отзывов об организациях представленных на сайте. Для этого создал первым делом инфобок "организации", список и детальный просмотр организаций выполнен на основе компонента news.list и news.detail. Затем создал ещё один инфоблок "Отзывы" в котором создал поле "Привязка к элементу" для связи отзывов и организаций. Далее создал веб-форму с двумя полями "Имя" и "Отзыв" и кнопкой "Добавить". Далее в файле /bitrix/php_interface/init.php создал событие для обработки этой формы:
[CODE] //События для формфы отзывы организации
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
function my_onBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES)
{
global $APPLICATION;
// действие обработчика распространяется только на форму с ID=3
if($WEB_FORM_ID==3) {
$el = new CIBlockElement;
$datetime = date("d.m.Y H:i:s");
$PROP = array();
$PROP['ORGANIZATION'] = $_POST["ORGANIZATION_ID"]; // ID организации про которую пишут отзыв
$PROP['USER_RW'] = $_POST["USER_RV_ID"]; // ID пользователя который пишет отзыв
//Если отзывы больше 499 символом он не публикуется, а отправляется на проверку модератору сайта
if(count($_POST["form_textarea_30"])>499) {$active = "N";} else {$active="Y";}
$arLoadProductArray = Array(
"MODIFIED_BY" => $_POST["USER_RV_ID"], // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 37, //Инфоблок "Отзывы организации"
"PROPERTY_VALUES"=> $PROP,
"NAME" => "Отзыв от ".$_POST['form_text_29']." (".$datetime.")",
"ACTIVE" => $active, // активен
"PREVIEW_TEXT" => $_POST["form_textarea_30"],
"DETAIL_TEXT" => $_POST["form_textarea_30"]
);
if($REVIEW_ID = $el->Add($arLoadProductArray))
echo $satus = "New ID: ".$REVIEW_ID;
else
echo $satus = "Error: ".$el->LAST_ERROR;
$massege = '
<div>WebForm ID: '.$WEB_FORM_ID.'</div>
<div>Name: '.$_POST["form_text_29"].'</div>
<div>Review: '.$_POST["form_textarea_30"].'</div>
<div>ID org.:'.$_POST["ORGANIZATION_ID"].'</div>
<div>ID user.:'.$_POST["USER_RV_ID"].'</div>
<div>Status: '.$satus.' </div>
';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: www.site.ru <robot@site.ru>' . "\r\n";
mail("myemail@yandex.ru","test review form" ,$massege,$headers);
}
} [/CODE](пока всё отсылается на почту, для контроля переданных данных), всё работает если я авторизован под админом или пользователем из группы администраторы. При попытки оставить отзыв из под обычного пользователя - ничего не происходит. Я уже все доступы открыл и для инфоблока "Отзывы" [url]http://myscreenshot.info/i/0002/953121366877123448214816146290.png[/url] и для формы отзывов [url]http://myscreenshot.info/i/0002/904301366876897806124971960091.png[/url]. Всё равно ничего не отправляет ((( Не пойму почему. Точнее сказать данные с формы уходят [url]http://myscreenshot.info/i/0002/228841366877398900199121627828.png[/url] но событие созданное в init.php - не отрабатывает. Почему? Заранее спасибо!