Fatale lors d'une migration de SPIP 3.2 à 4.3.8 avec le plugin accès restreint installé et un plugin qui crée des articles lors de sa mise à jour
Bonjour,
J'ai eu cette erreur : Fatal error: Uncaught TypeError: join(): Argument #1 ($array) must be of type array, string given in /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications_pipelines.php:95
Depuis la page : ecrire/?exec=admin_plugin
Call trace :
Gestion des plugins
MAJ 1.1.15 .
Warning: Undefined variable $hierarchie in /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications_pipelines.php on line 95
Fatal error: Uncaught TypeError: join(): Argument #1 ($array) must be of type array, string given in /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications_pipelines.php:95 Stack trace: #0 /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications_pipelines.php(95): join() #1 /var/www/html/spip/ecrire/inc/utils.php(236): notifications_notifications_destinataires() #2 /sites/college-les-gayeulles-rennes.ac-rennes.fr/tmp/cache/charger_pipelines.php(1059): minipipe() #3 /var/www/html/spip/ecrire/inc/utils.php(303): execute_pipeline_notifications_destinataires() #4 /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications/instituerarticle.php(45): pipeline() #5 /var/www/html/spip/ecrire/inc/notifications.php(43): notifications_instituerarticle_dist() #6 /var/www/html/spip/ecrire/action/editer_article.php(459): inc_notifications_dist() #7 /var/www/html/spip/ecrire/action/editer_article.php(133): article_instituer() #8 /var/www/html/spip/ecrire/action/editer_objet.php(101): article_modifier() #9 /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/soyezcreateurs/base/soyezcreateurs.php(424): objet_modifier() #10 /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/acrennes_soyezcreatifs/acrennes_soyezcreatifs_administrations.php(344): create_article() #11 /var/www/html/spip/ecrire/base/upgrade.php(460): acrennes_outilregion() #12 /var/www/html/spip/ecrire/base/upgrade.php(387): serie_alter() #13 /var/www/html/spip/ecrire/base/upgrade.php(242): maj_while() #14 /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/acrennes_soyezcreatifs/acrennes_soyezcreatifs_administrations.php(82): maj_plugin() #15 /var/www/html/spip/ecrire/plugins/installer.php(171): acrennes_soyezcreatifs_upgrade() #16 /var/www/html/spip/ecrire/plugins/installer.php(125): spip_plugin_install() #17 /var/www/html/spip/ecrire/inc/plugin.php(1419): plugins_installer_dist() #18 /var/www/html/spip/plugins-dist/svp/exec/admin_plugin.php(137): plugin_installes_meta() #19 /var/www/html/spip/ecrire/index.php(155): exec_admin_plugin_dist() #20 {main} thrown in /var/www/html/spip/plugins-dist/_plugins_soyezcreateurs_/notifications/notifications_pipelines.php on line 95
Raison :
Il s'agit d'une mise à jour de SPIP 3.2.19 à SPIP 4.3.8.
Le plugin Accès restreint est installé et affiche en page d'accueil de l'admin du site :
Warning: Undefined array key "Attention ! Votre site utilise le plugin Accès restreint mais le plugin Brèves n’est pas actif : vous courrez le risque d’afficher des documents qui étaient en accès réservés jusque là. Il est conseillé de le réinstaller ou, si vous êtes certain de ne pas l’utiliser, de supprimer définitivement la table spip_breves." in /var/www/html/spip/plugins/accesrestreint/public/accesrestreint.php on line 400
À moins que ce soit autre chose...
Proposition de résolution
Passer ligne 83 de https://git.spip.net/spip-contrib-extensions/notifications/-/blob/master/notifications_pipelines.php#L83 de :
if (in_array($id_rubrique,$limiter_rubriques))
{
while ($id_rubrique){
$hierarchie[] = $id_rubrique;
à :
if (in_array($id_rubrique,$limiter_rubriques))
{
$hierarchie = [];
while ($id_rubrique){
$hierarchie[] = $id_rubrique;