Skip to content

A bundle to integrate h5p into your Symfony project.

License

Notifications You must be signed in to change notification settings

Emmedy/h5p-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e9baec8 · Nov 21, 2024
Nov 10, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Nov 21, 2024
Sep 16, 2024
Dec 19, 2019
Nov 5, 2024
Sep 26, 2023
Dec 29, 2019
Nov 21, 2024
Nov 21, 2024
Aug 31, 2023
Nov 5, 2024

Repository files navigation

H5PBundle

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 emmedy/h5p-bundle

Enable the bundle in AppKernel.php

return [
// ...
    \Emmedy\H5PBundle\EmmedyH5PBundle::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

emmedy_h5p.demo:
    resource: "@EmmedyH5PBundle/Resources/config/routing_demo.yml"
    prefix:   /

emmedy_h5p:
    resource: "@EmmedyH5PBundle/Resources/config/routes.yaml"
    prefix:   /

emmedy_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:
    emmedy_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 > h5pBundle.yml.

emmedy_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 .