У меня возникла проблема с реализацией AJAX‑эндпоинта для получения статистики по выбранному диапазону дат. По умолчанию стандартные периоды (Сегодня, Вчера, Неделя, Всего) отображаются корректно, но когда я пытаюсь получить данные по произвольному диапазону (через GET‑параметры start и end), возвращается ошибка 404.
в grid_adblock.php
добавил
'title' => 'Статистика', 'class' => 'view ajax-modal', )
Появляется модальное окно.
Я создал файл с названием adblock_statistics_ajax.php в каталоге
/system/controllers/adsman/backend/actions/
и внутри файла объявил класс:
<?php class actionAdsmanAdblockStatisticsAjax extends cmsAction { public function run($id) { if (!$this->request->isAjax()) { cmsCore::error404(); } $start = $this->request->get('start', ''); $end = $this->request->get('end', ''); return $this->cms_template->renderJSON(['error' => 'Начальная и конечная даты обязательны.']); } try { $result = $this->model->getRangeStatistics($id, $start, $end); if (!$result) { $result = ['hits' => 0, 'click' => 0]; } return $this->cms_template->renderJSON($result); } catch (Exception $e) { return $this->cms_template->renderJSON(['error' => $e->getMessage()]); } } }
В методе вызывается метод модели getRangeStatistics, который дополняет переданные даты до «00:00:00» и «23:59:59» и возвращает сумму значений в колонках hits_count и click_count.
Маршрутизация:
URL для AJAX‑запроса формируется функцией href_to
Однако, при прямом обращении по полученному URL, например:
https://example.com/admin/adsman/adblock_statistics_ajax/2?start=2025-01-01&end=2025-10-10
возвращается ошибка 404.
Какие ещё возможны причины, по которым файл моего AJAX‑эндпоинта не находится системой?
Как правильно настроить маршрутизацию для такого эндпоинта, чтобы URL, сформированный через href_to, корректно указывал на мой файл adblock_statistics_ajax.php?
Может ли проблема быть связана с значением $this->controller->root_url или с какими-либо настройками системы, влияющими на поиск файлов в каталоге /system/controllers/adsman/backend/actions/?
Буду благодарен за любые советы или решения, которые помогут устранить ошибку 404 для моего AJAX‑эндпоинта и правильно получать данные по произвольному диапазону дат.