Changeset 63450 in spip-zone


Ignore:
Timestamp:
Jul 13, 2012, 4:40:09 PM (7 years ago)
Author:
cedric@…
Message:

preparer l'execution en tache de fond :

  • pas de contrainte sur le statut auteur
  • prendre en argument un nb pour limiter le nombre de mises a jour
  • spip_log a la place de echo
File:
1 edited

Legend:

Unmodified
Added
Removed
  • _galaxie_/www.spip-contrib.net/squelettes/2012/action/synchro_plugins.php

    r62487 r63450  
    33if (!defined('_ECRIRE_INC_VERSION')) return;
    44
    5 function action_synchro_plugins_dist(){
     5function action_synchro_plugins_dist($nb = null){
    66
    77        include_spip('inc/autoriser');
    8         if(!autoriser('webmestre'))
    9                 die();
    108
    119        $src = "http://plugins.spip.net/infos_plugin.api/?lien_doc=http://www.spip-contrib.net/";
     
    3432        include_spip('action/editer_article');
    3533
    36         foreach($json['plugins'] as $prefixe=>$infos){
    37                 echo "<hr />$prefixe<br />";
    38                 #var_dump($infos);
     34        $prefixes = array_keys($json['plugins']);
     35        // si nombre de plugins passe en arg, tirer au sort nb plugins a synchroniser
     36        if ($nb AND $nb<count($prefixes)){
     37                $prefixes = array_rand($prefixes, $nb);
     38        }
     39
     40        foreach($prefixes as $prefixe){
     41                $infos = $json['plugins'][$prefixe];
     42                spip_log("---- Synchro $prefixe","synchroplugins"._LOG_INFO_IMPORTANTE);
    3943                $liens_mots_art = array();
    4044                $liens_mots_doc = array();
     
    6367                                        $url_site = sql_getfetsel('url_site','spip_articles','id_article='.intval($id_article));
    6468                                        if (!$url_site){
    65                                                 echo "Modifier url_site=$url_p sur article $id_article<br />";
     69                                                spip_log("$prefixe: Modifier url_site=$url_p sur article $id_article","synchroplugins"._LOG_INFO_IMPORTANTE);
     70                                                autoriser_exception("modifier","article",$id_article);
    6671                                                article_modifier($id_article,array('url_site'=>$url_p));
     72                                                autoriser_exception("modifier","article",$id_article,false);
    6773                                        }
    6874                                        elseif($url_site!=$url_p){
    69                                                 echo "url_site incorrecte sur article $id_article<br />";
     75                                                spip_log("$prefixe: url_site incorrecte sur article $id_article","synchroplugins"._LOG_INFO_IMPORTANTE);
    7076                                        }
    7177                                }
    7278                                else {
    73                                         echo "$prefixe:URL ".$d['lien_doc']." non trouvee<br />";
     79                                        spip_log("$prefixe: URL ".$d['lien_doc']." non trouvee","synchroplugins"._LOG_INFO_IMPORTANTE);
    7480                                }
    7581                        }
     
    8894                }
    8995
    90 //if ($prefixe=="FAQ") die();
    91         }
    92         die();
     96        }
    9397
    9498}
     
    111115                if (count($a)==1){
    112116                        $a = reset($a);
    113                         echo "$url => ".reset($a)."<br />";
     117                        spip_log("$url => ".reset($a),"synchroplugins"._LOG_INFO_IMPORTANTE);
    114118                        return $cache[$url] = reset($a);
    115119                }
     
    117121        if ($fond!=="article") return $cache[$url]=false;
    118122        if (!isset($contexte['id_article'])) return $cache[$url]=false;
    119         #var_dump($contexte);
    120         echo "$url => ".$contexte['id_article']."<br />";
     123        #spip_log($contexte,"synchroplugins"._LOG_INFO_IMPORTANTE);
     124        spip_log("$url => ".$contexte['id_article'],"synchroplugins"._LOG_INFO_IMPORTANTE);
    121125        return $cache[$url]=$contexte['id_article'];
    122126}
     
    139143                $ids = $ajouter_documents('new',array($file));
    140144                $id_document= reset($ids);
    141                 echo "Ajout document distant $url_zip : #$id_document<br />";
     145                spip_log("Ajout document distant $url_zip : #$id_document","synchroplugins"._LOG_INFO_IMPORTANTE);
    142146
    143147                if (!$id_document)
     
    151155        // verifier le titre
    152156        if ($row['titre']!==$titre){
    153                 echo "Titre document #id_document : $titre <br />";
     157                spip_log("Titre document #id_document : $titre ","synchroplugins"._LOG_INFO_IMPORTANTE);
     158                autoriser_exception("modifier","document",$id_document);
    154159                document_modifier($id_document,array('titre' => $titre));
     160                autoriser_exception("modifier","document",$id_document,false);
    155161        }
    156162
     
    176182                        if (count($remove)){
    177183                                objet_dissocier(array('mot'=>$remove),array($objet=>$id_objet));
    178                                 echo "$objet $id_objet remove ".implode(",",$remove)."<br />";
     184                                spip_log("$objet $id_objet remove ".implode(",",$remove),"synchroplugins"._LOG_INFO_IMPORTANTE);
    179185                        }
    180186                        $set = array_diff($set,$l);
    181187                        if (count($set)){
    182188                                objet_associer(array('mot'=>$set),array($objet=>$id_objet));
    183                                 echo "$objet $id_objet set ".implode(",",$set)."<br />";
     189                                spip_log("$objet $id_objet set ".implode(",",$set),"synchroplugins"._LOG_INFO_IMPORTANTE);
    184190                        }
    185191                }
     
    205211                if (count($remove)){
    206212                        objet_dissocier(array($objet=>$remove),array('article'=>$id_trad));
    207                         echo "TRAD article $id_trad remove $objet ".implode(",",$remove)."<br />";
     213                        spip_log("TRAD article $id_trad remove $objet ".implode(",",$remove),"synchroplugins"._LOG_INFO_IMPORTANTE);
    208214                }
    209215                if (count($set)){
    210216                        objet_associer(array($objet=>$set),array('article'=>$id_trad));
    211                         echo "TRAD article $id_trad set $objet ".implode(",",$set)."<br />";
    212                 }
    213         }
    214 }
     217                        spip_log("TRAD article $id_trad set $objet ".implode(",",$set),"synchroplugins"._LOG_INFO_IMPORTANTE);
     218                }
     219        }
     220}
Note: See TracChangeset for help on using the changeset viewer.