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

Обработка событий

00 голосов
4
Мне нужно получаить значение определенного свойства элемента по собыьтию.
Следуюший код не записывает в лог ничего.
Код
class MyClass
{
    function OnAfterIBlockElementUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"]){
         
         CModule::IncludeModule("iblock");
         $ID=2;//$arFields["ID"];
         $arIBlockElement=GetIBlockElement($ID);
         AddMessage2Log($arIBlockElement['PROPERTIES']['AUTHOR']['~VALUE']);
   
         }
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}


Хотя если писать чё нить другое, то в лог по событию это пишется.

Сам код
Код
         CModule::IncludeModule("iblock");
         $ID=2;//$arFields["ID"];
         $arIBlockElement=GetIBlockElement($ID);
         AddMessage2Log($arIBlockElement['PROPERTIES']['AUTHOR']['~VALUE']);

рабочий и из простого пхп файла работает.
спросил 23 Сен, 13 от Oke (160 баллов)

4 Ответы

00 голосов
А само событие Вы не забыли назначить?
ответил 01 Окт, 13 от SILVER (340 баллов)
00 голосов
Цитата
Вадим Абрамов пишет:
А само событие Вы не забыли назначить?

Код
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass", "OnAfterIBlockElementUpdateHandler"));


Не забыл. Событие срабатывает. Если писать
Код
AddMessage2Log("asdsdfg");
, то в лог это попадает.
ответил 01 Янв, 14 от Oke (160 баллов)
00 голосов
А вот так вот работает в событии:
Код
 $res=CIBlockElement::GetProperty(2, 2, "sort", "asc", Array("CODE"=>"AUTHOR"));
 $arr = $res->Fetch();
 AddMessage2Log($arr["VALUE"]);

Непонятно, почему с той функцией не получается...
ответил 17 Апр, 14 от Oke (160 баллов)
00 голосов
Отладка -- дело кучерявое.

Убедитесь, что метод вашего класса вообще вызывается.

Убедились, что пытаетесь записать в лог что-то осмысленное:
Код
AddMessage2Log("\nВот эту строку я жду: ".$arIBlockElement['PROPERTIES']['AUTHOR']['~VALUE']); 
ответил 10 Авг, 14 от Ly (4,580 баллов)

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

0 голосов
0 ответов
0 голосов
3 ответов
спросил 02 Сен, 13 от Kusuri (180 баллов)
0 голосов
5 ответов
спросил 21 Ноя, 13 от MAZA (100 баллов)
0 голосов
2 ответов
спросил 19 Окт, 13 от DrakO48 (120 баллов)