diff --git a/formidable_administrations.php b/formidable_administrations.php index 6d79f75a6ff33f6a7400916033af6ae5fe448b9a..7fc2ed3326afc97630bad8247386f6e2ab3809b1 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 *