Задать вопрос
@peretc001

Подписать свой модуль на событие Битрикс?

Добрый день.

Подскажите, пожалуйста, как подписать свой модуль на событие?

Все работает, если я напрямую в /local/php_interface/init.php напишу:
AddEventHandler("main", "OnAdminListDisplay", "MyOnAdminListDisplay");
function MyOnAdminListDisplay(&$list)
{
    #Только для разделов инфоблока
    if (strpos($list->table_id, 'tbl_iblock_section') !== false)
    {
        #Добавляем пункт в контекстное меню
        foreach ($list->aRows as $row)
        {
            $row->aActions["archive"]["ICON"] = "";
            $row->aActions["archive"]["TEXT"] = "Удалить весь сайт нахер";
            $row->aActions["archive"]["ACTION"] = "javascript:archive(".$row->id.")";
        }
    }
}


Но мне надо через модуль!

В папке модуля install/index.php регистрирую событие:
function InstallEvents()
	{
		$eventManager = \Bitrix\Main\EventManager::getInstance();
		$eventManager->registerEventHandler(
			'main',
			'OnAdminListDisplay',
			self::MODULE_ID,
			'CKrasovskyEvent',
			'eventHandler'
		);

		return true;
	}


В lib/eventhandler.php
class CKrasovskyEvent
{
    function eventHandler(&$list)
    {
        #Только для разделов инфоблока
        if (strpos($list->table_id, 'tbl_iblock_section') !== false)
        {
            #Добавляем пункт в контекстное меню
            foreach ($list->aRows as $row)
            {
                $row->aActions["archive"]["ICON"] = "";
                $row->aActions["archive"]["TEXT"] = "Удалить весь сайт нахер";
                $row->aActions["archive"]["ACTION"] = "javascript:archive(".$row->id.")";
            }
        }
    }
}


Но событие не работает, подскажите что не так

Вот такой пункт должен появиться
5f05f37a1b5b8175420327.png
  • Вопрос задан
  • 411 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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