Перейти к основному содержимому

Пользовательские отчёты (custom reports)

Внимание

Чтобы пользоваться этой функцией, включите PimcoreCustomReportsBundle в файле bundle.php и установите его, выполнив команду:

bin/console pimcore:bundle:install PimcoreCustomReportsBundle

Пользовательские отчёты — это движок отчётов, интегрированный в Pimcore. С его помощью можно создавать табличные отчёты, графики или отчёты, содержащие и таблицы, и графики, с возможностью фильтрации и экспорта данных.

Пользовательские отчёты

Данные для отчётов поставляются адаптером источника (source adapter), который отвечает за получение и подготовку данных отчёта. По умолчанию в Pimcore поставляются два адаптера:

  • SQL: получает данные на основе SQL-запроса. Настройка Custom Reports
  • Google Analytics: получает данные из Google Analytics; доступен только если
    • включён соответствующий PimcoreGoogleMarketingBundle.

Права доступа к пользовательским отчётам

Можно задать, кто видит определённый отчёт. Доступны следующие варианты:

  • Share globally: отчёт виден всем пользователям, у которых есть разрешение reports.
  • Visible to users: отчёт виден только перечисленным пользователям.
  • Visible to roles: отчёт виден пользователям с указанными ролями.

Создание собственных адаптеров источника данных

Для специальных сценариев можно реализовать собственные адаптеры. Основные шаги:

  • JavaScript-класс: этот класс определяет пользовательский интерфейс в настройках пользовательского отчёта. Он должен быть расположен в неймспейсе pimcore.bundle.customreports.custom.definition с именем класса, соответствующим адаптеру (напр. pimcore.report.custom.definition.mySource) и реализовывать методы initialize, getElement и getValues. Как пример см. sql.js

  • PHP-класс адаптера: Этот класс отвечает за получение и подготовку опций, колонок и данных отчёта. Он наследует абстрактный класс Pimcore\Model\Tool\CustomReport\Adapter\AbstractAdapter (или реализовывает интерфейс Pimcore\Model\Tool\CustomReport\Adapter\CustomReportAdapterInterface). Как пример см. Analytics adapter и Sql adapter.

  • Регистрация фабрики адаптеров как сервис

    • Если ваш адаптер — простой класс без параметров внедрения зависимостей (DI), можно использовать готовую фабрику DefaultCustomReportAdapterFactory , передав полностью квалифицированное имя класса адаптера (FQN) в качестве аргумента.

      app.custom_report.adapter.factory.custom:  
      class: Pimcore\Bundle\CustomReportsBundle\Tool\Adapter\DefaultCustomReportAdapterFactory
      arguments:
      - 'App\CustomReport\Adapter\Custom'

    • Если адаптер сложнее (требует DI), создайте свою фабрику, реализовав интерфейс Pimcore\Bundle\CustomReportsBundle\Tool\Adapter\CustomReportAdapterFactoryInterface

  • обавьте фабрику адаптера в конфигурацию:

pimcore_custom_reports:  
adapters:
myAdapter: app.custom_report.adapter.factory.custom

Пользовательский JS-класс для визуализации отчётов

Если необходимо полностью кастомизировать внешний вид отчёта в бэкенде Pimcore, можно указать собственный JavaScript-класс, который будет использоваться при открытии отчёта. В опции Report Class укажите путь к своему классу. Этот класс должен расширять стандартный JS-класс отчётов: pimcore.bundle.customreports.custom.report.


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.