source: spip-zone/_plugins_/checklink/checklink_pipelines.php @ 5299

Last change on this file since 5299 was 5299, checked in by james@…, 15 years ago

debugs. tout plein.

File size: 3.3 KB
Line 
1<?php
2
3include_spip('inc/indexation');
4include_spip('base/checklink');
5include_spip('inc/checklink');
6include_spip('inc/texte');
7
8function checklink_pre_enregistre_contenu($flux){
9        static $objet_traite=array();
10        if (!isset($flux['args']['id_objet']) || !isset($flux['args']['table']))
11                return; // rien a faire ici ...
12        // renseigner la table
13        $id_objet = $flux['args']['id_objet'];
14        $table = $flux['args']['table'];
15        $id_table = id_index_table($table);
16       
17        // si on a pas commence a traiter cet objet, marquer tous ses liens existants comme obsolete
18        if (!count($objet_traite)) checklink_verifier_base();
19        if (!isset($objet_traite[$id_table]) OR !isset($objet_traite[$id_table][$id_objet]) ){
20                spip_query("UPDATE spip_liens SET obsolete='oui' WHERE id_table=$id_table AND id_objet=$id_objet");
21                $objet_traite[$id_table][$id_objet] = true;
22        }
23       
24        // passer le contenu dans propre pour transformer les liens internes et les modeles eventuels
25        $letexte = propre(join(' ',$flux['data']));
26        // recuperer les liens des balises a
27        if (preg_match_all(
28        ',<a [^>]*>,UimsS',
29        $letexte, $regs, PREG_SET_ORDER)) {
30                foreach ($regs as $reg) {
31                        $url = extraire_attribut($reg[0], 'href');
32                        // prevoir les liens dont les attributs ont pu etre renseignes a la main
33                        $titre = extraire_attribut($reg[0], 'title');
34                        $lang = extraire_attribut($reg[0], 'lang');
35                        $titre_auto = strlen($titre)?'non':'oui';
36                        $lang_auto = strlen($lang)?'non':'oui';
37                       
38                        // regarder si le lien est deja reference
39                        // et le creer eventuellement pour cet objet
40                        //echo "SELECT FROM spip_liens WHERE url=".spip_abstract_quote($url);
41                        if ($row = spip_fetch_array(spip_query("SELECT * FROM spip_liens WHERE url=".spip_abstract_quote($url)))){
42                                        $id_lien = $row['id_lien'];
43                        }
44                        else {
45                                $titre = 'test';
46                                        $lang = 'fr';
47                                        $status = 200;
48                                        $verification = 'x';
49                                        $date_verif = gmdate("Y-m-d H:i:s"); 
50                                        $id_lien = spip_abstract_insert("spip_liens","(url,titre,lang,statut,verification,date_verif,titre_auto,lang_auto,id_table,id_objet)",
51                                                "(".spip_abstract_quote($url).",".
52                                                spip_abstract_quote($titre).",".
53                                                spip_abstract_quote($lang).",".
54                                                spip_abstract_quote($status).",".
55                                                spip_abstract_quote($verification).",".
56                                                spip_abstract_quote($date_verif).",".
57                                                spip_abstract_quote($titre_auto).",".
58                                                spip_abstract_quote($lang_auto).",".
59                                                spip_abstract_quote($id_table).",".spip_abstract_quote($id_objet).")");
60                        }
61                        if (($titre_auto=='oui') AND (isset($row['titre'])))
62                                        $titre = $row['titre'];
63                        if (($lang_auto=='oui') AND (isset($row['lang'])))
64                                        $lang = $row['lang'];
65                        if (isset($row['statut'])){
66                                $statut = $row['statut'];
67                                $verification = $row['verification'];
68                                $date_verif = $row['date_verif'];
69                        }
70                        else {
71                                $statut = '';
72                                $verification = '1';
73                                $date_verif='';
74                        }
75                       
76                        spip_query("UPDATE spip_liens SET
77                                titre = ".spip_abstract_quote($titre).",
78                                lang = ".spip_abstract_quote($lang).",
79                                maj = NOW(),
80                                statut = ".spip_abstract_quote($statut).",
81                                verification = ".spip_abstract_quote($verification).",
82                                date_verif = ".spip_abstract_quote($date_verif).",
83                                obsolete = 'non',
84                                titre_auto = ".spip_abstract_quote($titre_auto).",
85                                lang_auto = ".spip_abstract_quote($lang_auto)."
86                        WHERE id_lien=".$id_lien);
87                }
88        }
89        return $flux;
90       
91}
92
93?>
Note: See TracBrowser for help on using the repository browser.