From 809a43e71bfa214e433c60a94a19c409db4f94dc Mon Sep 17 00:00:00 2001
From: RastaPopoulos <rastapopoulos@spip.org>
Date: Tue, 27 Oct 2020 22:55:28 +0100
Subject: [PATCH] =?UTF-8?q?V=C3=A9rifier=20au=20moins=20les=20liens=20d?=
 =?UTF-8?q?=C3=A9j=C3=A0=20existant=20pour=20mettre=20vu=3Doui=20si=20ya?=
 =?UTF-8?q?=20toujours=20le=20mod=C3=A8le=20trouv=C3=A9=20dans=20le=20cont?=
 =?UTF-8?q?enu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 formidable_administrations.php | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/formidable_administrations.php b/formidable_administrations.php
index 6d79f75a..7fc2ed33 100644
--- a/formidable_administrations.php
+++ b/formidable_administrations.php
@@ -115,6 +115,7 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
 	// Ajouter un champ "vu" pour les liaisons
 	$maj['1.0.0'] = array(
 		array('maj_tables', array('spip_formulaires_liens')),
+		array('formidable_verifier_liens_vu'),
 	);
 	
 	include_spip('base/upgrade');
@@ -371,6 +372,34 @@ function formidable_migrer_config() {
 	effacer_config("formidable/analyse");
 	ecrire_config("formidable", $config);
 }
+
+/**
+ * Tester les liens existants et pour chacun voir si on doit mettre vu=oui
+ */
+function formidable_verifier_liens_vu() {
+	include_spip('action/editer_liens');
+	include_spip('formidable_pipelines');
+	
+	// Chercher tous les liens de form pas marqué comme vu
+	if ($liens = objet_trouver_liens(array('formulaire' => '*'), array('*' => '*'), array('vu="non"'))) {
+		foreach ($liens as $lien) {
+			$table = table_objet_sql($lien['objet']);
+			$cle = id_table_objet($lien['objet']);
+			$contenu = sql_fetsel('*', $table, "$cle=".intval($lien['id_objet']));
+			$contenu = implode(' ', $contenu);
+			
+			// On cherche les modèles insérés dans les textes du contenu
+			$formulaires = formidable_trouve_liens($contenu);
+			
+			// Est-ce qu'on trouve le form de ce lien dans les modèles trouvés
+			if (isset($formulaires[$lien['id_formulaire']])) {
+				// On lui ajoute vu=oui
+				objet_qualifier_liens(array('formulaire' => $lien['id_formulaire']), array($lien['objet'] => $lien['id_objet']), array('vu' => 'oui'));
+			}
+		}
+	}
+}
+
 /**
  * Désinstallation/suppression des tables de formidable
  *
-- 
GitLab