jorisdugue / h5p-bundle
H5P Bundle for Symfony 5, 6 and Symfony 7
Installs: 29 790
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 3
Forks: 16
Open Issues: 0
Type:symfony-bundle
Requires
- php: >= 8.1
- composer-runtime-api: ^2
- ext-json: *
- doctrine/doctrine-bundle: ^2.13
- doctrine/orm: ~2.0|~3.0
- guzzlehttp/guzzle: ^7.9
- h5p/h5p-core: 1.27
- h5p/h5p-editor: ^1.25
- symfony/asset: ~6.0|~7.0
- symfony/form: ~6.0|~7.0
- symfony/framework-bundle: ~6.0|~7.0
- symfony/intl: ~6.0|~7.0
- symfony/security-bundle: ~6.0|~7.0
- symfony/serializer: ~6.0|~7.0
- twig/extra-bundle: ^3.0
Requires (Dev)
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^11.4
- dev-master
- v3.x-dev
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.2.1
- 2.2.0
- 2.1.0
- v2.0.2
- v2.0.1
- v2.0.0
- v1.9.0
- v1.8.0
- v1.7.4
- v1.7.3
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.9
- v1.6.8
- v1.6.7
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- dev-feat/h5p-missing-options
- dev-feat/dev-h5p
- dev-testingSF6
This package is auto-updated.
Last update: 2025-03-11 17:29:48 UTC
README
Bundle to integrate H5P into Symfony. This bundle is a port of the H5P Drupal module. For more info about H5P see H5P.org
This bundle was tested on :
- Symfony 4.X
- Symfony 5.X,
- Symfony 6.X,
- Symfony 7.X-dev
Version Supported | Symfony 3 | Symfony 4 | Symfony 5 | Symfony 6 | Symfony 7 |
---|---|---|---|---|---|
3.X | ❌ | ❌ | ❌ | ✅ | ✅ |
2.X | ❌ | ❌ | ✅ | ✅ | ❌ |
1.X | H5PBundle for Symfony 2.X and 3.X | ✅ | ✅ | ❌ | ❌ |
Prerequisite
You need install orm before running this installation
composer require orm
Installation
Install with composer
composer require jorisdugue/h5p-bundle
Enable the bundle in AppKernel.php
return [ // ... \Studit\H5PBundle\StuditH5PBundle::class => ['all' => true] ]
Warning for Windows : You need launch the cmd in administrator or using option -c
Add the H5P assets to the bundle
php bin/console h5p-bundle:IncludeAssetsCommand php bin/console assets:install --symlink
and reexecute ...
# For linux and mac only or windows admin php bin/console h5p-bundle:IncludeAssetsCommand # For all without admin perms php bin/console h5p-bundle:IncludeAssetsCommand -c
Add required tables and relations to the database
php bin/console doctrine:schema:update --force
or
php bin/console make:migrations
Enable the routing in routes.yaml
studit_h5p.demo: resource: "@StuditH5PBundle/Resources/config/routing_demo.yml" prefix: / studit_h5p: resource: "@StuditH5PBundle/Resources/config/routes.yaml" prefix: /
studit_h5p.demo is optional. It can be used as an example how to use H5P within Symfony and test if this bundle is working properly.
Configuration
For SF4:
Configure the bundle in services.yaml
. (Watch for the underscore between h5 and p)
parameters: studit_h5_p: use_permission: true # This is false by default to let the demo work out of the box. storage_dir: / # Location to store all H5P libraries and files web_dir: public # Location of the public web directory export: 3 #for all embed: 3 #for all
For Symfony 5:
Configure the bundle in packages > studit_h5_p.yaml
.
studit_h5_p: use_permission: true # This is false by default to let the demo work out of the box. storage_dir: / # Location to store all H5P libraries and files web_dir: public # Location of the public web directory export: 3 #for all embed: 3 #for all
For all configurations see Configuration.php
if you are using permissions here is the current list of permissions in the bundle :
Permission | Description |
---|---|
ROLE_H5P_DOWNLOAD_ALL | Download the H5P packages |
ROLE_H5P_EMBED_ALL | Embed/Share to everyone the H5P |
ROLE_H5P_CREATE_RESTRICTED_CONTENT_TYPES | Restrict for user the type install |
ROLE_H5P_UPDATE_LIBRARIES | Allow/Disallow the update of package H5P |
ROLE_H5P_INSTALL_RECOMMENDED_LIBRARIES | Allow/Disallow to install libraries |
ROLE_H5P_COPY_ALL | Allow/Disallow to copy H5P (If you want to Download, you must install to have this role too) |
Usage
First add a virtual host that points to you project. Then in your browser go to http://<your virtualhost>/h5p/list
Todo
Working:
- Store usage data and points (only if user is connected)
- Download a H5P
- Upload H5P
- Update / Install H5P library
- Store usage data and points
Not everything is ported yet. The following things still need to be done:
- Upload library. Currently only H5P default libraries can be selected from Hub. (need custom h5p for testing )
Changelog:
- Using dev version with restrict tag for prevent Break Change
- Implement missing road and resolve compatibility of H5P-editor
- Fix bug and update the readme
- Fix many bug ... and update to SF5 :)
- Fix bug with missing link img
- Fix Download package
- Store usage data and points
Developing:
Run the static analyzer like that:
php -d memory_limit=-1 vendor/bin/phpstan.phar analyze .