brnysn/laravel-h5p

无需额外依赖即可为 Laravel 提供的 H5P 集成。

安装: 240

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 0

分支: 20

开放问题: 1

类型:package

1.1.0 2023-09-26 14:45 UTC

This package is auto-updated.

Last update: 2024-09-26 16:57:08 UTC


README

https://github.com/EscolaLMS 分支而来

描述

此包提供了 Laravel API,用于与 H5P 内容交互,无需安装 无关 依赖。

主仓库需要安装 8 个无关的包 - 其中大部分是 escolalms 依赖 -

  • EscolaLms/core
  • EscolaLms/auth
  • EscolaLms/settings
  • EscolaLms/files
  • EscolaLms/categories
  • EscolaLms/model-fields
  • spatie/permission
  • laravel/socialite

原始文档

特性

该库允许无头

  • 播放所有 h5p 内容 - 暴露所有必要数据,但仍需播放器
  • 编辑所有 h5p 内容 - 暴露所有必要数据,但仍需编辑器
  • CRUD 库
  • CRUD 内容
  • .h5p 文件上传库
  • .h5p 文件上传内容

查看 Swagger 记录的端点。

一些 测试 也可以是一个很好的起点。

要播放内容,可以使用 EscolaLMS H5P Player

安装

  1. composer require brnysn/headless-h5p
  2. php artisan migrate
  3. php artisan h5p:storage-link (见下文)

存储链接

您需要发布许多文件以作为公开链接。

php artisan h5p:storage-link 该命令创建从 storage/app/h5vendor/h5p/h5p-corevendor/h5p/h5p-editor 的符号链接,以便公开访问,如下所示

public_path('h5p') => storage_path('app/h5p'),
public_path('h5p-core') => base_path().'vendor/h5p/h5p-core',
public_path('h5p-editor') => base_path().'vendor/h5p/h5p-editor',

CORS

所有端点都需要从其他域访问,因此必须正确设置 CORS

除了端点资产外,还必须暴露 CORS 标头。您可以通过设置 Apache/Nginx/Caddy/Whatever 设置来实现 - 以下为 Nginx 的示例,用于通配符全局访问。

location ~* \.(eot|ttf|woff|woff2|jpg|jpeg|gif|png|wav|mp3|mp4|mov|ogg|webv)$ {
    add_header Access-Control-Allow-Origin *;
}

授权

大多数端点都需要授权,这可以通过 Laravel Passport 实现

存在一个 seeder,必须运行以授权

用户模型来自 Auth 包。

seeder

要种子内容和库

php artisan db:seed --class="\EscolaLms\HeadlessH5P\Database\Seeders\ContentLibrarySeeder"

您可以使用内置的 seeder 命令来种子库和内容,该命令可通过

  • php artisan h5p:seed 仅添加库
  • php artisan h5p:seed --addContent 添加带有库的内容

路线图