Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Pages : 1
Bonjour,
Le passage en PHP 8.0.1 fait planter le plugin "Widgets" avec l'erreur suivante:
[15-Feb-2021 17:47:25 UTC] PHP Fatal error: Uncaught ValueError: func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function in /.../dotclear/plugins/widgets/class.widgets.php:282
Stack trace:
#0 /.../dotclear/plugins/widgets/class.widgets.php(282): func_get_arg(4)
#1 /.../dotclear/plugins/widgets/class.widgets.php(387): dcWidget->setting('title', 'Titre (optionne...', 'Recherche')
#2 /.../dotclear/plugins/widgets/_default_widgets.php(22): dcWidgetExt->addTitle('Recherche')
#3 /.../dotclear/plugins/widgets/_public.php(14): include('/.../dotcl...')
#4 /.../dotclear/inc/core/class.dc.modules.php(731): require('/.../dotcl...')
#5 /.../dotclear/inc/core/class.dc.modules.php(701): dcModules->loadModuleFile('/.../dotcl...')
#6 /.../dotclear/inc/core/class.dc.modules.php(244): dcModules->loadNsFile('widgets', 'public')
#7 /.../dotclear/inc/public/prepend.php(90): dcModules->loadModules('/.../dotcl...', 'public', 'en')
#8 /.../dotclear/index.php(18): require('/home/www/dotcl...')
#9 {main}
thrown in /.../dotclear/plugins/widgets/class.widgets.php on line 282
En commentant les lignes en question (je suis pas un pro du dev...), cela fonctionne, il y a juste un "0" qui s'affiche sur certains widgets:
public function setting($name, $title, $value, $type = 'text')
{
if ($type == 'combo' || $type == 'radio') {
$options = @func_get_arg(4);
if (!is_array($options)) {
return false;
}
// If any, the 5th argument should be an array (key → value) of opts
//$opts = @func_get_arg(5);
} else {
// If any, the 4th argument should be an array (key → value) of opts
//$opts = @func_get_arg(4);
}
Une idée ?
Hors ligne
La version de développement a corrigé ce problème, il faudra attendre la v 2.19 pour une mise à jour.
Si tu veux bricoler, tu peux récupérer le fichier /dotclear/plugins/widgets/class.widgets.php corrigé dans son archive
Il y a aussi un problème pour la génération des miniatures d'images avec php8, là encore corrigé dans la v 2.19
Hors ligne
Si tu veux rester en PHP8, il te faudra aussi récupérer le fichier /dotclear/inc/libs/clearbricks/image/class.image.tools.php, ce qui permettra la génération des miniatures quand on les insère dans la médiathèque
Hors ligne
je t'avoue que pour le coup j'étais passé complètement à côté de ce bug, et pourtant ça fait déjà plusieurs mois que je suis passé (salement) en PHP8. ça doit être mon côté myope. et puis c'est moins flagrant que celui des widgets qui provoquait carrément une 500 :)
quoiqu'il en soit pour les miniatures ça a du être corrigé avec la 2.18.1, car ça remarche maintenant et il n'y a pas de différence de fichier avec les nightlies que tu m'as indiqué ni avec la version Github.
merci encore pour ton aide !
Hors ligne
Pages : 1
Vous n'êtes pas identifié(e).