Valider 89303815 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Certains champs sont des tableaux sérializés en PHP (Formidable notamment qui

l'utilisent pour stocker la config de formulaire).
Dans ce cas il ne faut pas modifier directement la valeur serializé, sans
quoi ca casse tout et on perd le contenu du champ.
Il faut d'abord deserializer, puis serializé en json. On peut alors
faire toutes nos corrections automatiques sans risque.
Et à la fin on reserialize en PHP.
parent e49f7c49
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+11 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -91,6 +91,14 @@ function correction_liens_internes_correction($texte, $raccourci_spip = true){
		return $texte;
	}

	// C'est un tableeau sérialisé en PHP ? on le séralize en json pour éviter les ennuis
	$serialize_php = false;
	if ($tmp = @unserialize($texte)) {
		$texte = json_encode($tmp, JSON_UNESCAPED_SLASHES);
		spip_log($texte, 's');
		$serialize_php =  true;
	}


	// traiter d'autre domaines ?
	if ($domaines = correction_liens_internes_autres_domaines()) {
@@ -127,6 +135,9 @@ function correction_liens_internes_correction($texte, $raccourci_spip = true){
			. " : $mauvais_raccourci => $bon_raccourci", 'liens_internes.' . _LOG_AVERTISSEMENT);
		}
	}
	if($serialize_php) {
		$texte = serialize(json_decode($texte, true));
	}
	return $texte;
}

+2 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="correction_liens_internes"
	categorie="edition"
	version="1.5.2"
	version="1.5.3"
	etat="stable"
	compatibilite="[3.0.0;3.2.*]"
	logo="correction_liens_internes.png"
@@ -19,5 +19,6 @@

	<pipeline nom="pre_edition" inclure="correction_liens_internes_pipelines.php" />

	<necessite nom="PHP" compatibilite="[5.4.0;[" />
	<utilise nom="multidomaines" compatibilite="[2.0.0;]" />
</paquet>