Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Добавление элемента ИБ

00 голосов
5
Создал новый тип информационного блока. Задача при нажатии кнопки "добавить" запускать скрипт, который будет получать данные с информационного сервиса, и на их основе создавать новый элемент ИБ.
Планирую добавить обработчик события:
<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));

class MyClass
{
// создаем обработчик события "OnBeforeIBlockElementAdd"
function OnBeforeIBlockElementAddHandler(&$arFields)
{
if(strlen($arFields["CODE"])<=0)
{
global $APPLICATION;
$APPLICATION->throwException("Введите мнемонический код.");
return false;
}
}
}
?>
В нём добавить элемент, поля которого будут наполнятся результатом работы скрипта, и затем редиректить обратно на страницу, где выводится список элементов.
Подскажите пожалуйста, как определить обработчик для конкретного ИБ, или он распространяется на все?
спросил 20 Ноя, 13 от xARCHx (240 баллов)

5 Ответы

00 голосов
В обработчике делайте проверку поля IBLOCK_ID. Иначе никак.
ответил 11 Янв, 14 от Pomnep (13,960 баллов)
00 голосов
Спасибо, с эти разобрался, только обработчик включается после нажатия
"сохранить", а как вызвать его при нажатии кнопки "добавить"?
ответил 28 Апр, 14 от xARCHx (240 баллов)
00 голосов
Цитата
Иван Онищенко пишет:
Спасибо, с эти разобрался, только обработчик включается после нажатия
"сохранить", а как вызвать его при нажатии кнопки "добавить"?

В смысле?
ответил 24 Авг, 14 от Pomnep (13,960 баллов)
00 голосов
Добавление происходит через компонент "Список своих элементов", если мы жмем добавить, то открывается форма с полями для заполнения, а когда жмем СОхранить, то сробатывает событие.
В принципе так и надо, а как получить данные выбранные в полях этой формы, они буду учавствовать в запросе?
ответил 29 Дек, 14 от xARCHx (240 баллов)
00 голосов
Распечатайте массивы $arFields и $_POST (или $GET, в зависимости от формы) в обработчике и посмотрите, приходят ли нужные данные
Код
print_r($arFields)
ответил 17 Апр, 15 от Ahbar (820 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 30 Янв, 14 от Taran7 (100 баллов)
0 голосов
4 ответов
0 голосов
2 ответов
спросил 29 Апр, 14 от Canon (260 баллов)
0 голосов
3 ответов
0 голосов
3 ответов