Пользовательские отчёты (custom reports)
Внимание
Чтобы пользоваться этой функцией, включите PimcoreCustomReportsBundle в файле bundle.php и установите его, выполнив команду:
bin/console pimcore:bundle:install PimcoreCustomReportsBundle
Пользовательские отчёты — это движок отчётов, интегрированный в Pimcore. С его помощью можно создавать табличные отчёты, графики или отчёты, содержащие и таблицы, и графики, с возможностью фильтрации и экспорта данных.

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

- 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.jsPHP-класс адаптера: Этот класс отвечает за получение и подготовку опций, колонок и данных отчёта. Он наследует абстрактный класс
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.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.