Блог специалистов
31.07.2015

Форма обратной связи на инфоблоках

На редакции Старт нет модуля веб-форм, но на инфоблоках можно сделать фому ничуть не хуже, а где-то и лучше. Что делаем:

1. Создаем инфоблок с нужными свойствами (полями), на нужную страницу выводим форму Добавения элемента инфоблока.
2. Создаем Почтовое событие, например, ADD_ZAMER (Форма заказа замера)
3. Создаем Почтовый шаблон и в теле пишем #TEXT#, заполняем тему и нужные емайлы в соответствующих полях.
3. Заходим в init.php и вставляем код, отредактировав под свой инфоблок:

AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));
class MyClass
{
// создаем обработчик события "OnAfterIBlockElementAdd"
function OnAfterIBlockElementAddHandler($arFields)
{
if ($arFields["IBLOCK_ID"] == 8) // вставляем ID нашего инфоблока
{

//эта функция GetIBlockElement устарела и может не работать на более новых версиях Битрикс:
$arIBlockElement = GetIBlockElement($arFields["ID"]);

//если она не работает тогда используем эту:
//-----------------
$rs = CIBlockElement::GetList(array(), array("ID"=>$arFields["ID"]), false, array("nTopCount"=>1));
if($obRes = $rs->GetNextElement())
{ $arIBlockElement = $obRes->GetFields();
$arIBlockElement["PROPERTIES"] = $obRes->GetProperties();
}
//-----------------

$arSend = array('TEXT' =>
//$arFields['NAME'].'Ссылка: http://тут списать свой домен/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=12&type=catalogs&ID='.$arFields['ID'] // ссылка на элемент в админку, тип catalog менять тоже на свой
'ФИО: '.$arFields['NAME'].'
Сообщение: '.$arFields['PREVIEW_TEXT'].'
Телефон: '.$arIBlockElement['PROPERTIES']['TELE']['VALUE'].' // выводим свойство элемента
E-mail: '.$arIBlockElement['PROPERTIES']['EMAI']['VALUE']); // выводим свойство элемента
CEvent::Send('ADD_ZAMER',SITE_ID,$arSend);
}
}
}
Форма готова.

Количество показов: 3161




Возврат к списку