Changeset 82705 in spip-zone


Ignore:
Timestamp:
May 23, 2014, 2:08:10 PM (5 years ago)
Author:
teddy.spip@…
Message:

On met un glob() particulier pour retrouver les logos du site SPIP. (pierretux)

Location:
_plugins_/medias_nettoyage/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/medias_nettoyage/trunk/medias_nettoyage_fonctions.php

    r82621 r82705  
    22/**
    33 * Fonctions principales du plugin "Nettoyer la médiathèque"
    4  * 
     4 *
    55 * @plugin     Nettoyer la médiathèque
    66 * @copyright  2014
     
    1010 */
    1111
    12 if (!defined('_ECRIRE_INC_VERSION')) return;
    13 
    14         include_spip('base/abstract_sql');
    15         include_spip('inc/documents');
    16         include_spip('inc/chercher_logo');
     12if (!defined('_ECRIRE_INC_VERSION')) {
     13    return;
     14}
     15include_spip('base/abstract_sql');
     16include_spip('inc/documents');
     17include_spip('inc/chercher_logo');
    1718
    1819/**
     
    2223 *         Tableau des extensions uniques
    2324 */
    24 function medias_lister_extensions_documents () {
    25         $extensions = array();
    26         $extensions_cibles = sql_allfetsel('DISTINCT extension', 'spip_documents');
    27         foreach ($extensions_cibles as $extension) {
    28                 $extensions[] = $extension['extension'];
    29         }
    30         // On rajoute le répertoire "vignettes"
    31         $extensions[] = 'vignettes';
    32         return $extensions ;
     25function medias_lister_extensions_documents ()
     26{
     27    $extensions = array();
     28    $extensions_cibles = sql_allfetsel('DISTINCT extension', 'spip_documents');
     29    foreach ($extensions_cibles as $extension) {
     30        $extensions[] = $extension['extension'];
     31    }
     32    // On rajoute le répertoire "vignettes"
     33    $extensions[] = 'vignettes';
     34    return $extensions ;
    3335}
    3436
     
    3840 * @uses medias_lister_extensions_documents()
    3941 * @uses _DIR_IMG
    40  * 
     42 *
    4143 * @param  string $repertoire_img
    4244 *         Par défaut, on prend _DIR_IMG en référence.
     
    4446 * @return void
    4547 */
    46 function medias_creer_extensions_repertoires ($repertoire_img = _DIR_IMG) {
    47         $extensions = medias_lister_extensions_documents();
    48 
    49         foreach ($extensions as $extension) {
    50                 if(!is_dir($repertoire_img . $extension)) {
    51                         @mkdir($repertoire_img . $extension, _SPIP_CHMOD);
    52                 }
    53         }
    54         return;
     48function medias_creer_extensions_repertoires ($repertoire_img = _DIR_IMG)
     49{
     50    $extensions = medias_lister_extensions_documents();
     51
     52    foreach ($extensions as $extension) {
     53        if (!is_dir($repertoire_img . $extension)) {
     54            @mkdir($repertoire_img . $extension, _SPIP_CHMOD);
     55        }
     56    }
     57    return;
    5558}
    5659
     
    6063 *
    6164 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    62  * 
     65 *
    6366 * @return void
    6467 */
    65 function medias_creer_repertoires_orphelins () {
    66         if (!is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
    67                 @mkdir(_MEDIAS_NETTOYAGE_REP_ORPHELINS,_SPIP_CHMOD);
    68         }
    69         return;
     68function medias_creer_repertoires_orphelins ()
     69{
     70    if (!is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
     71        @mkdir(_MEDIAS_NETTOYAGE_REP_ORPHELINS, _SPIP_CHMOD);
     72    }
     73    return;
    7074}
    7175
    7276/**
    7377 * Lister les répertoires présents dans IMG/ sans les sous-répertoires.
    74  * 
    75  * @param  string $repertoire_img 
     78 *
     79 * @param  string $repertoire_img
    7680 *         Par défaut, on prend _DIR_IMG en référence.
    7781 *         On peut l'utiliser aussi pour le répertoire IMG/orphelins ou tout autre nom de répertoire.
    7882 * @return array
    7983 */
    80 function medias_lister_repertoires ($repertoire_img = _DIR_IMG) {
    81         $repertoires = array();
    82         // On vérifie que $repertoire_img passé en paramètre est bien un répertoire existant.
    83         // cf. ../IMG/orphelins qui ne serait pas encore créé.
    84         if (is_dir($repertoire_img)) {
    85                 $rep_img = array_diff(scandir($repertoire_img), array('..','.','.svn')); // On ne liste pas le répertoire .svn
    86                 foreach ($rep_img as $repertoire) {
    87                         if (is_dir($repertoire_img . $repertoire)) {
    88                                 $repertoires[] = $repertoire_img . $repertoire;
    89                         }
    90                 }
    91         }
    92 
    93         return (array) $repertoires;
     84function medias_lister_repertoires ($repertoire_img = _DIR_IMG)
     85{
     86    $repertoires = array();
     87    // On vérifie que $repertoire_img passé en paramètre est bien un répertoire existant.
     88    // cf. ../IMG/orphelins qui ne serait pas encore créé.
     89    if (is_dir($repertoire_img)) {
     90        $rep_img = array_diff(scandir($repertoire_img), array('..','.','.svn')); // On ne liste pas le répertoire .svn
     91        foreach ($rep_img as $repertoire) {
     92            if (is_dir($repertoire_img . $repertoire)) {
     93                $repertoires[] = $repertoire_img . $repertoire;
     94            }
     95        }
     96    }
     97
     98    return (array) $repertoires;
    9499}
    95100
     
    98103 *
    99104 * @uses get_spip_doc()
    100  * 
     105 *
    101106 * @return array
    102107 *         Tableau contenant les urls des fichiers
    103108 */
    104 function medias_lister_documents_bdd () {
    105         $docs_fichiers = array();
    106 
    107         $docs_bdd = sql_allfetsel('fichier', 'spip_documents',"distant='non' AND fichier!=''");
    108         foreach ($docs_bdd as $doc) {
    109                 /**
    110                  * On formate par rapport au répertoire ../IMG/
    111                  * On évite les doubles // qu'il peut y avoir
    112                  */
    113                 $docs_fichiers[] = preg_replace("/\/\//", "/", get_spip_doc($doc['fichier']));
    114         }
    115         // on enlève les url vides issues de la base :
    116         $docs_fichiers = array_filter($docs_fichiers);
    117 
    118         // On trie dans l'ordre alphabétique :
    119         sort($docs_fichiers);
    120 
    121         return (array) $docs_fichiers;
     109function medias_lister_documents_bdd ()
     110{
     111    $docs_fichiers = array();
     112
     113    $docs_bdd = sql_allfetsel('fichier', 'spip_documents', "distant='non' AND fichier!=''");
     114    foreach ($docs_bdd as $doc) {
     115        /**
     116         * On formate par rapport au répertoire ../IMG/
     117         * On évite les doubles // qu'il peut y avoir
     118         */
     119        $docs_fichiers[] = preg_replace("/\/\//", "/", get_spip_doc($doc['fichier']));
     120    }
     121    // on enlève les url vides issues de la base :
     122    $docs_fichiers = array_filter($docs_fichiers);
     123
     124    // On trie dans l'ordre alphabétique :
     125    sort($docs_fichiers);
     126
     127    return (array) $docs_fichiers;
    122128}
    123129
     
    127133 * @return integer
    128134 */
    129 function medias_lister_documents_bdd_taille(){
    130         $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents',"distant='non' AND fichier!=''");
    131         return $docs_bdd['taille_totale'];
     135function medias_lister_documents_bdd_taille()
     136{
     137    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "distant='non' AND fichier!=''");
     138    return $docs_bdd['taille_totale'];
    132139}
    133140
     
    137144 * @return integer|string
    138145 */
    139 function medias_lister_documents_bdd_complet_compteur () {
    140         return sql_countsel('spip_documents');
     146function medias_lister_documents_bdd_complet_compteur ()
     147{
     148    return sql_countsel('spip_documents');
    141149}
    142150
     
    146154 * @return integer|string
    147155 */
    148 function medias_lister_documents_bdd_complet_taille(){
    149         $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents',"id_document > 0");
    150         return $docs_bdd['taille_totale'];
     156function medias_lister_documents_bdd_complet_taille()
     157{
     158    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "id_document > 0");
     159    return $docs_bdd['taille_totale'];
    151160}
    152161
     
    160169 * @return array
    161170 */
    162 function medias_lister_documents_bdd_orphelins(){
    163         $docs_bdd = array_unique(array_diff(medias_lister_documents_bdd(), medias_lister_documents_repertoire()));
    164         sort($docs_bdd);
    165         return (array) $docs_bdd;
     171function medias_lister_documents_bdd_orphelins()
     172{
     173    $docs_bdd = array_unique(array_diff(medias_lister_documents_bdd(), medias_lister_documents_repertoire()));
     174    sort($docs_bdd);
     175    return (array) $docs_bdd;
    166176}
    167177
     
    175185 * @return integer
    176186 */
    177 function medias_lister_documents_bdd_orphelins_taille(){
    178         $documents_orphelins    = medias_lister_documents_bdd_orphelins();
    179         $taille                 = 0;
    180         $pattern_img            = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
    181 
    182         if (count($documents_orphelins) > 0) {
    183                 $documents_bdd = sql_allfetsel('fichier,taille','spip_documents', "fichier IN ('" . join("','",preg_replace($pattern_img, '', $documents_orphelins)) . "')");
    184                 foreach ($documents_bdd as $document_bdd) {
    185                         if (!file_exists(get_spip_doc($document_bdd['fichier']))) {
    186                                 $taille = $taille + ($document_bdd['taille']/1000); // On divise par 1000 pour éviter la limite de l'integer php.
    187                         }
    188                 }
    189         }
    190         return $taille * 1000;
     187function medias_lister_documents_bdd_orphelins_taille()
     188{
     189    $documents_orphelins    = medias_lister_documents_bdd_orphelins();
     190    $taille         = 0;
     191    $pattern_img        = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
     192
     193    if (count($documents_orphelins) > 0) {
     194        $documents_bdd = sql_allfetsel(
     195            'fichier,taille',
     196            'spip_documents',
     197            "fichier IN ('"
     198            . join("','", preg_replace($pattern_img, '', $documents_orphelins)) . "')"
     199        );
     200        foreach ($documents_bdd as $document_bdd) {
     201            if (!file_exists(get_spip_doc($document_bdd['fichier']))) {
     202                $taille = $taille + ($document_bdd['taille']/1000);
     203                // On divise par 1000 pour éviter la limite de l'integer php.
     204            }
     205        }
     206    }
     207    return $taille * 1000;
    191208}
    192209
     
    202219 * @return array
    203220 */
    204 function medias_lister_documents_repertoire ($repertoire_img = _DIR_IMG) {
    205         $docs_fichiers = array();
    206 
    207         foreach (medias_lister_extensions_documents() as $extension) {
    208                 // On va chercher dans IMG/$extension/*.*
    209                 $fichiers = glob($repertoire_img . "$extension/*.*");
    210                 foreach ($fichiers as $fichier) {
    211                         $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    212                 }
    213         }
    214         // On va chercher dans IMG/*.*
    215         $fichiers = glob($repertoire_img . "*.*");
    216         foreach ($fichiers as $fichier) {
    217                 $docs_fichiers[] = $fichier;
    218         }
    219         $docs_fichiers = array_unique(array_diff($docs_fichiers, medias_lister_logos_fichiers()));
    220         sort($docs_fichiers);
    221 
    222         return (array) $docs_fichiers;
     221function medias_lister_documents_repertoire ($repertoire_img = _DIR_IMG)
     222{
     223    $docs_fichiers = array();
     224
     225    foreach (medias_lister_extensions_documents() as $extension) {
     226        // On va chercher dans IMG/$extension/*.*
     227        $fichiers = glob($repertoire_img . "$extension/*.*");
     228        foreach ($fichiers as $fichier) {
     229            $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     230        }
     231    }
     232    // On va chercher dans IMG/*.*
     233    $fichiers = glob($repertoire_img . "*.*");
     234    foreach ($fichiers as $fichier) {
     235        $docs_fichiers[] = $fichier;
     236    }
     237    $docs_fichiers = array_unique(
     238        array_diff(
     239            $docs_fichiers,
     240            medias_lister_logos_fichiers()
     241        )
     242    );
     243    sort($docs_fichiers);
     244
     245    return (array) $docs_fichiers;
    223246}
    224247
     
    232255 * @return integer
    233256 */
    234 function medias_lister_documents_repertoire_taille () {
    235         return medias_calculer_taille_fichiers(medias_lister_documents_repertoire());
     257function medias_lister_documents_repertoire_taille ()
     258{
     259    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire());
    236260}
    237261
     
    244268 * @return array
    245269 */
    246 function medias_lister_documents_repertoire_orphelins (){
    247         $docs_fichiers = array_unique(array_diff(medias_lister_documents_repertoire(), medias_lister_documents_bdd()));
    248         sort($docs_fichiers);
    249         return (array) $docs_fichiers;
     270function medias_lister_documents_repertoire_orphelins ()
     271{
     272    $docs_fichiers = array_unique(array_diff(medias_lister_documents_repertoire(), medias_lister_documents_bdd()));
     273    sort($docs_fichiers);
     274    return (array) $docs_fichiers;
    250275}
    251276
     
    256281 * @uses medias_lister_documents_repertoire_orphelins()
    257282 * @uses medias_calculer_taille_fichiers()
    258  * 
     283 *
    259284 * @return integer
    260285 */
    261 function medias_lister_documents_repertoire_orphelins_taille () {
    262         return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_orphelins());
     286function medias_lister_documents_repertoire_orphelins_taille ()
     287{
     288    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_orphelins());
    263289}
    264290
     
    272298 * @return array
    273299 */
    274 function medias_lister_documents_repertoire_complet ($repertoire_img = _DIR_IMG){
    275         $docs_fichiers = array();
    276 
    277         // On va chercher dans IMG/distant/*/*.*
     300function medias_lister_documents_repertoire_complet ($repertoire_img = _DIR_IMG)
     301{
     302    $docs_fichiers = array();
     303
     304    // On va chercher dans IMG/distant/*/*.*
    278305        // Exemple : IMG/distant/jpg/nom_fichier.jpg
    279         $fichiers = glob($repertoire_img . "*/*/*.*");
    280         foreach ($fichiers as $fichier) {
    281                 $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier); // On évite les doubles slashs '//' qui pourrait arriver comme un cheveu sur la soupe.
    282         }
    283 
    284         // On va chercher dans IMG/*/*.*
     306    $fichiers = glob($repertoire_img . "*/*/*.*");
     307    foreach ($fichiers as $fichier) {
     308        $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     309        // On évite les doubles slashs '//' qui pourrait arriver comme un cheveu sur la soupe.
     310    }
     311
     312    // On va chercher dans IMG/*/*.*
    285313        // Exemple : IMG/pdf/nom_fichier.pdf
    286         $fichiers = glob($repertoire_img . "*/*.*");
    287         foreach ($fichiers as $fichier) {
    288                 $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    289         }
    290 
    291         // On va chercher dans IMG/*.*
     314    $fichiers = glob($repertoire_img . "*/*.*");
     315    foreach ($fichiers as $fichier) {
     316        $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     317    }
     318
     319    // On va chercher dans IMG/*.*
    292320        // Exemple : IMG/arton4.png
    293         $fichiers = glob($repertoire_img . "*.*");
    294         foreach ($fichiers as $fichier) {
    295                 $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    296         }
    297 
    298         $docs_fichiers = array_unique($docs_fichiers);
    299         sort($docs_fichiers);
    300 
    301         return (array) $docs_fichiers;
     321    $fichiers = glob($repertoire_img . "*.*");
     322    foreach ($fichiers as $fichier) {
     323        $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     324    }
     325
     326    $docs_fichiers = array_unique($docs_fichiers);
     327    sort($docs_fichiers);
     328
     329    return (array) $docs_fichiers;
    302330}
    303331
     
    314342 * @return integer
    315343 */
    316 function medias_lister_documents_repertoire_complet_taille ($repertoire_img = _DIR_IMG) {
    317         return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_img));
    318 }
    319 
    320 /**
    321  * Lister les logos des objets suivants :
     344function medias_lister_documents_repertoire_complet_taille ($repertoire_img = _DIR_IMG)
     345{
     346    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_img));
     347}
     348
     349/**
     350 * Lister les logos des objets éditoriaux
     351 * Prend en compte les cas particuliers suivants :
    322352 * - articles (art)
    323353 * - rubriques (rub)
     
    330360 *
    331361 * @param null|string $mode
    332  *        + `null` : stockera dans le tableau tous les logos, 
     362 *        + `null` : stockera dans le tableau tous les logos,
    333363 *        quelque soit le mode du logo
    334364 *        + `on` : stockera dans le tableau tous les logos du mode "on"
     
    339369 * @return array
    340370 */
    341 function medias_lister_logos_fichiers($mode = null, $repertoire_img = _DIR_IMG){
    342 
    343         if (intval(spip_version()) == 2) {
    344                 include_spip('base/connect_sql');
    345                 $tables_objets = (isset($GLOBALS['tables_principales'])) ? $GLOBALS['tables_principales'] : array('spip_articles','spip_rubriques','spip_auteurs','spip_breves','spip_documents','spip_syndic','spip_mots','spip_forum','spip_groupes_mots');
    346         } else if (intval(spip_version()) == 3) {
    347                 include_spip('base/objets');
    348                 $tables_objets = array_keys(lister_tables_principales());
    349         }
    350 
    351         global $formats_logos;
    352         $docs_fichiers_on       = array();
    353         $docs_fichiers_off      = array();
    354         $logos_objet            = array('art','rub','breve','site','mot','aut');
    355         $fichiers                       = array();
    356 
    357         // On va chercher toutes les tables principales connues de SPIP
    358         foreach ($tables_objets as $table) {
    359                 // On cherche son type d'objet et on l'ajoute aux logos
    360                 // Il y a aussi dans ces objets la référence à 'article',
    361                 // 'rubrique' et 'auteur'
    362                 // On peut les laisser, ça ne mange pas de pain de prendre
    363                 // en compte les "tordus" ;-)
    364                 $logos_objet[] = objet_type($table);
    365         }
    366         // On enlève les doublons
    367         $logos_objet = array_unique($logos_objet);
    368         sort($logos_objet);
    369 
    370         // On va chercher dans IMG/*(on|off)*.*
    371         // On fait un foreach pour ne pas avoir de
    372         // "Pattern exceeds the maximum allowed length of 260 characters"
    373         // sur glob()
    374         foreach ($logos_objet as $logo_pattern) {
    375                 // la regex de GLOB_BRACE est très basique...
    376                 $liste = glob($repertoire_img . "{" . $logo_pattern ."}{on,off}*.*",GLOB_BRACE);
    377                 $fichiers = array_merge($fichiers, $liste);
    378         }
    379 
    380         foreach ($fichiers as $fichier) {
    381                 // ... Donc on fait une regex plus poussée avec un preg_match
    382                 if (preg_match("/(" . join("|",$logos_objet) .")on\d+.(" . join("|", $formats_logos) .")$/", $fichier)) {
    383                         $docs_fichiers_on[] = preg_replace("/\/\//", "/", $fichier);
    384                 }
    385                 if (preg_match("/(" . join("|",$logos_objet) .")off\d+.(" . join("|",$formats_logos) .")$/", $fichier)) {
    386                         $docs_fichiers_off[] = preg_replace("/\/\//", "/", $fichier);
    387                 }
    388         }
    389         if ($mode == 'on') {
    390                 $docs_fichiers_on = array_unique($docs_fichiers_on);
    391                 sort($docs_fichiers_on); // On trie dans l'ordre alphabétique
    392                 return $docs_fichiers_on;
    393         } else if ($mode == 'off') {
    394                 $docs_fichiers_off = array_unique($docs_fichiers_off);
    395                 sort($docs_fichiers_off); // On trie dans l'ordre alphabétique
    396                 return $docs_fichiers_off;
    397         } else {
    398                 $docs_fichiers = array_unique(array_merge($docs_fichiers_on,$docs_fichiers_off));
    399                 sort($docs_fichiers); // On trie dans l'ordre alphabétique
    400                 return $docs_fichiers;
    401         }
     371function medias_lister_logos_fichiers ($mode = null, $repertoire_img = _DIR_IMG)
     372{
     373
     374    if (intval(spip_version()) == 2) {
     375        include_spip('base/connect_sql');
     376        $tables_objets = (isset($GLOBALS['tables_principales']))
     377        ? $GLOBALS['tables_principales']
     378        : array('spip_articles',
     379            'spip_rubriques',
     380            'spip_auteurs',
     381            'spip_breves',
     382            'spip_documents',
     383            'spip_syndic',
     384            'spip_mots',
     385            'spip_forum',
     386            'spip_groupes_mots');
     387    } elseif (intval(spip_version()) == 3) {
     388        include_spip('base/objets');
     389        $tables_objets = array_keys(lister_tables_principales());
     390    }
     391
     392    global $formats_logos;
     393    $docs_fichiers_on   = array();
     394    $docs_fichiers_off  = array();
     395    $logos_objet        = array('art','rub','breve','site','mot','aut');
     396    $fichiers           = array();
     397
     398    // On va chercher toutes les tables principales connues de SPIP
     399    foreach ($tables_objets as $table) {
     400        // On cherche son type d'objet et on l'ajoute aux logos
     401        // Il y a aussi dans ces objets la référence à 'article',
     402        // 'rubrique' et 'auteur'
     403        // On peut les laisser, ça ne mange pas de pain de prendre
     404        // en compte les "tordus" ;-)
     405        $logos_objet[] = objet_type($table);
     406    }
     407    // On enlève les doublons
     408    $logos_objet = array_unique($logos_objet);
     409    sort($logos_objet);
     410
     411    // On va chercher le logo du site.
     412    // On force la recherche sur cet élément même si la recherche "classique"
     413    // devrait gérer cela initialement…
     414    if ($logo_site = glob($repertoire_img . "site{on|off}0.*", GLOB_BRACE)
     415        and count($logo_site) > 0) {
     416        $fichiers = array_merge($fichiers, $logo_site);
     417    }
     418
     419    // On va chercher dans IMG/*(on|off)*.*
     420    // On fait un foreach pour ne pas avoir de
     421    // "Pattern exceeds the maximum allowed length of 260 characters"
     422    // sur glob()
     423    foreach ($logos_objet as $logo_pattern) {
     424        // la regex de GLOB_BRACE est très basique...
     425        $liste = glob($repertoire_img . "{" . $logo_pattern ."}{on,off}*.*", GLOB_BRACE);
     426        $fichiers = array_merge($fichiers, $liste);
     427    }
     428
     429    foreach ($fichiers as $fichier) {
     430        // ... Donc on fait une regex plus poussée avec un preg_match
     431        if (preg_match("/(" . join("|", $logos_objet) .")on\d+.(" . join("|", $formats_logos) .")$/", $fichier)) {
     432            $docs_fichiers_on[] = preg_replace("/\/\//", "/", $fichier);
     433        }
     434        if (preg_match("/(" . join("|", $logos_objet) .")off\d+.(" . join("|", $formats_logos) .")$/", $fichier)) {
     435            $docs_fichiers_off[] = preg_replace("/\/\//", "/", $fichier);
     436        }
     437    }
     438    if ($mode == 'on') {
     439        $docs_fichiers_on = array_unique($docs_fichiers_on);
     440        sort($docs_fichiers_on); // On trie dans l'ordre alphabétique
     441        return $docs_fichiers_on;
     442    } elseif ($mode == 'off') {
     443        $docs_fichiers_off = array_unique($docs_fichiers_off);
     444        sort($docs_fichiers_off); // On trie dans l'ordre alphabétique
     445        return $docs_fichiers_off;
     446    } else {
     447        $docs_fichiers = array_unique(array_merge($docs_fichiers_on, $docs_fichiers_off));
     448        sort($docs_fichiers); // On trie dans l'ordre alphabétique
     449        return $docs_fichiers;
     450    }
    402451
    403452}
     
    411460 *
    412461 * @param null|string $mode
    413  *        + `null` : calculera le poids de tous les logos, 
     462 *        + `null` : calculera le poids de tous les logos,
    414463 *        quelque soit le mode du logo
    415464 *        + `on` : calculera le poids de tous les logos du mode "on"
     
    417466 * @return integer|string
    418467 */
    419 function medias_lister_logos_fichiers_taille ($mode = null){
    420         return medias_calculer_taille_fichiers(medias_lister_logos_fichiers($mode));
     468function medias_lister_logos_fichiers_taille ($mode = null)
     469{
     470    return medias_calculer_taille_fichiers(medias_lister_logos_fichiers($mode));
    421471}
    422472
     
    432482 *         // a vérifier tout de même selon l'OS 32bit ou 64bit.
    433483 */
    434 function medias_calculer_taille_fichiers ($fichiers = array()) {
    435         $taille = 0;
    436         if (count($fichiers) > 0) {
    437                 foreach ($fichiers as $fichier) {
    438                         if (file_exists($fichier)) {
    439                                 $taille += filesize($fichier) /1000;
    440                         }
    441                 }
    442                 if (is_float($taille) OR $taille > 0) {
    443                         return $taille *1000;
    444                 } else {
    445                         return $taille;
    446                 }
    447         } else {
    448                 return $taille;
    449         }
     484function medias_calculer_taille_fichiers ($fichiers = array())
     485{
     486    $taille = 0;
     487    if (count($fichiers) > 0) {
     488        foreach ($fichiers as $fichier) {
     489            if (file_exists($fichier)) {
     490                $taille += filesize($fichier) /1000;
     491            }
     492        }
     493        if (is_float($taille) or $taille > 0) {
     494            return $taille *1000;
     495        } else {
     496            return $taille;
     497        }
     498    } else {
     499        return $taille;
     500    }
    450501}
    451502
     
    460511 * @return array
    461512 */
    462 function medias_lister_repertoires_orphelins () {
    463         if (is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
    464                 return medias_lister_repertoires(_MEDIAS_NETTOYAGE_REP_ORPHELINS);
    465         } else {
    466                 return array();
    467         }
     513function medias_lister_repertoires_orphelins ()
     514{
     515    if (is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
     516        return medias_lister_repertoires(_MEDIAS_NETTOYAGE_REP_ORPHELINS);
     517    } else {
     518        return array();
     519    }
    468520}
    469521
     
    476528 * @return array
    477529 */
    478 function medias_lister_repertoires_orphelins_fichiers () {
    479         $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    480         $docs_fichiers          = array();
    481 
    482         if (is_dir($repertoire_orphelins)) {
    483                 $docs_fichiers = medias_lister_documents_repertoire_complet($repertoire_orphelins);
    484         }
    485         return (array) $docs_fichiers;
     530function medias_lister_repertoires_orphelins_fichiers ()
     531{
     532    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     533    $docs_fichiers      = array();
     534
     535    if (is_dir($repertoire_orphelins)) {
     536        $docs_fichiers = medias_lister_documents_repertoire_complet($repertoire_orphelins);
     537    }
     538    return (array) $docs_fichiers;
    486539}
    487540
     
    495548 * @return integer
    496549 */
    497 function medias_lister_repertoires_orphelins_fichiers_taille () {
    498         $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    499         $taille                 = 0;
    500 
    501         if (is_dir($repertoire_orphelins)) {
    502                 return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_orphelins));
    503         } else {
    504                 return intval($taille);
    505         }
     550function medias_lister_repertoires_orphelins_fichiers_taille ()
     551{
     552    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     553    $taille         = 0;
     554
     555    if (is_dir($repertoire_orphelins)) {
     556        return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_orphelins));
     557    } else {
     558        return intval($taille);
     559    }
    506560}
    507561
     
    511565 * @return array
    512566 */
    513 function test_medias(){
    514         $test = array();
    515         $test = @unserialize($GLOBALS['meta']['medias_nettoyage']);
    516         return $test;
     567function test_medias ()
     568{
     569    $test = array();
     570    $test = @unserialize($GLOBALS['meta']['medias_nettoyage']);
     571    return $test;
    517572}
    518573
     
    529584 * @return void
    530585 */
    531 function medias_deplacer_rep_obsoletes () {
    532         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Début de la procédure de déplacement des répertoires obsolètes.',"medias_nettoyage");
    533 
    534         $pattern_obsoletes      = array("cache-","icones");
    535         $repertoire_img         = _DIR_IMG;
    536         $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    537         $repertoires_obsoletes  = array();
    538         $message_log            = array();
    539         $pattern_img            = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
    540 
    541         // On crée le répertoire IMG/orphelins
    542         medias_creer_repertoires_orphelins();
    543 
    544         // on cherche les fichiers de type IMG/cache-20x20-blabla.ext
    545         $fichiers_obsoletes = find_all_in_path('IMG/','/cache-');
    546 
    547         foreach ($pattern_obsoletes as $pattern) {
    548                 $repertoires = glob($repertoire_img . $pattern . "*");
    549                 $repertoires_obsoletes = array_merge($repertoires_obsoletes,$repertoires);
    550         }
    551         // on fusionne avec les fichiers obsolètes
    552         $repertoires_obsoletes = array_merge($repertoires_obsoletes,$fichiers_obsoletes);
    553 
    554         // on enlève les valeurs vides du tableau.
    555         $repertoires_obsoletes = array_filter($repertoires_obsoletes);
    556 
    557         if (count($repertoires_obsoletes) > 0) {
    558                 foreach ($repertoires_obsoletes as $repertoire_source) {
    559                         $repertoire_destination = preg_replace($pattern_img, $repertoire_orphelins, $repertoire_source);
    560                         @rename($repertoire_source, $repertoire_destination);
    561                         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Déplacement de '. $repertoire_source . ' vers ' . $repertoire_destination;
    562                 }
    563         } else {
    564                 // S'il n'y a pas de dossiers obsolètes, on met un message histoire de ne pas rester dans le brouillard.
    565                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de dossiers ou de fichiers obsolètes';
    566         }
    567         spip_log("\n-------\n" . join("\n",$message_log) . "\n-------\n","medias_nettoyage");
    568         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de déplacement des répertoires obsolètes.',"medias_nettoyage");
    569         return;
     586function medias_deplacer_rep_obsoletes ()
     587{
     588    spip_log(
     589        date_format(date_create(), 'Y-m-d H:i:s')
     590        . ' : Début de la procédure de déplacement des répertoires obsolètes.',
     591        "medias_nettoyage"
     592    );
     593
     594    $pattern_obsoletes  = array("cache-","icones");
     595    $repertoire_img     = _DIR_IMG;
     596    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     597    $repertoires_obsoletes  = array();
     598    $message_log        = array();
     599    $pattern_img        = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
     600
     601    // On crée le répertoire IMG/orphelins
     602    medias_creer_repertoires_orphelins();
     603
     604    // on cherche les fichiers de type IMG/cache-20x20-blabla.ext
     605    $fichiers_obsoletes = find_all_in_path('IMG/', '/cache-');
     606
     607    foreach ($pattern_obsoletes as $pattern) {
     608        $repertoires = glob($repertoire_img . $pattern . "*");
     609        $repertoires_obsoletes = array_merge($repertoires_obsoletes, $repertoires);
     610    }
     611    // on fusionne avec les fichiers obsolètes
     612    $repertoires_obsoletes = array_merge($repertoires_obsoletes, $fichiers_obsoletes);
     613
     614    // on enlève les valeurs vides du tableau.
     615    $repertoires_obsoletes = array_filter($repertoires_obsoletes);
     616
     617    if (count($repertoires_obsoletes) > 0) {
     618        foreach ($repertoires_obsoletes as $repertoire_source) {
     619            $repertoire_destination = preg_replace($pattern_img, $repertoire_orphelins, $repertoire_source);
     620            @rename($repertoire_source, $repertoire_destination);
     621            $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     622            . ' : Déplacement de '
     623            . $repertoire_source
     624            . ' vers '
     625            . $repertoire_destination;
     626        }
     627    } else {
     628        // S'il n'y a pas de dossiers obsolètes, on met un message histoire de ne pas rester dans le brouillard.
     629        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     630        . ' : Il n\'y a pas de dossiers ou de fichiers obsolètes';
     631    }
     632    spip_log(
     633        "\n-------\n"
     634        . join("\n", $message_log)
     635        . "\n-------\n",
     636        "medias_nettoyage"
     637    );
     638    spip_log(
     639        date_format(date_create(), 'Y-m-d H:i:s')
     640        . ' : Fin de la procédure de déplacement des répertoires obsolètes.',
     641        "medias_nettoyage"
     642    );
     643    return;
    570644}
    571645
     
    582656 * @return array
    583657 */
    584 function medias_deplacer_documents_repertoire_orphelins () {
    585         /**
    586          * On crée un log vraiment au début du script.
    587          * Ainsi, on sait déjà en regardant les logs
    588          * si le script est lancé ou pas.
    589          */
    590         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Début de la procédure de déplacement.',"medias_nettoyage");
    591 
    592         $fichiers_orphelins     = medias_lister_documents_repertoire_orphelins();
    593         $fichiers_deplaces      = array();
    594         $message_log            = array();
    595         $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    596         $pattern_img            = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
    597 
    598         // On crée le répertoire IMG/orphelins s'il n'existe pas
    599         medias_creer_repertoires_orphelins();
    600         // On crée les répertoires d'extensions dans IMG/orphelins
    601         medias_creer_extensions_repertoires($repertoire_orphelins);
    602 
    603         // Si on n'a pas de fichiers orphelins, on ne lance pas la procédure.
    604         if (count($fichiers_orphelins) > 0) {
    605                 foreach ($fichiers_orphelins as $fichier) {
    606                         $destination = preg_replace($pattern_img, $repertoire_orphelins, $fichier);
    607                         $chemin = explode('/', $destination);
    608                         $repertoires = '';
    609                         $profondeur = count($chemin) - 1;
    610                         $i = 0;
    611                         // On a déjà créé les répertoires d'extensions, mais on laisse cette sécu au cas où on a d'autres répertoires à créer.
    612                         while ($i < $profondeur) {
    613                                 $repertoires = $repertoires . $chemin[$i] . '/';
    614                                 $i++;
    615                         }
    616                         if (!is_dir($repertoires)) {
    617                                 @mkdir($repertoires,_SPIP_CHMOD);
    618                                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le répertoire ' . $repertoires . ' a été créé.';
    619                         }
    620                         // Hop, on déplace notre fichier vers IMG/orphelins
    621                         @rename($fichier, $destination);
    622                         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le fichier ' . $fichier . ' a été déplacé vers ' . $destination .'.';
    623                         // On construit un tableau dans le cas où qqn voudrait utiliser cette donnée.
    624                         // Pour le moment inutilisé.
    625                         $fichiers_deplaces[] = $destination;
    626                 }
    627         } else {
    628                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il ne semble pas avoir de documents orphelins dans IMG/';
    629         }
    630 
    631         spip_log("\n-------\n" . join("\n",$message_log) . "\n-------\n","medias_nettoyage");
    632         /**
    633          * Et là, on marque bien la fin du script dans les logs.
    634          */
    635         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de déplacement.',"medias_nettoyage");
    636 
    637         return true;
     658function medias_deplacer_documents_repertoire_orphelins ()
     659{
     660    /**
     661     * On crée un log vraiment au début du script.
     662     * Ainsi, on sait déjà en regardant les logs
     663     * si le script est lancé ou pas.
     664     */
     665    spip_log(
     666        date_format(date_create(), 'Y-m-d H:i:s')
     667        . ' : Début de la procédure de déplacement.',
     668        "medias_nettoyage"
     669    );
     670
     671    $fichiers_orphelins     = medias_lister_documents_repertoire_orphelins();
     672    $fichiers_deplaces  = array();
     673    $message_log        = array();
     674    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     675    $pattern_img        = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
     676
     677    // On crée le répertoire IMG/orphelins s'il n'existe pas
     678    medias_creer_repertoires_orphelins();
     679    // On crée les répertoires d'extensions dans IMG/orphelins
     680    medias_creer_extensions_repertoires($repertoire_orphelins);
     681
     682    // Si on n'a pas de fichiers orphelins, on ne lance pas la procédure.
     683    if (count($fichiers_orphelins) > 0) {
     684        foreach ($fichiers_orphelins as $fichier) {
     685            $destination = preg_replace($pattern_img, $repertoire_orphelins, $fichier);
     686            $chemin = explode('/', $destination);
     687            $repertoires = '';
     688            $profondeur = count($chemin) - 1;
     689            $i = 0;
     690            // On a déjà créé les répertoires d'extensions,
     691            // mais on laisse cette sécu au cas où on a d'autres répertoires à créer.
     692            while ($i < $profondeur) {
     693                $repertoires = $repertoires . $chemin[$i] . '/';
     694                $i++;
     695            }
     696            if (!is_dir($repertoires)) {
     697                @mkdir($repertoires, _SPIP_CHMOD);
     698                $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     699                . ' : le répertoire '
     700                . $repertoires
     701                . ' a été créé.';
     702            }
     703            // Hop, on déplace notre fichier vers IMG/orphelins
     704            @rename($fichier, $destination);
     705            $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     706            . ' : le fichier '
     707            . $fichier
     708            . ' a été déplacé vers '
     709            . $destination
     710            .'.';
     711            // On construit un tableau dans le cas où qqn voudrait utiliser cette donnée.
     712            // Pour le moment inutilisé.
     713            $fichiers_deplaces[] = $destination;
     714        }
     715    } else {
     716        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     717        . ' : Il ne semble pas avoir de documents orphelins dans IMG/';
     718    }
     719
     720    spip_log(
     721        "\n-------\n"
     722        . join("\n", $message_log)
     723        . "\n-------\n",
     724        "medias_nettoyage"
     725    );
     726    /**
     727     * Et là, on marque bien la fin du script dans les logs.
     728     */
     729    spip_log(
     730        date_format(date_create(), 'Y-m-d H:i:s')
     731        . ' : Fin de la procédure de déplacement.',
     732        "medias_nettoyage"
     733    );
     734
     735    return true;
    638736}
    639737
    640738/**
    641739 * Réparer les documents.
    642  * Il arrive parfois que suite à un problème de droits, 
     740 * Il arrive parfois que suite à un problème de droits,
    643741 * les documents ne soient plus rangés correctement dans IMG/ext/fichier.ext
    644742 * mais dans un faux sous répertoire IMG/ext_fichier.ext
    645  * Le présent script va recopier les fichiers mal placés, 
     743 * Le présent script va recopier les fichiers mal placés,
    646744 * et changer leur référence dans la table spip_documents ;
    647  * il donnera ensuite la liste des fichiers recopiés et 
     745 * il donnera ensuite la liste des fichiers recopiés et
    648746 * des erreurs recontrées dans un fichier de log.
    649747 *
    650  * Script repris de ce fichier : 
     748 * Script repris de ce fichier :
    651749 * http://zone.spip.org/trac/spip-zone/browser/_outils_/repare_doc.html
    652750 *
     
    656754 * @return bool
    657755 */
    658 function medias_reparer_documents_fichiers () {
    659         /**
    660          * On crée un log vraiment au début du script.
    661          * Ainsi, on sait déjà en regardant les logs
    662          * si le script est lancé ou pas.
    663          */
    664         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Début de la procédure de réparation des documents.',"medias_nettoyage");
    665 
    666         $repertoire_img         = _DIR_IMG ;
    667         $docs_fichiers          = array();
    668         $pattern_img            = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
    669         $message_log            = array();
    670 
    671         // On va chercher dans IMG/*.*
    672         $fichiers = glob($repertoire_img . "*.*");
    673         foreach ($fichiers as $fichier) {
    674                 $docs_fichiers[] = $fichier;
    675         }
    676         $docs_fichiers = array_filter(array_diff($docs_fichiers, medias_lister_logos_fichiers())); // a voir si on n'a pas de logos ce que ça donne comme ça…
    677         $docs_fichiers = preg_replace($pattern_img, '', $docs_fichiers);
    678 
    679         if (count($docs_fichiers) > 0) {
    680                 // On va échapper chaque valeur d'url de fichier car
    681                 // il peut arriver d'avoir des apostrophes dans le nom de fichier...
    682                 // #fail
    683                 foreach ($docs_fichiers as $url_fichier) {
    684                         $url_fichiers[] = sql_quote($url_fichier);
    685                 }
    686                 $docs_bdd = sql_allfetsel('id_document,fichier', 'spip_documents', "fichier IN (" . join(",", $url_fichiers) . ")");
    687                 foreach ($docs_bdd as $document) {
    688                         $destination = preg_replace(',^([a-z0-3]+)_([^/]+\.(\1))$,i', '$1/$2', $document['fichier']);
    689                         // On va vérifier si on est bien sous la forme ../IMG/ext/nom_fichier.ext
    690                         // Sinon, on le construit manuellement.
    691                         // (ne pas oublier d'enlever '../IMG/' à notre variable de test
    692                         // car cette variable sera enresgitrée en BDD)
    693                         $destination_test = preg_replace($pattern_img, '', $destination);
    694                         if (count(explode("/", $destination_test)) == 1) {
    695                                 $destination = $document['extension'] . '/' . $destination_test ;
    696                         }
    697                         if ($document['fichier'] != $destination AND rename($repertoire_img . $document['fichier'],$repertoire_img . $destination)) {
    698                                 sql_updateq('spip_documents', array('fichier' => $destination), 'id_document=' . $document['id_document']);
    699                                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le fichier ' . $repertoire_img . $document['fichier'] . ' a été déplacé vers ' . $repertoire_img . $destination .'.';
    700                         } else {
    701                                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le fichier ' . $repertoire_img . $document['fichier'] . ' n\'a pu être déplacé vers ' . $repertoire_img . $destination . '.';
    702                         }
    703                 }
    704         } else {
    705                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de documents à réparer.';
    706         }
    707 
    708         spip_log("\n-------\n" . join("\n",$message_log) . "\n-------\n","medias_nettoyage");
    709         /**
    710          * Et là, on marque bien la fin du script dans les logs.
    711          */
    712         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de réparation des documents.',"medias_nettoyage");
    713 
    714         return true;
     756function medias_reparer_documents_fichiers ()
     757{
     758    /**
     759     * On crée un log vraiment au début du script.
     760     * Ainsi, on sait déjà en regardant les logs
     761     * si le script est lancé ou pas.
     762     */
     763    spip_log(
     764        date_format(date_create(), 'Y-m-d H:i:s')
     765        . ' : Début de la procédure de réparation des documents.',
     766        "medias_nettoyage"
     767    );
     768
     769    $repertoire_img     = _DIR_IMG ;
     770    $docs_fichiers      = array();
     771    $pattern_img        = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
     772    $message_log        = array();
     773
     774    // On va chercher dans IMG/*.*
     775    $fichiers = glob($repertoire_img . "*.*");
     776    foreach ($fichiers as $fichier) {
     777        $docs_fichiers[] = $fichier;
     778    }
     779    $docs_fichiers = array_filter(
     780        array_diff(
     781            $docs_fichiers,
     782            medias_lister_logos_fichiers()
     783        )
     784    ); // a voir si on n'a pas de logos ce que ça donne comme ça…
     785    $docs_fichiers = preg_replace($pattern_img, '', $docs_fichiers);
     786
     787    if (count($docs_fichiers) > 0) {
     788        // On va échapper chaque valeur d'url de fichier car
     789        // il peut arriver d'avoir des apostrophes dans le nom de fichier...
     790        // #fail
     791        foreach ($docs_fichiers as $url_fichier) {
     792            $url_fichiers[] = sql_quote($url_fichier);
     793        }
     794        $docs_bdd = sql_allfetsel(
     795            'id_document,fichier',
     796            'spip_documents',
     797            "fichier IN ("
     798            . join(",", $url_fichiers)
     799            . ")"
     800        );
     801        foreach ($docs_bdd as $document) {
     802            $destination = preg_replace(',^([a-z0-3]+)_([^/]+\.(\1))$,i', '$1/$2', $document['fichier']);
     803            // On va vérifier si on est bien sous la forme ../IMG/ext/nom_fichier.ext
     804            // Sinon, on le construit manuellement.
     805            // (ne pas oublier d'enlever '../IMG/' à notre variable de test
     806            // car cette variable sera enresgitrée en BDD)
     807            $destination_test = preg_replace($pattern_img, '', $destination);
     808            if (count(explode("/", $destination_test)) == 1) {
     809                $destination = $document['extension'] . '/' . $destination_test ;
     810            }
     811            if ($document['fichier'] != $destination
     812                and rename($repertoire_img . $document['fichier'], $repertoire_img . $destination)) {
     813                sql_updateq(
     814                    'spip_documents',
     815                    array('fichier' => $destination),
     816                    'id_document=' . $document['id_document']
     817                );
     818                $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     819                . ' : le fichier '
     820                . $repertoire_img
     821                . $document['fichier']
     822                . ' a été déplacé vers '
     823                . $repertoire_img
     824                . $destination
     825                .'.';
     826            } else {
     827                $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
     828                . ' : le fichier '
     829                . $repertoire_img
     830                . $document['fichier']
     831                . ' n\'a pu être déplacé vers '
     832                . $repertoire_img
     833                . $destination
     834                . '.';
     835            }
     836        }
     837    } else {
     838        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de documents à réparer.';
     839    }
     840
     841    spip_log(
     842        "\n-------\n"
     843        . join("\n", $message_log)
     844        . "\n-------\n",
     845        "medias_nettoyage"
     846    );
     847    /**
     848     * Et là, on marque bien la fin du script dans les logs.
     849     */
     850    spip_log(
     851        date_format(date_create(), 'Y-m-d H:i:s')
     852        . ' : Fin de la procédure de réparation des documents.',
     853        "medias_nettoyage"
     854    );
     855
     856    return true;
    715857}
    716858
  • _plugins_/medias_nettoyage/trunk/medias_nettoyage_options.php

    r82296 r82705  
    22/**
    33 * Options principales du plugin "Nettoyer la médiathèque"
    4  * 
     4 *
    55 * @plugin     Nettoyer la médiathèque
    66 * @copyright  2014
     
    1010 */
    1111
    12 if (!defined('_ECRIRE_INC_VERSION')) return;
     12if (!defined('_ECRIRE_INC_VERSION')) {
     13    return;
     14}
    1315
    14 if (!defined("_MEDIAS_NETTOYAGE_PAQUET"))
    15         define("_MEDIAS_NETTOYAGE_PAQUET", 200);
     16if (!defined("_MEDIAS_NETTOYAGE_PAQUET")) {
     17    define("_MEDIAS_NETTOYAGE_PAQUET", 200);
     18}
    1619
    17 if (!defined("_MEDIAS_NETTOYAGE_REP_ORPHELINS"))
    18         define("_MEDIAS_NETTOYAGE_REP_ORPHELINS", _DIR_IMG . 'orphelins/');
     20if (!defined("_MEDIAS_NETTOYAGE_REP_ORPHELINS")) {
     21    define("_MEDIAS_NETTOYAGE_REP_ORPHELINS", _DIR_IMG . 'orphelins/');
     22}
    1923
    2024?>
  • _plugins_/medias_nettoyage/trunk/medias_nettoyage_pipelines.php

    r82296 r82705  
    22/**
    33 * Pipelines du plugin "Nettoyer la médiathèque"
    4  * 
     4 *
    55 * @plugin     Nettoyer la médiathèque
    66 * @copyright  2014
     
    1010 */
    1111
    12 if (!defined("_ECRIRE_INC_VERSION")) return;
     12if (!defined("_ECRIRE_INC_VERSION")) {
     13    return;
     14}
    1315
    1416/**
    1517 * On se greffe au pipeline taches_generales_cron pour lancer nos tâches
    16  * 
     18 *
    1719 * @param  array $taches
    18  * 
     20 *
    1921 * @return array
    2022 */
    21 function medias_nettoyage_taches_generales_cron($taches) {
     23function medias_nettoyage_taches_generales_cron($taches)
     24{
    2225
    23         $taches['medias_deplacer_orphelins']    = 5 * 3600; // toutes les 5h
    24         $taches['medias_deplacer_obsoletes']    = 5 * 3600; // toutes les 5h
    25         $taches['medias_reparer_documents']     = 5 * 3600; // toutes les 5h
     26    $taches['medias_deplacer_orphelins']    = 5 * 3600; // toutes les 5h
     27    $taches['medias_deplacer_obsoletes']    = 5 * 3600; // toutes les 5h
     28    $taches['medias_reparer_documents']     = 5 * 3600; // toutes les 5h
    2629
    27         return $taches;
     30    return $taches;
    2831}
    2932
    3033/**
    3134 * Ajouter des éléments dans le header du privé.
    32  * 
     35 *
    3336 * @param  string $flux
    3437 * @return string
    3538 */
    36 function medias_nettoyage_header_prive($flux){
     39function medias_nettoyage_header_prive($flux)
     40{
    3741
    38         $page_exec = array('medias_rep_orphelins', 'medias_rep_img', 'medias_tabbord');
     42    $page_exec = array('medias_rep_orphelins', 'medias_rep_img', 'medias_tabbord');
    3943
    40         if (intval(spip_version()) == 2 AND in_array(_request('exec'), $page_exec)) {
    41                 $flux .= '<link rel="stylesheet" href="' . find_in_path('prive/style_prive_medias_nettoyage.css') . '" type="text/css" media="all" />';
    42         }
     44    if (intval(spip_version()) == 2 and in_array(_request('exec'), $page_exec)) {
     45        $flux .= '<link rel="stylesheet" href="'
     46        . find_in_path('prive/style_prive_medias_nettoyage.css')
     47        . '" type="text/css" media="all" />';
     48    }
    4349
    44         return $flux;
     50    return $flux;
    4551}
    4652
Note: See TracChangeset for help on using the changeset viewer.