Changeset 76975 in spip-zone


Ignore:
Timestamp:
Oct 5, 2013, 10:47:21 AM (8 years ago)
Author:
kent1@…
Message:

CRON de maintenance de tradlang :

  • On utilise sql_allfetsel + foreach pour récupérer les langues les plus utilisées (plus rapide que sql_select + while + sql_fetch)
  • On ajoute la suppression des versions et fragments de chaines de langue disparues au cas où il y aurait eu un problème ou une intervention à même la base de donnée
File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk/genie/tradlang_maintenance.php

    r75955 r76975  
    44
    55/**
    6  * Génie des opérations de maintenance de tradlang
     6 * Génie des opérations de maintenance journalières de tradlang
    77 */
    88function genie_tradlang_maintenance_dist($t) {
     
    1616        $nb_langues = lire_config('tradlang/limiter_langues_bilan_nb','10');
    1717        $langues_utilisees = array();
    18         $langues = sql_select('lang','spip_tradlangs','statut="OK"',"lang","COUNT(*) DESC","0,$nb_langues");
    19         while($langue = sql_fetch($langues)){
     18        $langues = sql_allfetsel('lang','spip_tradlangs','statut="OK"',"lang","COUNT(*) DESC","0,$nb_langues");
     19        foreach($langues as $langue){
    2020                $langues_utilisees[] = $langue['lang'];
    2121        }
    2222        ecrire_meta('tradlang_langues_max',serialize($langues_utilisees));
     23       
     24        /**
     25         * Suppression des versions des tradlangs disparus
     26         */
     27        $tradlang_disparus = sql_allfetsel('versions.id_objet','spip_versions AS versions','versions.objet="tradlang" AND NOT EXISTS(SELECT * FROM spip_tradlangs AS tradlangs WHERE versions.id_objet = tradlangs.id_tradlang)','versions.id_objet');
     28        $disparus = array();
     29        foreach($tradlang_disparus as $tradlang){
     30                $disparus[] = $tradlang['id_objet'];
     31        }
     32        if(count($disparus) && count($disparus) > 0){
     33                sql_delete('spip_versions','objet="tradlang" AND '.sql_in('id_objet',$disparus));
     34                sql_delete('spip_versions_fragments','objet="tradlang" AND '.sql_in('id_objet',$disparus));
     35        }
    2336        return 0;
    2437}
Note: See TracChangeset for help on using the changeset viewer.