heimrichhannot / contao-exporter-bundle
将任何contao实体导出为文件的后端模块。
Requires
- php: ^7.4 || ^8.0
- box/spout: ^2.7
- contao/core-bundle: ^4.9
- heimrichhannot/contao-field-value-copier-bundle: ^1.1
- heimrichhannot/contao-multi-column-editor-bundle: ^1.2 | ^2.0
- heimrichhannot/contao-utils-bundle: ^2.207
- symfony/cache: ^4.4 || ^5.2
- symfony/config: ^4.4||^5.4
- symfony/console: ^4.4||^5.4
- symfony/dependency-injection: ^4.4||^5.4
- symfony/event-dispatcher: ^4.4||^5.4
- symfony/event-dispatcher-contracts: ^1||^2||^3
- symfony/http-foundation: ^4.4||^5.4
- symfony/http-kernel: ^4.4||^5.4
- symfony/translation: ^4.4||^5.4
- symfony/translation-contracts: ^1.1.6||^2||^3
Suggests
- mpdf/mpdf: ^7.0 for pdf export
Replaces
This package is auto-updated.
Last update: 2024-09-08 13:03:20 UTC
README
一个将任何contao实体导出为文件的模块。
导出配置预览
功能
- 导出实体和实体列表
- 轻松将后端模块添加到您的应用程序/扩展,或使用前端模块
- 可扩展的导出架构
- 包含的导出器
- CSV
- Excel (xlsx)
- 媒体文件(将关联实体的媒体文件作为存档(zip)导出)
Csv和Excel导出由Spout库归档。PDF导出由mPDF库归档。此库不是作为依赖项提供的,因此必须将其添加到您的捆绑包/项目依赖项中,以实现PDF导出功能。
技术说明
安装
使用composer安装
composer require heimrichhannot/contao-exporter-bundle
如果您想使用PDF导出器,请将"mpdf/mpdf":"^7.0"
添加到您的composer依赖项。
后端导出
步骤1
按照如下方式在实体dca中定义您的全局操作
'global_operations' => [ 'export_csv' => \Contao\System::getContainer()->get('huh.exporter.action.backendexport') ->getGlobalOperation('export_csv',$GLOBALS['TL_LANG']['MSC']['export_csv']) ],
步骤2
按照如下方式在实体的config.php中添加您的后端模块
$GLOBALS['BE_MOD']['mygroup']['name'] = [ 'export_csv' => ['huh.exporter.action.backendexport', 'export'], 'tables' => ['tl_name'], ];
步骤3
使用导出器的后端模块(组devtools)创建导出配置。
前端
您可以使用内置的前端模块添加简单的导出功能。
您还可以使用frontendedit或formhybrid_list轻松创建一个模块,用于在前端操作您的实体。它已经包含了一个在提交后导出实体的功能!
您还可以为您的扩展创建自定义实现
- 使用导出器的后端模块(组devtools)创建导出配置。
- 在您的模块中调用
huh.exporter.action.frontendexport
服务的export()
/** @var Symfony\Component\DependencyInjection\ContainerInterface $container */ $container->get('huh.exporter.action.export')->export($config: ExporterModel, $entity: int|string, $fields = []: array);
开发者
从导出模块升级
请参阅升级说明。
事件
您可以通过给定的事件挂钩到导出。如果您不知道如何操作,请参阅Symfony事件文档。
添加自定义导出器
您可以通过添加自定义导出器来添加额外的文件类型或功能。
您的导出器类必须实现ExporterInterface
,并且必须使用huh_exporter.exporter
服务标记在容器中注册。我们建议扩展AbstractExporter
,因为它已经实现了大部分的机制。
services:
_defaults:
autowire: true
_instanceof:
HeimrichHannot\ContaoExporterBundle\Exporter\ExporterInterface:
tags: ['huh_exporter.exporter']
lazy: true
Your\Exporter\Class: ~
自定义字段选择
您可以将字段数组传递给导出器的export()
。在导出项目时将使用这些字段。
有两种选项
- 字段名称列表。例如:
['firstname','lastname','age']
- 带有标签和值的字段列表。应按照以下结构组织
<?php $fields = [ 'field1' => [ 'raw' => '', // raw field value 'inputType' => '', // field input type 'value' => '', // formatted field value 'formatted' => '', // formatted field value 'label' => '', // formatted field value ], // ... ];
要使用PDF导出,您首先需要安装mPDF。
模板
您可以覆盖pdf输出模板。模板使用Twig编写,名称应以exporter_pdf_
开头。请参阅exporter_pdf_item_default.html.twig
以获取一个工作示例。
字体
要添加自定义Pdf字体,请参阅Utils Bundle文档和mPDF文档中相应的章节。之后,您可以在导出器配置中添加文件夹。