escolalms/templates-pdf

适用于生成 PDF 的 Escola Headless LMS 模板

安装次数: 7,503

依赖项: 1

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:软件包

0.1.24 2024-03-06 13:35 UTC

README

用于从可配置模板生成 PDF 的软件包。

swagger codecov Tests PHPUnit in environments Maintainability Test Coverage downloads downloads downloads

目的

此软件包允许您在 Laravel / LMS 应用中触发特定事件后创建 PDF。

每个 PDF 模板都有一个相应的类,该类描述了可以在模板中使用的变量(这些变量将存储在数据库中,并通过管理员面板进行编辑)。模板以包含这些变量的序列化 fabric.js 画布的形式保存,在 PDF 生成期间将用从事件中提取的正确数据替换这些变量。

描述模板变量的类必须使用来自 EscolaLms\Template 软件包的模板外观进行注册,其中您指定它关联的事件以及它通过哪个频道发送(例如,EscolaLms\TemplatesPdf\Core\PdfChannel,该频道在本软件包中定义)。

安装

  • composer require escolalms/templates-pdf
  • php artisan db:migrate
  • php artisan db:seed --class="EscolaLms\TemplatesPdf\Database\Seeders\TemplatesPdfSeeder" 以创建所有已注册变量/事件对的默认模板

依赖关系

  • EscolaLms\Templates 核心模板软件包
  • 可选:EscolaLms\Courses 用于生成与课程相关的 PDF

用法

定义模板

  1. 创建一个触发使用指定模板生成 PDF 的事件。此事件必须实现返回 LMS 核心软件包中用户模型的 getUser() 方法。
  2. 创建一个定义模板变量的类,您将在 PDF 模板中使用它。
  3. 将您的模板变量描述类与正确的事件和频道关联。使用 EscolaLms\Templates\Facades\Template::register(Event class, EscolaLms\TemplatesPdf\Core\PdfChannel::class, Variable class); 方法。
  4. 使用管理员面板或 /api/admin/templates 网络 API 创建/编辑与该变量/事件/频道集关联的模板。有关更多信息,请参阅 模板软件包

测试

运行 ./vendor/bin/phpunit --filter 'EscolaLms\\TemplatesPdf\\Tests' 以运行测试。请参阅 tests 文件夹,其中包含 Variables 类的基本实现(描述模板可以/必须包含的内容)以及最小的自定义 - 创建您自己的良好起点。

测试详情:Maintainability Test Coverage

前端使用

管理员面板

左侧菜单

Menu

模板列表

List of templates

创建/编辑模板

Creating/editing template

权限

权限在 Enum 中定义,并在 Seeder 中播种。

路线图。待办事项。故障排除

  • ???