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