Changeset 5334 in spip-zone


Ignore:
Timestamp:
Sep 14, 2006, 6:52:22 AM (15 years ago)
Author:
cedric@…
Message:

ajout de la tache cron, prise en charge url des liens et images distantes

Location:
_plugins_/checklink
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/checklink/checklink_mes_options.php

    r5300 r5334  
    44define('_DIR_PLUGIN_CHECKLINK',(_DIR_PLUGINS.end($p)));
    55
     6function checklink_taches_generales_cron($taches_generales){
     7        $taches_generales['checklink_verification'] = 180;
     8        return $taches_generales;
     9}
     10
    611?>
  • _plugins_/checklink/checklink_pipelines.php

    r5299 r5334  
    55include_spip('inc/checklink');
    66include_spip('inc/texte');
     7
     8function checklink_extrait_liens($id_table,$id_objet,$texte){
     9        // recuperer les liens des balises a
     10        if (preg_match_all(
     11        ',<(a|img) [^>]*>,UimsS',
     12        $letexte, $regs, PREG_SET_ORDER)) {
     13                foreach ($regs as $reg) {
     14                        if (strtolower($reg[1])=='a')
     15                                $url = extraire_attribut($reg[0], 'href');
     16                        if (strtolower($reg[1])=='img'){
     17                                $url = extraire_attribut($reg[0], 'src');
     18                                if (!preg_match(',^http://,',$url)) $url = null;
     19                        }
     20                        if ($url){
     21                                // prevoir les liens dont les attributs ont pu etre renseignes a la main
     22                                $titre = extraire_attribut($reg[0], 'title');
     23                                $lang = extraire_attribut($reg[0], 'lang');
     24                                $titre_auto = strlen($titre)?'non':'oui';
     25                                $lang_auto = strlen($lang)?'non':'oui';
     26                               
     27                                // regarder si le lien est deja reference pour cet objet
     28                                // et le creer eventuellement sinon, en recuperant les infos dispos si le lien existe
     29                                // dans un autre objet
     30                                $id_lien = 0;
     31                                if ($row = spip_fetch_array(spip_query("SELECT * FROM spip_liens WHERE url=".spip_abstract_quote($url)
     32                                                        ." AND id_table=$id_table and id_objet=$id_objet"))){
     33                                                $id_lien = $row['id_lien'];
     34                                }
     35                                if (!$id_lien) {
     36                                        if ($row = spip_fetch_array(spip_query("SELECT * FROM spip_liens WHERE url=".spip_abstract_quote($url)))){
     37                                                $titre = $titre_auto=='non' ? $titre : $row['titre'];
     38                                                $lang = $lang_auto=='non' ? $lang : $row['lang'];
     39                                                $statut = $row['statut'];
     40                                                $verification = $row['verification'];
     41                                                $date_verif = $row['date_verif'];
     42                                        }
     43                                        else{
     44                                                $titre = "test";
     45                                                $lang = "fr";
     46                                                $statut = 200;
     47                                                $verification = 'x';
     48                                                $date_verif = gmdate("Y-m-d H:i:s");
     49                                        }
     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($statut).",".
     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        }
     90}
    791
    892function checklink_pre_enregistre_contenu($flux){
     
    24108        // passer le contenu dans propre pour transformer les liens internes et les modeles eventuels
    25109        $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         }
     110        checklink_extrait_liens($id_table,$id_objet,$letexte);
    89111        return $flux;
    90        
    91112}
    92113
  • _plugins_/checklink/plugin.xml

    r5300 r5334  
    3030                <inclure>checklink_pipelines.php</inclure>
    3131        </pipeline>
     32        <pipeline>
     33                <nom>taches_generales_cron</nom>
     34        </pipeline>
    3235</plugin>
Note: See TracChangeset for help on using the changeset viewer.