В install/index.php модуля надо зарегистрировать зависимость с помощью вот этой функции
https://dev.1c-bitrix.ru/api_help/main/functions/m...
А файл класть в lib/ чтобы работала автозагрузка классов битрикса
Пример:
В install/index.php
function InstallEvents()
{
RegisterModuleDependences('search', 'BeforeIndex', 'mymodule.smartsearch', '\\MyModule\\SmartSearch\\EventHandler', 'BeforeIndex');
}
function UnInstallEvents()
{
UnRegisterModuleDependences('search', 'BeforeIndex', 'mymodule.smartsearch', '\\MyModule\\SmartSearch\\EventHandler', 'BeforeIndex');
}
В libs/ файл eventhandler.php с содержимым
namespace MyModule\SmartSearch;
class EventHandler
{
function BeforeIndex($arFields)
{
\CModule::IncludeModule("iblock");
if ($arFields["MODULE_ID"] == "iblock") {
$result = \CIBlockElement::GetByID($arFields["ITEM_ID"]);
if ($element = $result->Fetch()) {
$arFields['PARAM1'] = $element['IBLOCK_SECTION_ID'];
}
}
return $arFields;
}
}