You cannot do that! The Moodle Assignment, Chat and Forum activities are totally unrelated to the H5P plugin.
Joseph Rézeau
Posts made by Joseph Rézeau
Voici mon diagnostic.
- La fonction parse_js_array(string $jscontent): array {} recherche les traductions des chaînes depuis l'anglais vers la langue en cours. Dans les fichiers de langue (par exemple dans le fichier MONMOODLE\h5p\h5plib\v124\joubel\editor\language\fr.js)
- les traductions sont du type
- editCopyright: 'Editer le copyright',
- donc la fonction $splitted = explode(":", $value, 2); donnera ici les 2 éléments,
- identificateur de la chaîne = editCopyright et traduction en français = 'Editer le copyright'
- Jusqu'ici tout va bien...
- Mais, vers la fin de ce fichier de traductions, H5P a récemment (?) rajouté des chaînes qui ne sont utilisées que si on a inscrit son site sur le H5P OER hub (à ne pas confondre avec le H5P hub !
- Malheureusement la chaîne filters contient des sous-chaînes, et c'est ce qui fait planter la fonction $splitted: voici un petit extrait:
- newOnTheHub: 'New on the Hub',
allNew: 'All New',
filterBy: 'Filter by',filter: 'Filter',
filters: {
level: {
dropdownLabel: 'Level',
dialogHeader: 'Select level of education',
dialogButtonLabel: 'Filter level of education',
},
language: {
dropdownLabel: 'Language',
dialogHeader: 'Select language(s)',
dialogButtonLabel: 'Filter languages',
searchPlaceholder: 'Type to search for languages',
}, etc.
- La solution que j'ai proposée a bien pour effet d'annuler l'apparition du message d'erreur de PHP. Mais ça stoppe le déroulement de la fonction foreach ($jsarray as $key => $value). Ce qui finalement n'a peut-être pas d'importance, voir mon paragraphe suivant.
- La question finale est la suivante : est-ce que l'activité H5P intégrée à Moodle permet de souscrire au H5P OER hub? Si oui, il faudra corriger le bug détecté dans le script MONSITEMOODLE\h5p\classes\helper.php; si non, soit on laisse comme ça soit il faut supprimer les chaînes inutiles dans les fichiers de langue du type MONMOODLE\h5p\h5plib\v124\joubel\editor\language\fr.js. Je peux poser la question sur le forum anglophone de Moodle H5P, mais je pense que la réponse est NON, puisque je ne vois aucun paramètre configurable dans ce sens. Contrairement au plugin H5P externe qui, lui, propose l'option. Par ailleurs, le H5P OER hub n'est toujours pas totalement opérationnel (en développement depuis 4 ans)...
Bon, problème identifié, pas bien grave mais je vais le signaler quand même.
Trouvé la question et sa solution sur stackoverflow :
Question: PHP 8.1 has deprecated passing null as parameters to a lot of core functions. My main problem is with functions like htmlspecialchars(php) and trim(php), where null no longer is silently converted to the empty string.
Réponse: PHP 8.1 deprecates these calls, it does not make them errors. The purpose of deprecation is to give authors advance notice to fix their code, so you and the authors of libraries you use have until PHP 9.0 comes out to fix things. So, don't panic that not everything is fixed right away, and be patient with library maintainers, who will get to this in their own time.
The quick fix in most cases is to use the null coalescing operator to provide a default value as appropriate, so you don't need a long null check around every use. For instance, htmlspecialchars($something) can be replaced with htmlspecialchars($something ?? '')
Dans le fichier MONSITEMOODLE\h5p\classes\helper.php ligne 457 (peut varier selon votre version de Moodle), remplacer:
$value = preg_replace("/^['|\"](.*)['|\"]$/", "$1", trim($splitted[1], ' ,'));
par
$value = preg_replace("/^['|\"](.*)['|\"]$/", "$1", trim($splitted[1] ?? '', ' ,'));
CQFD 🤓
Je viens de signaler cette erreur 404 au responsable du site... En attendant,, vous pouvez aller voir le site des "parents" de MIA ici : https://evidenceb.fr/