Цитата |
---|
sales@it-openspace.ru написал: Ранее был так оформлен код <?php AddEventHandler("tasks", "OnTaskAdd",array("AddAuditors","AudHandler")); class AddAuditors { function AudHandler($ID, $arFields) { CModule::IncludeModule('tasks'); if(!isset($arFields["AUDITORS"])) { $arFields["AUDITORS"] = []; } $arFields["AUDITORS"][] = '664'; $res= ["AUDITORS" => $arFields["AUDITORS"]]; $obTask = new CTasks; $success = $obTask->Update($ID, $res); } } Однако после обновления до php 8.1 сие поделие перестало работать. Если кто использует какие варианты для автоматического добавления в наблюдателей, поделитесь |
нужно конкретизировать function как public static function
Код |
---|
<?php AddEventHandler("tasks", "OnTaskAdd",array("AddAuditors","AudHandler")); class AddAuditors { public static function AudHandler($ID, $arFields) { CModule::IncludeModule('tasks'); if(!isset($arFields["AUDITORS"])) { $arFields["AUDITORS"] = []; } $arFields["AUDITORS"][] = '664'; $res= ["AUDITORS" => $arFields["AUDITORS"]]; $obTask = new CTasks; $success = $obTask->Update($ID, $res); } } |
и в php 8.1+ все будет работать
хотя не понятно зачем здесь вводить класс и метод. проще так:
Код |
---|
AddEventHandler("tasks", "OnTaskAdd", function ($ID, $arFields) { CModule::IncludeModule('tasks'); if(!isset($arFields["AUDITORS"])) { $arFields["AUDITORS"] = []; } $arFields["AUDITORS"][] = '777'; $res= ["AUDITORS" => $arFields["AUDITORS"]]; $obTask = new CTasks; $success = $obTask->Update($ID, $res); }); |