# [`\Shef\Problems\Integration`] События и меню

> Что модуль регистрирует в ядре при установке. Список — в .settings.php, ключ
installEvents; что каждый обработчик существует, сверяет
tests/settings_test.php.

Что модуль регистрирует в ядре при установке. Список — в `.settings.php`, ключ
`installEvents`; что каждый обработчик существует, сверяет
`tests/settings_test.php`.

| обработчик | событие | что делает |
|---|---|---|
| Main\Events::onPageStart | `main:OnPageStart` | в административной части подключает стили вывода `PrHtml` |
| Main\Events::onEventLogGetAuditTypes | `main:OnEventLogGetAuditTypes` | регистрирует типы событий модуля в журнале событий — их видно в фильтре |

Типы событий журнала — `\Shef\Problems\Main\Constants::getAuditTypeList()`:

| тип | о чём |
|---|---|
| `SH_PROBLEMS_PROBLEM` | проблема общего вида — тип по умолчанию |
| `SH_PROBLEMS_SYNC` | проблема с синхронизацией |
| `SH_PROBLEMS_PRODUCT` | проблема с товаром |
| `SH_PROBLEMS_SALE` | проблема с продажами |

## Меню «Учёт проблем»

**Настройки → Учёт проблем** в административной части, только администратору.
Отдаёт его `admin/menu.php`: ядро подключает этот файл само для каждого
установленного модуля, ничего регистрировать не нужно. Разметку меню строит
`\Shef\Problems\Integration\Main\AdminMenu::build()`.

| пункт | куда ведёт |
|---|---|
| Логи → `[Monolog] …` | каждый файл, который пишут логгеры модуля; фабрика проблем — по файлу на тип |
| Логи → Ошибки PHP, E-mail | `exceptions.log` и `mailer.log`, если проект кладёт их в каталог логов |
| Логи → Все логи | список файлов каталога логов с размером и временем |
| Журнал событий → `[Monolog] …` | журнал, отфильтрованный по типу события |
| Журнал событий → Ошибки платёжных систем | таблица `b_sale_pay_system_err_log`; только если стоит `perfmon` |
| Настройки модуля | страница настроек |

Та же страница логов — по ссылке со страницы настроек модуля, вкладка
«Сотрудники»; там же виден каталог логов.

Логи открываются **страницей модуля** `/bitrix/admin/shef_problems_logs.php`:
каталог логов лежит вне корня сайта, и ни прямая ссылка, ни файловый менеджер
Битрикса до него не дотянутся. Заглушку `/bitrix/admin/shef_problems_logs.php`
пишет установщик — с путём туда, где модуль стоит (`/bitrix/modules` или
`/local/modules`); удаление модуля убирает ровно её и только если это она, а
не файл проекта. Как страница проверяет имя файла — в
[security.md](/modules/problems/security).

## До 2.0.0: shef.uiclear

Раньше те же пункты вешались на верхнюю панель Битрикс24 через событие
`shef.uiclear:onBitrixMenuExtInitTopPanelUserMenu`, и модуль требовал
`shef.uiclear`. С 2.0.0 от него не зависит: меню — штатное, административное.

На портале, обновлённом с 1.x, регистрация того обработчика остаётся: замена
файлов её не снимает. Поэтому класс
`\Shef\Problems\Integration\Shef\UiClear\Events` оставлен заглушкой — отвечает
«нечего добавить» и не падает, — а деинсталляция снимает и эту регистрацию.
Хотите убрать её сразу — переустановите модуль.

[↑ Содержание](/modules/problems) | [def-functions →](/modules/problems/deffunctions)

::note
Источник: [problems/docs/1_events.md](https://github.com/bx-shef/problems/blob/main/docs/1_events.md) — правки туда, сайт пересобирается сам.
::
