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;