Changeset 90942 in spip-zone


Ignore:
Timestamp:
Jul 20, 2015, 1:45:02 PM (4 years ago)
Author:
teddy.spip@…
Message:

On merge dans la branche r89673 les derniers correctifs du trunk

Location:
_plugins_/medias_nettoyage/branches/v0
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/medias_nettoyage/branches/v0

  • _plugins_/medias_nettoyage/branches/v0/action/supprimer_orphelins.php

    r83458 r90942  
    11<?php
     2
    23/**
    3  * Plugin Nettoyer la médiathèque
     4 * Plugin Nettoyer la médiathèque.
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    9  * @package    SPIP\Medias_nettoyage\Action\Supprimer_Orphelins
    1011 */
    11 
    12 
    13 if (!defined("_ECRIRE_INC_VERSION")) {
     12if (!defined('_ECRIRE_INC_VERSION')) {
    1413    return;
    1514}
    1615
    17 function action_supprimer_orphelins_dist ()
     16function action_supprimer_orphelins_dist()
    1817{
    1918    $securiser_action = charger_fonction('securiser_action', 'inc');
    2019    $arg = $securiser_action();
    2120}
    22 
    23 ?>
  • _plugins_/medias_nettoyage/branches/v0/inc/medias_deplacer_doc_rep_orph.php

    r87689 r90942  
    11<?php
     2
    23/**
    3  * Fonctions d'actions du plugin "Nettoyer la médiathèque"
     4 * Fonctions d'actions du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    911 */
    10 if (! defined('_ECRIRE_INC_VERSION')) {
     12if (!defined('_ECRIRE_INC_VERSION')) {
    1113    return;
    1214}
     
    2123 * @uses _DIR_IMG
    2224 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    23  *     
     25 *
    2426 * @return array
    2527 */
    2628function inc_medias_deplacer_doc_rep_orph_dist()
    2729{
    28     /**
     30    /*
    2931     * On crée un log vraiment au début du script.
    3032     * Ainsi, on sait déjà en regardant les logs
    3133     * si le script est lancé ou pas.
    3234     */
    33     spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Début de la procédure de déplacement.', "medias_nettoyage");
    34    
     35    spip_log(date_format(date_create(), 'Y-m-d H:i:s').' : Début de la procédure de déplacement.', 'medias_nettoyage');
     36
    3537    $fichiers_orphelins = medias_lister_documents_repertoire_orphelins();
    3638    $fichiers_deplaces = array();
    3739    $message_log = array();
    3840    $repertoire_orphelins = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    39     $pattern_img = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
    40    
     41    $pattern_img = '/'.preg_replace("/\//", "\/", _DIR_IMG).'/';
     42
    4143    // On crée le répertoire IMG/orphelins s'il n'existe pas
    4244    medias_creer_repertoires_orphelins();
    4345    // On crée les répertoires d'extensions dans IMG/orphelins
    4446    medias_creer_extensions_repertoires($repertoire_orphelins);
    45    
     47
    4648    // Si on n'a pas de fichiers orphelins, on ne lance pas la procédure.
    4749    if (count($fichiers_orphelins) > 0) {
     
    5557            // mais on laisse cette sécu au cas où on a d'autres répertoires à créer.
    5658            while ($i < $profondeur) {
    57                 $repertoires = $repertoires . $chemin[$i] . '/';
    58                 $i ++;
     59                $repertoires = $repertoires.$chemin[$i].'/';
     60                ++$i;
    5961            }
    6062            if (!is_dir($repertoires)) {
    6163                @mkdir($repertoires, _SPIP_CHMOD);
    62                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le répertoire ' . $repertoires . ' a été créé.';
     64                $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : le répertoire '.$repertoires.' a été créé.';
    6365            }
    6466            // Hop, on déplace notre fichier vers IMG/orphelins
    6567            @rename($fichier, $destination);
    66             $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le fichier ' . $fichier . ' a été déplacé vers ' . $destination . '.';
     68            $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : le fichier '.$fichier.' a été déplacé vers '.$destination.'.';
    6769            // On construit un tableau dans le cas où qqn voudrait utiliser cette donnée.
    6870            // Pour le moment inutilisé.
     
    7072        }
    7173    } else {
    72         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il ne semble pas avoir de documents orphelins dans IMG/';
     74        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Il ne semble pas avoir de documents orphelins dans IMG/';
    7375    }
    74    
    75     spip_log("\n-------\n" . join("\n", $message_log) . "\n-------\n", "medias_nettoyage");
    76     /**
     76
     77    spip_log("\n-------\n".implode("\n", $message_log)."\n-------\n", 'medias_nettoyage');
     78    /*
    7779     * Et là, on marque bien la fin du script dans les logs.
    7880     */
    79     spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de déplacement.', "medias_nettoyage");
    80    
     81    spip_log(date_format(date_create(), 'Y-m-d H:i:s').' : Fin de la procédure de déplacement.', 'medias_nettoyage');
     82
    8183    return true;
    8284}
    83 
    84 ?>
  • _plugins_/medias_nettoyage/branches/v0/inc/medias_deplacer_rep_obsoletes.php

    r87689 r90942  
    11<?php
    2 /**
    3  * Fonctions d'actions du plugin "Nettoyer la médiathèque"
     2
     3/**
     4 * Fonctions d'actions du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
     
    2325 * @uses _DIR_IMG
    2426 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    25  *     
    26  * @return void
    2727 */
    2828function inc_medias_deplacer_rep_obsoletes_dist()
    2929{
    30     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");
    31    
     30    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');
     31
    3232    $pattern_obsoletes = array(
    33         "cache-",
    34         "icones"
     33        'cache-',
     34        'icones',
    3535    );
    3636    $repertoire_img = _DIR_IMG;
     
    3838    $repertoires_obsoletes = array();
    3939    $message_log = array();
    40     $pattern_img = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
    41    
     40    $pattern_img = '/'.preg_replace("/\//", "\/", $repertoire_img).'/';
     41
    4242    // On crée le répertoire IMG/orphelins
    4343    medias_creer_repertoires_orphelins();
    44    
     44
    4545    // on cherche les fichiers de type IMG/cache-20x20-blabla.ext
    4646    $fichiers_obsoletes = find_all_in_path('IMG/', '/cache-');
    4747    // on vérifie tout de même que ces fichiers ne font pas parti des documents en BDD
    4848    $fichiers_obsoletes = array_unique(array_diff($fichiers_obsoletes, medias_lister_documents_bdd()));
    49    
     49
    5050    foreach ($pattern_obsoletes as $pattern) {
    51         $repertoires = glob($repertoire_img . $pattern . "*");
     51        $repertoires = glob($repertoire_img.$pattern.'*');
    5252        if (is_array($repertoires) and count($repertoires) > 0) {
    5353            $repertoires_obsoletes = array_merge($repertoires_obsoletes, $repertoires);
     
    5656    // on fusionne avec les fichiers obsolètes
    5757    $repertoires_obsoletes = array_merge($repertoires_obsoletes, $fichiers_obsoletes);
    58    
     58
    5959    // on enlève les valeurs vides du tableau.
    6060    $repertoires_obsoletes = array_filter($repertoires_obsoletes);
    61    
     61
    6262    if (count($repertoires_obsoletes) > 0) {
    6363        foreach ($repertoires_obsoletes as $repertoire_source) {
    6464            $repertoire_destination = preg_replace($pattern_img, $repertoire_orphelins, $repertoire_source);
    6565            @rename($repertoire_source, $repertoire_destination);
    66             $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Déplacement de ' . $repertoire_source . ' vers ' . $repertoire_destination;
     66            $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Déplacement de '.$repertoire_source.' vers '.$repertoire_destination;
    6767        }
    6868    } else {
    6969        // S'il n'y a pas de dossiers obsolètes, on met un message histoire de ne pas rester dans le brouillard.
    70         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de dossiers ou de fichiers obsolètes';
    71     }
    72     spip_log("\n-------\n" . join("\n", $message_log) . "\n-------\n", "medias_nettoyage");
    73     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");
     70        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Il n\'y a pas de dossiers ou de fichiers obsolètes';
     71    }
     72    spip_log("\n-------\n".implode("\n", $message_log)."\n-------\n", 'medias_nettoyage');
     73    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');
     74
    7475    return;
    7576}
     
    8485 * @uses _DIR_IMG
    8586 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    86  *     
     87 *
    8788 * @return array
    8889 */
    8990function medias_deplacer_documents_repertoire_orphelins()
    9091{
    91     /**
     92    /*
    9293     * On crée un log vraiment au début du script.
    9394     * Ainsi, on sait déjà en regardant les logs
    9495     * si le script est lancé ou pas.
    9596     */
    96     spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Début de la procédure de déplacement.', "medias_nettoyage");
    97    
     97    spip_log(date_format(date_create(), 'Y-m-d H:i:s').' : Début de la procédure de déplacement.', 'medias_nettoyage');
     98
    9899    $fichiers_orphelins = medias_lister_documents_repertoire_orphelins();
    99100    $fichiers_deplaces = array();
    100101    $message_log = array();
    101102    $repertoire_orphelins = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    102     $pattern_img = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
    103    
     103    $pattern_img = '/'.preg_replace("/\//", "\/", _DIR_IMG).'/';
     104
    104105    // On crée le répertoire IMG/orphelins s'il n'existe pas
    105106    medias_creer_repertoires_orphelins();
    106107    // On crée les répertoires d'extensions dans IMG/orphelins
    107108    medias_creer_extensions_repertoires($repertoire_orphelins);
    108    
     109
    109110    // Si on n'a pas de fichiers orphelins, on ne lance pas la procédure.
    110111    if (count($fichiers_orphelins) > 0) {
     
    118119            // mais on laisse cette sécu au cas où on a d'autres répertoires à créer.
    119120            while ($i < $profondeur) {
    120                 $repertoires = $repertoires . $chemin[$i] . '/';
    121                 $i ++;
     121                $repertoires = $repertoires.$chemin[$i].'/';
     122                ++$i;
    122123            }
    123             if (! is_dir($repertoires)) {
     124            if (!is_dir($repertoires)) {
    124125                @mkdir($repertoires, _SPIP_CHMOD);
    125                 $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le répertoire ' . $repertoires . ' a été créé.';
     126                $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : le répertoire '.$repertoires.' a été créé.';
    126127            }
    127128            // Hop, on déplace notre fichier vers IMG/orphelins
    128129            @rename($fichier, $destination);
    129             $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : le fichier ' . $fichier . ' a été déplacé vers ' . $destination . '.';
     130            $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : le fichier '.$fichier.' a été déplacé vers '.$destination.'.';
    130131            // On construit un tableau dans le cas où qqn voudrait utiliser cette donnée.
    131132            // Pour le moment inutilisé.
     
    133134        }
    134135    } else {
    135         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il ne semble pas avoir de documents orphelins dans IMG/';
    136     }
    137    
    138     spip_log("\n-------\n" . join("\n", $message_log) . "\n-------\n", "medias_nettoyage");
    139     /**
     136        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Il ne semble pas avoir de documents orphelins dans IMG/';
     137    }
     138
     139    spip_log("\n-------\n".implode("\n", $message_log)."\n-------\n", 'medias_nettoyage');
     140    /*
    140141     * Et là, on marque bien la fin du script dans les logs.
    141142     */
    142     spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de déplacement.', "medias_nettoyage");
    143    
     143    spip_log(date_format(date_create(), 'Y-m-d H:i:s').' : Fin de la procédure de déplacement.', 'medias_nettoyage');
     144
    144145    return true;
    145146}
     
    160161 * @uses medias_lister_logos_fichiers()
    161162 * @uses _DIR_IMG
    162  *     
     163 *
    163164 * @return bool
    164165 */
    165166function medias_reparer_documents_fichiers()
    166167{
    167     /**
     168    /*
    168169     * On crée un log vraiment au début du script.
    169170     * Ainsi, on sait déjà en regardant les logs
    170171     * si le script est lancé ou pas.
    171172     */
    172     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");
    173    
     173    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');
     174
    174175    $repertoire_img = _DIR_IMG;
    175176    $docs_fichiers = array();
    176     $pattern_img = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
     177    $pattern_img = '/'.preg_replace("/\//", "\/", $repertoire_img).'/';
    177178    $message_log = array();
    178    
     179
    179180    // On va chercher dans IMG/*.*
    180     $fichiers = glob($repertoire_img . "*.*");
     181    $fichiers = glob($repertoire_img.'*.*');
    181182    if (is_array($fichiers) and count($fichiers) > 0) {
    182183        foreach ($fichiers as $fichier) {
     
    186187    }
    187188    $docs_fichiers = preg_replace($pattern_img, '', $docs_fichiers);
    188    
     189
    189190    if (count($docs_fichiers) > 0) {
    190191        // On va échapper chaque valeur d'url de fichier car
     
    194195            $url_fichiers[] = sql_quote($url_fichier);
    195196        }
    196         $docs_bdd = sql_allfetsel('id_document,fichier', 'spip_documents', "fichier IN (" . join(",", $url_fichiers) . ")");
    197        
     197        $docs_bdd = sql_allfetsel('id_document,fichier', 'spip_documents', 'fichier IN ('.implode(',', $url_fichiers).')');
     198
    198199        if (is_array($docs_bdd) and count($docs_bdd) > 0) {
    199200            foreach ($docs_bdd as $document) {
     
    204205                // car cette variable sera enresgitrée en BDD)
    205206                $destination_test = preg_replace($pattern_img, '', $destination);
    206                 if (count(explode("/", $destination_test)) == 1) {
    207                     $destination = $document['extension'] . '/' . $destination_test;
     207                if (count(explode('/', $destination_test)) == 1) {
     208                    $destination = $document['extension'].'/'.$destination_test;
    208209                }
    209                 if ($document['fichier'] != $destination and rename($repertoire_img . $document['fichier'], $repertoire_img . $destination)) {
     210                if ($document['fichier'] != $destination and rename($repertoire_img.$document['fichier'], $repertoire_img.$destination)) {
    210211                    sql_updateq('spip_documents', array(
    211                         'fichier' => $destination
    212                     ), 'id_document=' . $document['id_document']);
    213                     $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 . '.';
     212                        'fichier' => $destination,
     213                    ), 'id_document='.$document['id_document']);
     214                    $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.'.';
    214215                } else {
    215                     $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 . '.';
     216                    $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.'.';
    216217                }
    217218            }
    218219        }
    219220    } else {
    220         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de documents à réparer.';
    221     }
    222    
    223     spip_log("\n-------\n" . join("\n", $message_log) . "\n-------\n", "medias_nettoyage");
    224     /**
     221        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Il n\'y a pas de documents à réparer.';
     222    }
     223
     224    spip_log("\n-------\n".implode("\n", $message_log)."\n-------\n", 'medias_nettoyage');
     225    /*
    225226     * Et là, on marque bien la fin du script dans les logs.
    226227     */
    227     spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Fin de la procédure de réparation des documents.', "medias_nettoyage");
    228    
     228    spip_log(date_format(date_create(), 'Y-m-d H:i:s').' : Fin de la procédure de réparation des documents.', 'medias_nettoyage');
     229
    229230    return true;
    230231}
    231 
    232 ?>
  • _plugins_/medias_nettoyage/branches/v0/inc/medias_reparer_doc_fichiers.php

    r83459 r90942  
    11<?php
     2
    23/**
    3  * Fonctions d'actions du plugin "Nettoyer la médiathèque"
     4 * Fonctions d'actions du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    911 */
    10 
    11 
    1212if (!defined('_ECRIRE_INC_VERSION')) {
    1313    return;
     
    3232 * @return bool
    3333 */
    34 function inc_medias_reparer_doc_fichiers_dist ()
     34function inc_medias_reparer_doc_fichiers_dist()
    3535{
    36     /**
     36    /*
    3737     * On crée un log vraiment au début du script.
    3838     * Ainsi, on sait déjà en regardant les logs
     
    4141    spip_log(
    4242        date_format(date_create(), 'Y-m-d H:i:s')
    43         . ' : Début de la procédure de réparation des documents.',
    44         "medias_nettoyage"
     43        .' : Début de la procédure de réparation des documents.',
     44        'medias_nettoyage'
    4545    );
    4646
    47     $repertoire_img     = _DIR_IMG ;
    48     $docs_fichiers      = array();
    49     $pattern_img        = "/" . preg_replace("/\//", "\/", $repertoire_img) . "/";
    50     $message_log        = array();
     47    $repertoire_img = _DIR_IMG;
     48    $docs_fichiers = array();
     49    $pattern_img = '/'.preg_replace("/\//", "\/", $repertoire_img).'/';
     50    $message_log = array();
    5151
    5252    // On va chercher dans IMG/*.*
    53     $fichiers = glob($repertoire_img . "*.*");
     53    $fichiers = glob($repertoire_img.'*.*');
    5454    if (is_array($fichiers) and count($fichiers) > 0) {
    5555        foreach ($fichiers as $fichier) {
     
    7575            'id_document,fichier',
    7676            'spip_documents',
    77             "fichier IN ("
    78             . join(",", $url_fichiers)
    79             . ")"
     77            'fichier IN ('
     78            .implode(',', $url_fichiers)
     79            .')'
    8080        );
    8181
     
    8888                // car cette variable sera enresgitrée en BDD)
    8989                $destination_test = preg_replace($pattern_img, '', $destination);
    90                 if (count(explode("/", $destination_test)) == 1) {
    91                     $destination = $document['extension'] . '/' . $destination_test ;
     90                if (count(explode('/', $destination_test)) == 1) {
     91                    $destination = $document['extension'].'/'.$destination_test;
    9292                }
    9393                if ($document['fichier'] != $destination
    94                     and rename($repertoire_img . $document['fichier'], $repertoire_img . $destination)) {
     94                    and rename($repertoire_img.$document['fichier'], $repertoire_img.$destination)) {
    9595                    sql_updateq(
    9696                        'spip_documents',
    9797                        array('fichier' => $destination),
    98                         'id_document=' . $document['id_document']
     98                        'id_document='.$document['id_document']
    9999                    );
    100100                    $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
    101                     . ' : le fichier '
    102                     . $repertoire_img
    103                     . $document['fichier']
    104                     . ' a été déplacé vers '
    105                     . $repertoire_img
    106                     . $destination
     101                    .' : le fichier '
     102                    .$repertoire_img
     103                    .$document['fichier']
     104                    .' a été déplacé vers '
     105                    .$repertoire_img
     106                    .$destination
    107107                    .'.';
    108108                } else {
    109109                    $message_log[] = date_format(date_create(), 'Y-m-d H:i:s')
    110                     . ' : le fichier '
    111                     . $repertoire_img
    112                     . $document['fichier']
    113                     . ' n\'a pu être déplacé vers '
    114                     . $repertoire_img
    115                     . $destination
    116                     . '.';
     110                    .' : le fichier '
     111                    .$repertoire_img
     112                    .$document['fichier']
     113                    .' n\'a pu être déplacé vers '
     114                    .$repertoire_img
     115                    .$destination
     116                    .'.';
    117117                }
    118118            }
    119119        }
    120120    } else {
    121         $message_log[] = date_format(date_create(), 'Y-m-d H:i:s') . ' : Il n\'y a pas de documents à réparer.';
     121        $message_log[] = date_format(date_create(), 'Y-m-d H:i:s').' : Il n\'y a pas de documents à réparer.';
    122122    }
    123123
    124124    spip_log(
    125125        "\n-------\n"
    126         . join("\n", $message_log)
    127         . "\n-------\n",
    128         "medias_nettoyage"
     126        .implode("\n", $message_log)
     127        ."\n-------\n",
     128        'medias_nettoyage'
    129129    );
    130     /**
     130    /*
    131131     * Et là, on marque bien la fin du script dans les logs.
    132132     */
    133133    spip_log(
    134134        date_format(date_create(), 'Y-m-d H:i:s')
    135         . ' : Fin de la procédure de réparation des documents.',
    136         "medias_nettoyage"
     135        .' : Fin de la procédure de réparation des documents.',
     136        'medias_nettoyage'
    137137    );
    138138
    139139    return true;
    140140}
    141 
    142 ?>
  • _plugins_/medias_nettoyage/branches/v0/lang/paquet-medias_nettoyage_fr.php

    r89673 r90942  
    66// Module: paquet-medias_nettoyage
    77// Langue: fr
    8 // Date: 14-04-2014 12:34:22
     8// Date: 14-04-2014-2015 12:34:22
    99// Items: 2
    1010
    11 if (!defined('_ECRIRE_INC_VERSION')) return;
     11if (!defined('_ECRIRE_INC_VERSION')) {
     12    return;
     13}
    1214
    1315$GLOBALS[$GLOBALS['idx_lang']] = array(
    1416
    1517// M
    16         'medias_nettoyage_description' => 'Ce plugin permet de lister les documents présents physiquement dans le répertoire IMG mais qui ne sont plus référencés en BDD. Une tâche de fond déplace ces fichiers dans un répertoire IMG/orphelins.',
     18    'medias_nettoyage_description' => 'Ce plugin permet de lister les documents présents physiquement dans le répertoire IMG mais qui ne sont plus référencés en BDD. Une tâche de fond déplace ces fichiers dans un répertoire IMG/orphelins.',
    1719    'medias_nettoyage_nom' => 'Nettoyer la médiathèque',
    18         'medias_nettoyage_slogan' => 'On range nos medias!',
     20    'medias_nettoyage_slogan' => 'On range nos medias!',
    1921);
    20 ?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_autorisations.php

    r89673 r90942  
    11<?php
     2
    23/**
    3  * Définit les autorisations du plugin Nettoyer la médiathèque
     4 * Définit les autorisations du plugin Nettoyer la médiathèque.
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    9  * @package    SPIP\Medias_nettoyage\Autorisations
    1011 */
    11 
    12 if (!defined("_ECRIRE_INC_VERSION")) {
     12if (!defined('_ECRIRE_INC_VERSION')) {
    1313    return;
    1414}
    1515
    1616/**
    17  * Fonction d'appel pour le pipeline
     17 * Fonction d'appel pour le pipeline.
     18 *
    1819 * @pipeline autoriser
    1920 */
     
    2324
    2425/**
    25  * Autorisation pour l'onglet medias_tabbord
     26 * Autorisation pour l'onglet medias_tabbord.
    2627 *
    2728 * @param  string $faire Action demandée
     
    3031 * @param  array  $qui   Description de l'auteur demandant l'autorisation
    3132 * @param  array  $opt   Options de cette autorisation
     33 *
    3234 * @return bool          true s'il a le droit, false sinon
    33 **/
     35 **/
    3436function autoriser_medias_tabbord_onglet_dist($faire, $type, $id, $qui, $opt)
    3537{
     
    3840
    3941/**
    40  * Autorisation pour l'onglet medias_rep_orphelins
     42 * Autorisation pour l'onglet medias_rep_orphelins.
    4143 *
    4244 * @param  string $faire Action demandée
     
    4547 * @param  array  $qui   Description de l'auteur demandant l'autorisation
    4648 * @param  array  $opt   Options de cette autorisation
     49 *
    4750 * @return bool          true s'il a le droit, false sinon
    48 **/
     51 **/
    4952function autoriser_medias_rep_orphelins_onglet_dist($faire, $type, $id, $qui, $opt)
    5053{
     
    5356
    5457/**
    55  * Autorisation pour l'onglet medias_rep_img
     58 * Autorisation pour l'onglet medias_rep_img.
    5659 *
    5760 * @param  string $faire Action demandée
     
    6063 * @param  array  $qui   Description de l'auteur demandant l'autorisation
    6164 * @param  array  $opt   Options de cette autorisation
     65 *
    6266 * @return bool          true s'il a le droit, false sinon
    63 **/
     67 **/
    6468function autoriser_medias_rep_img_onglet_dist($faire, $type, $id, $qui, $opt)
    6569{
     
    6872
    6973/**
    70  * Autorisation de suppression d'un fichier orphelin
     74 * Autorisation de suppression d'un fichier orphelin.
    7175 *
    7276 * @param  string $faire Action demandée
     
    7579 * @param  array  $qui   Description de l'auteur demandant l'autorisation
    7680 * @param  array  $opt   Options de cette autorisation
     81 *
    7782 * @return bool          true s'il a le droit, false sinon
    78 **/
     83 **/
    7984function autoriser_medias_orphelins_supprimer_dist($faire, $type, $id, $qui, $opt)
    8085{
    8186    return $qui['statut'] == '0minirezo' and $qui['webmestre'] == 'oui';
    8287}
    83 
    84 ?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_fonctions.php

    r89673 r90942  
    11<?php
    2 /**
    3  * Fonctions utilitaires du plugin "Nettoyer la médiathèque"
     2
     3/**
     4 * Fonctions utilitaires du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    9  * @package    SPIP\Medias_nettoyage\Fonctions
    10  */
    11 
     11 */
    1212if (!defined('_ECRIRE_INC_VERSION')) {
    1313    return;
     
    2323 *         Tableau des extensions uniques
    2424 */
    25 function medias_lister_extensions_documents ()
     25function medias_lister_extensions_documents()
    2626{
    2727    $extensions = array();
     
    3535    // On rajoute le répertoire "vignettes"
    3636    $extensions[] = 'vignettes';
    37     return $extensions ;
     37    // Sécurité, on enlève les valeurs vides du tableau d'extensions.
     38    $extensions = array_filter($extensions);
     39    sort($extensions);
     40
     41    return $extensions;
    3842}
    3943
     
    4751 *         Par défaut, on prend _DIR_IMG en référence.
    4852 *         On peut l'utiliser aussi pour le répertoire IMG/orphelins
    49  * @return void
    50  */
    51 function medias_creer_extensions_repertoires ($repertoire_img = _DIR_IMG)
     53 */
     54function medias_creer_extensions_repertoires($repertoire_img = _DIR_IMG)
    5255{
    5356    $extensions = medias_lister_extensions_documents();
     
    5558    if (is_array($extensions) and count($extensions) > 0) {
    5659        foreach ($extensions as $extension) {
    57             if (!is_dir($repertoire_img . $extension)) {
    58                 @mkdir($repertoire_img . $extension, _SPIP_CHMOD);
    59             }
    60         }
    61     }
     60            if (!is_dir($repertoire_img.$extension)) {
     61                @mkdir($repertoire_img.$extension, _SPIP_CHMOD);
     62            }
     63        }
     64    }
     65
    6266    return;
    6367}
     
    6872 *
    6973 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    70  *
    71  * @return void
    72  */
    73 function medias_creer_repertoires_orphelins ()
     74 */
     75function medias_creer_repertoires_orphelins()
    7476{
    7577    if (!is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
    7678        @mkdir(_MEDIAS_NETTOYAGE_REP_ORPHELINS, _SPIP_CHMOD);
    7779    }
     80
    7881    return;
    7982}
     
    8588 *         Par défaut, on prend _DIR_IMG en référence.
    8689 *         On peut l'utiliser aussi pour le répertoire IMG/orphelins ou tout autre nom de répertoire.
    87  * @return array
    88  */
    89 function medias_lister_repertoires ($repertoire_img = _DIR_IMG)
     90 *
     91 * @return array
     92 */
     93function medias_lister_repertoires($repertoire_img = _DIR_IMG)
    9094{
    9195    $repertoires = array();
     
    9498    if (is_dir($repertoire_img)) {
    9599        // Avec la fonction scandir, on liste le contenu (existant) du répertoire cible.
    96         $rep_img = array_diff(scandir($repertoire_img), array('..','.','.svn')); // On ne liste pas le répertoire .svn
     100        $rep_img = array_diff(scandir($repertoire_img), array('..', '.', '.svn')); // On ne liste pas le répertoire .svn
    97101        foreach ($rep_img as $repertoire) {
    98102            // On vérifie que c'est un répertoire et non un fichier.
    99             if (is_dir($repertoire_img . $repertoire)) {
    100                 $repertoires[] = $repertoire_img . $repertoire;
    101             }
    102         }
    103     }
     103            if (is_dir($repertoire_img.$repertoire)) {
     104                $repertoires[] = $repertoire_img.$repertoire;
     105            }
     106        }
     107    }
     108    // Sécurité, on enlève les éventuelles valeurs vides du tableau
     109    $repertoires = array_filter($repertoires);
    104110
    105111    return (array) $repertoires;
     
    107113
    108114/**
    109  * Lister tous les fichiers non distants enregistrés en BDD
     115 * Lister tous les fichiers non distants enregistrés en BDD.
    110116 *
    111117 * @uses get_spip_doc()
     
    114120 *         Tableau contenant les urls des fichiers
    115121 */
    116 function medias_lister_documents_bdd ()
     122function medias_lister_documents_bdd()
    117123{
    118124    $docs_fichiers = array();
     
    122128    if (count($docs_bdd) > 0) {
    123129        foreach ($docs_bdd as $doc) {
    124             /**
     130            /*
    125131             * On formate par rapport au répertoire ../IMG/
    126132             * On évite les doubles // qu'il peut y avoir
    127133             */
    128             $docs_fichiers[] = preg_replace("/\/\//", "/", get_spip_doc($doc['fichier']));
    129         }
    130         // on enlève les url vides issues de la base :
    131         $docs_fichiers = array_filter($docs_fichiers);
    132     }
    133 
     134            $docs_fichiers[] = get_spip_doc($doc['fichier']);
     135        }
     136    }
     137
     138    // On enlève les éventuels doubles slash dans les valeurs du tableau.
     139    $docs_fichiers = preg_replace("/\/\//", '/', $docs_fichiers);
     140    // Sécurité, on enlève les valeurs vides du tableau
     141    $docs_fichiers = array_filter($docs_fichiers);
    134142    // On trie dans l'ordre alphabétique :
    135143    sort($docs_fichiers);
     
    139147
    140148/**
    141  * Donner la taille en octets des documents non-distants enregistrés en BDD
    142  *
    143  * @return integer
     149 * Donner la taille en octets des documents non-distants enregistrés en BDD.
     150 *
     151 * @return int
    144152 */
    145153function medias_lister_documents_bdd_taille()
    146154{
    147155    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "distant='non' AND fichier!=''");
     156
    148157    return $docs_bdd['taille_totale'];
    149158}
    150159
    151160/**
    152  * Afficher le nombre de documents enregistrés en BDD
    153  *
    154  * @return integer|string
    155  */
    156 function medias_lister_documents_bdd_complet_compteur ()
     161 * Afficher le nombre de documents enregistrés en BDD.
     162 *
     163 * @return int|string
     164 */
     165function medias_lister_documents_bdd_complet_compteur()
    157166{
    158167    return sql_countsel('spip_documents');
     
    160169
    161170/**
    162  * Donner la taille en octets de tous les documents enregistrés en BDD
    163  *
    164  * @return integer|string
     171 * Donner la taille en octets de tous les documents enregistrés en BDD.
     172 *
     173 * @return int|string
    165174 */
    166175function medias_lister_documents_bdd_complet_taille()
    167176{
    168     $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "id_document > 0");
     177    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', 'id_document > 0');
     178
    169179    return $docs_bdd['taille_totale'];
    170180}
     
    172182/**
    173183 * Lister les documents enregistrés en BDD
    174  * mais n'ayant plus de fichiers physiques dans IMG/
     184 * mais n'ayant plus de fichiers physiques dans IMG/.
    175185 *
    176186 * @uses medias_lister_documents_bdd()
     
    183193    $docs_bdd = array_unique(array_diff(medias_lister_documents_bdd(), medias_lister_documents_repertoire()));
    184194    sort($docs_bdd);
     195
    185196    return (array) $docs_bdd;
    186197}
    187198
    188199/**
    189  * Donner la taille en octets des documents enregistrés en BDD
     200 * Donner la taille en octets des documents enregistrés en BDD.
    190201 *
    191202 * @uses medias_lister_documents_bdd_orphelins()
     
    193204 * @uses get_spip_doc()
    194205 *
    195  * @return integer
     206 * @return int
    196207 */
    197208function medias_lister_documents_bdd_orphelins_taille()
    198209{
    199     $docs_orphelins    = medias_lister_documents_bdd_orphelins();
    200     $taille         = 0;
    201     $pattern_img        = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
     210    $docs_orphelins = medias_lister_documents_bdd_orphelins();
     211    $taille = 0;
     212    $pattern_img = '/'.preg_replace("/\//", "\/", _DIR_IMG).'/';
    202213
    203214    if (count($docs_orphelins) > 0) {
     
    206217            'spip_documents',
    207218            "fichier IN ('"
    208             . join("','", preg_replace($pattern_img, '', $docs_orphelins)) . "')"
     219            .implode("','", preg_replace($pattern_img, '', $docs_orphelins))."')"
    209220        );
    210221        if (is_array($docs_bdd) and count($docs_bdd) > 0) {
    211222            foreach ($docs_bdd as $document_bdd) {
    212223                if (!file_exists(get_spip_doc($document_bdd['fichier']))) {
    213                     $taille = $taille + ($document_bdd['taille']/1000);
     224                    $taille = $taille + ($document_bdd['taille'] / 1000);
    214225                    // On divise par 1000 pour éviter la limite de l'integer php.
    215226                }
     
    217228        }
    218229    }
     230
    219231    return $taille * 1000;
    220232}
     
    222234/**
    223235 * Lister les documents présents dans le répertoire des extensions de IMG/
     236 * Ne pas prendre en compte les fichiers 'index.html' et 'robots.txt' qui peuvent être présent.
    224237 *
    225238 * @uses medias_lister_extensions_documents()
     
    229242 *        On peut passer un nom de répertoire/chemin en paramètre.
    230243 *        Par défaut, on prend le répertoire IMG/
    231  * @return array
    232  */
    233 function medias_lister_documents_repertoire ($repertoire_img = _DIR_IMG)
     244 *
     245 * @return array
     246 */
     247function medias_lister_documents_repertoire($repertoire_img = _DIR_IMG)
    234248{
    235249    $docs_fichiers = array();
    236 
     250    // On exclu certains fichiers du traitement
     251    $white_list = array($repertoire_img.'index.html', $repertoire_img.'robots.txt');
     252
     253    // On va parcourir chaque répertoire d'extension de IMG/
    237254    foreach (medias_lister_extensions_documents() as $extension) {
    238255        // Par sécurité, on vérifie que l'extension a bel
    239256        // et bien un répertoire physique
    240         if (is_dir($repertoire_img . $extension)) {
     257        if (is_dir($repertoire_img.$extension)) {
    241258            // On va chercher dans IMG/$extension/*.*
    242             $fichiers = glob($repertoire_img . "$extension/*.*");
     259            $fichiers = glob($repertoire_img."$extension/*.*");
     260            // On exclu certains fichiers du répertoire $extension du traitement
     261            $white_list[] = $repertoire_img."$extension/index.html";
     262            $white_list[] = $repertoire_img."$extension/robots.txt";
     263            // On vérifie que c'est bien un tableau, avec au moins un élément.
    243264            if (is_array($fichiers) and count($fichiers) > 0) {
    244                 foreach ($fichiers as $fichier) {
    245                     $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    246                 }
     265                // On ajoute ce qui a été trouvé au tableau $docs_fichiers
     266                $docs_fichiers = array_merge($docs_fichiers, $fichiers);
    247267            }
    248268        }
    249269    }
    250270    // On va chercher dans IMG/*.*
    251     $fichiers = glob($repertoire_img . "*.*");
     271    $fichiers = glob($repertoire_img.'*.*');
    252272    // On vérifie que c'est bien un tableau, avec au moins un élément.
    253273    if (is_array($fichiers) and count($fichiers) > 0) {
    254         foreach ($fichiers as $fichier) {
    255             $docs_fichiers[] = $fichier;
    256         }
    257     }
     274        // On ajoute ce qui a été trouvé au tableau $docs_fichiers
     275        $docs_fichiers = array_merge($docs_fichiers, $fichiers);
     276    }
     277    // La fonction preg_replace peut s'appliquer à un tableau.
     278    // Il retournera le tableau nettoyé.
     279    $docs_fichiers = preg_replace("/\/\//", '/', $docs_fichiers);
    258280    $docs_fichiers = array_unique(
    259281        array_diff(
     
    262284        )
    263285    );
     286    // On sort du tableau les fichiers qui n'ont pas à être contrôlés.
     287    $docs_fichiers = array_diff($docs_fichiers, $white_list);
     288    // Sécurité, on enlève les valeurs vides du tableau
     289    $docs_fichiers = array_filter($docs_fichiers);
    264290    sort($docs_fichiers);
    265291
     
    269295/**
    270296 * Retourner la taille en octets des fichiers physiques présents
    271  * dans les répertoires d'extensions de IMG
     297 * dans les répertoires d'extensions de IMG.
    272298 *
    273299 * @uses medias_lister_documents_repertoire()
    274300 * @uses medias_calculer_taille_fichiers()
    275301 *
    276  * @return integer
    277  */
    278 function medias_lister_documents_repertoire_taille ()
     302 * @return int
     303 */
     304function medias_lister_documents_repertoire_taille()
    279305{
    280306    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire());
     
    289315 * @return array
    290316 */
    291 function medias_lister_documents_repertoire_orphelins ()
     317function medias_lister_documents_repertoire_orphelins()
    292318{
    293319    $docs_fichiers = array_unique(array_diff(medias_lister_documents_repertoire(), medias_lister_documents_bdd()));
    294320    sort($docs_fichiers);
     321
    295322    return (array) $docs_fichiers;
    296323}
     
    298325/**
    299326 * Retourner la taille en octets des fichiers physiques orphelins
    300  * présents dans les répertoires d'extensions de IMG
     327 * présents dans les répertoires d'extensions de IMG.
    301328 *
    302329 * @uses medias_lister_documents_repertoire_orphelins()
    303330 * @uses medias_calculer_taille_fichiers()
    304331 *
    305  * @return integer
    306  */
    307 function medias_lister_documents_repertoire_orphelins_taille ()
     332 * @return int
     333 */
     334function medias_lister_documents_repertoire_orphelins_taille()
    308335{
    309336    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_orphelins());
     
    317344 *        On peut passer un nom de répertoire/chemin en paramètre.
    318345 *        Par défaut, on prend le répertoire IMG/
    319  * @return array
    320  */
    321 function medias_lister_documents_repertoire_complet ($repertoire_img = _DIR_IMG)
     346 *
     347 * @return array
     348 */
     349function medias_lister_documents_repertoire_complet($repertoire_img = _DIR_IMG)
    322350{
    323351    $docs_fichiers = array();
    324352
    325353    // On va chercher dans IMG/distant/*/*.*
    326         // Exemple : IMG/distant/jpg/nom_fichier.jpg
    327     $fichiers = glob($repertoire_img . "*/*/*.*");
     354    // Exemple : IMG/distant/jpg/nom_fichier.jpg
     355    $fichiers = glob($repertoire_img.'*/*/*.*');
    328356    if (is_array($fichiers) and count($fichiers) > 0) {
    329         foreach ($fichiers as $fichier) {
    330             $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    331             // On évite les doubles slashs '//' qui pourrait arriver comme un cheveu sur la soupe.
    332         }
     357        // On ajoute ce qui a été trouvé au tableau $docs_fichiers
     358        $docs_fichiers = array_merge($docs_fichiers, $fichiers);
    333359    }
    334360
    335361    // On va chercher dans IMG/*/*.*
    336         // Exemple : IMG/pdf/nom_fichier.pdf
    337     $fichiers = glob($repertoire_img . "*/*.*");
     362    // Exemple : IMG/pdf/nom_fichier.pdf
     363    $fichiers = glob($repertoire_img.'*/*.*');
    338364    if (is_array($fichiers) and count($fichiers) > 0) {
    339         foreach ($fichiers as $fichier) {
    340             $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    341         }
     365        $docs_fichiers = array_merge($docs_fichiers, $fichiers);
    342366    }
    343367
    344368    // On va chercher dans IMG/*.*
    345         // Exemple : IMG/arton4.png
    346     $fichiers = glob($repertoire_img . "*.*");
     369    // Exemple : IMG/arton4.png
     370    $fichiers = glob($repertoire_img.'*.*');
    347371    if (is_array($fichiers) and count($fichiers) > 0) {
    348         foreach ($fichiers as $fichier) {
    349             $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
    350         }
    351     }
    352 
     372        $docs_fichiers = array_merge($docs_fichiers, $fichiers);
     373    }
     374
     375    // La fonction preg_replace peut s'appliquer à un tableau.
     376    // Il retournera le tableau nettoyé.
     377    $docs_fichiers = preg_replace("/\/\//", '/', $docs_fichiers);
    353378    $docs_fichiers = array_unique($docs_fichiers);
    354379    sort($docs_fichiers);
     
    359384/**
    360385 * Retourner la taille en octets des fichiers physiques présents
    361  * dans IMG/
     386 * dans IMG/.
    362387 *
    363388 * @uses medias_lister_documents_repertoire_complet()
     
    367392 *        On peut passer un nom de répertoire/chemin en paramètre.
    368393 *        Par défaut, on prend le répertoire IMG/
    369  * @return integer
    370  */
    371 function medias_lister_documents_repertoire_complet_taille ($repertoire_img = _DIR_IMG)
     394 *
     395 * @return int
     396 */
     397function medias_lister_documents_repertoire_complet_taille($repertoire_img = _DIR_IMG)
    372398{
    373399    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_img));
     
    380406 * - rubriques (rub)
    381407 * - sites syndiqués (site)
    382  * - auteurs (aut)
     408 * - auteurs (aut).
    383409 *
    384410 * @uses lister_tables_principales()
     
    397423 *        On peut passer un nom de répertoire/chemin en paramètre.
    398424 *        Par défaut, on prend le répertoire IMG/
    399  * @return array
    400  */
    401 function medias_lister_logos_fichiers ($mode = null, $repertoire_img = _DIR_IMG)
    402 {
    403 
     425 *
     426 * @return array
     427 */
     428function medias_lister_logos_fichiers($mode = null, $repertoire_img = _DIR_IMG)
     429{
    404430    include_spip('inc/chercher_logo');
    405431    include_spip('base/abstract_sql');
     
    417443            'spip_mots',
    418444            'spip_forum',
    419             'spip_groupes_mots');
     445            'spip_groupes_mots', );
    420446    } elseif (intval(spip_version()) == 3) {
    421447        include_spip('base/objets');
     
    425451
    426452    global $formats_logos;
    427     $docs_fichiers_on   = array();
    428     $docs_fichiers_off  = array();
     453    $docs_fichiers_on = array();
     454    $docs_fichiers_off = array();
    429455
    430456    // On va chercher toutes les tables principales connues de SPIP
     
    441467        // "Pattern exceeds the maximum allowed length of 260 characters"
    442468        // sur glob()
    443         $liste = glob($repertoire_img . "{" . $type_du_logo ."}{on,off}*.*", GLOB_BRACE);
     469        $liste = glob($repertoire_img.'{'.$type_du_logo.'}{on,off}*.*', GLOB_BRACE);
    444470
    445471        // Il faut avoir au moins un élément dans le tableau de fichiers.
     
    447473            foreach ($liste as $fichier) {
    448474                // ... Donc on fait une regex plus poussée avec un preg_match
    449                 if (
    450                     preg_match(
    451                         "/("
    452                         . $type_du_logo
    453                         .")on(\d+).("
    454                         . join("|", $formats_logos)
    455                         .")$/",
    456                         $fichier,
    457                         $r
    458                     )
    459                 ) {
     475                if (preg_match(
     476                    '/('
     477                    .$type_du_logo
     478                    .")on(\d+).("
     479                    .implode('|', $formats_logos)
     480                    .')$/',
     481                    $fichier,
     482                    $r
     483                )) {
    460484                    // On fait une requête sql pour savoir si ce logo a toujours un objet référencé en bdd.
    461                     $requete = sql_fetsel('*', $table, id_table_objet($table) . "=" . $r[2]);
     485                    $requete = sql_fetsel('*', $table, id_table_objet($table).'='.$r[2]);
    462486                    if ($requete) {
    463                         $docs_fichiers_on[] = preg_replace("/\/\//", "/", $fichier);
     487                        $docs_fichiers_on[] = preg_replace("/\/\//", '/', $fichier);
    464488                    }
    465489                }
    466                 if (
    467                     preg_match(
    468                         "/("
    469                         . $type_du_logo
    470                         .")off(\d+).("
    471                         . join("|", $formats_logos)
    472                         .")$/",
    473                         $fichier,
    474                         $r
    475                     )
    476                 ) {
    477                     $requete = sql_fetsel('*', $table, id_table_objet($table) . "=" . $r[2]);
     490                if (preg_match(
     491                    '/('
     492                    .$type_du_logo
     493                    .")off(\d+).("
     494                    .implode('|', $formats_logos)
     495                    .')$/',
     496                    $fichier,
     497                    $r
     498                )) {
     499                    $requete = sql_fetsel('*', $table, id_table_objet($table).'='.$r[2]);
    478500                    if ($requete) {
    479                         $docs_fichiers_off[] = preg_replace("/\/\//", "/", $fichier);
     501                        $docs_fichiers_off[] = preg_replace("/\/\//", '/', $fichier);
    480502                    }
    481503                }
     
    487509    // On force la recherche sur cet élément même si la recherche "classique"
    488510    // devrait gérer cela initialement…
    489     $logos_site = glob($repertoire_img . "{site}{on,off}0.*", GLOB_BRACE);
     511    $logos_site = glob($repertoire_img.'{site}{on,off}0.*', GLOB_BRACE);
    490512    // On évite d'utiliser la fonction `glob()` directement dans le `if` car ça peut créer un bug pour PHP <5.4
    491513    // S'il n'y a pas de siteon0.ext, `glob()` va retourner un `false`. Donc, on regarde si c'est bien un tableau.
     
    493515    if (is_array($logos_site) and count($logos_site) > 0) {
    494516        foreach ($logos_site as $logo_site) {
    495             if (
    496                 preg_match(
    497                     "/(siteon)(\d).("
    498                     . join("|", $formats_logos)
    499                     .")$/",
    500                     $logo_site
    501                 )
    502             ) {
    503                 $docs_fichiers_on[] = preg_replace("/\/\//", "/", $logo_site);
    504             }
    505             if (
    506                 preg_match(
    507                     "/(siteoff)(\d).("
    508                     . join("|", $formats_logos)
    509                     .")$/",
    510                     $logo_site
    511                 )
    512             ) {
    513                 $docs_fichiers_off[] = preg_replace("/\/\//", "/", $logo_site);
     517            if (preg_match(
     518                "/(siteon)(\d).("
     519                .implode('|', $formats_logos)
     520                .')$/',
     521                $logo_site
     522            )) {
     523                $docs_fichiers_on[] = preg_replace("/\/\//", '/', $logo_site);
     524            }
     525            if (preg_match(
     526                "/(siteoff)(\d).("
     527                .implode('|', $formats_logos)
     528                .')$/',
     529                $logo_site
     530            )) {
     531                $docs_fichiers_off[] = preg_replace("/\/\//", '/', $logo_site);
    514532            }
    515533        }
     
    518536    // On va lister le logo standard des rubriques : rubon0.ext et ruboff0.ext
    519537    // cf. http://contrib.spip.net/Nettoyer-la-mediatheque#forum475870
    520     $logos_rub_racine = glob($repertoire_img . "{rub}{on,off}0.*", GLOB_BRACE);
     538    $logos_rub_racine = glob($repertoire_img.'{rub}{on,off}0.*', GLOB_BRACE);
    521539    if (is_array($logos_rub_racine) and count($logos_rub_racine) > 0) {
    522540        foreach ($logos_rub_racine as $logo_rub_racine) {
    523             if (
    524                 preg_match(
    525                     "/(rubon)(\d).("
    526                     . join("|", $formats_logos)
    527                     .")$/",
    528                     $logo_rub_racine
    529                 )
    530             ) {
    531                 $docs_fichiers_on[] = preg_replace("/\/\//", "/", $logo_rub_racine);
    532             }
    533             if (
    534                 preg_match(
    535                     "/(ruboff)(\d).("
    536                     . join("|", $formats_logos)
    537                     .")$/",
    538                     $logo_rub_racine
    539                 )
    540             ) {
    541                 $docs_fichiers_off[] = preg_replace("/\/\//", "/", $logo_rub_racine);
    542             }
    543         }
    544     }
     541            if (preg_match(
     542                "/(rubon)(\d).("
     543                .implode('|', $formats_logos)
     544                .')$/',
     545                $logo_rub_racine
     546            )) {
     547                $docs_fichiers_on[] = preg_replace("/\/\//", '/', $logo_rub_racine);
     548            }
     549            if (preg_match(
     550                "/(ruboff)(\d).("
     551                .implode('|', $formats_logos)
     552                .')$/',
     553                $logo_rub_racine
     554            )) {
     555                $docs_fichiers_off[] = preg_replace("/\/\//", '/', $logo_rub_racine);
     556            }
     557        }
     558    }
     559    // Sécurité, on enlève les valeurs vides du tableau
     560    $docs_fichiers_on = array_filter($docs_fichiers_on);
     561    $docs_fichiers_off = array_filter($docs_fichiers_off);
    545562
    546563    switch ($mode) {
     
    563580            break;
    564581    }
    565 
    566582}
    567583
    568584/**
    569585 * Retourner la taille en octets des logos présents
    570  * dans IMG/
     586 * dans IMG/.
    571587 *
    572588 * @uses medias_lister_logos_fichiers()
     
    578594 *        + `on` : calculera le poids de tous les logos du mode "on"
    579595 *        + `off` : calculera le poids de tous les logos du mode "off"
    580  * @return integer|string
    581  */
    582 function medias_lister_logos_fichiers_taille ($mode = null)
     596 *
     597 * @return int|string
     598 */
     599function medias_lister_logos_fichiers_taille($mode = null)
    583600{
    584601    return medias_calculer_taille_fichiers(medias_lister_logos_fichiers($mode));
     
    588605 * Fonction qui retourne l'id_objet et l'objet à partir du nom du fichier de logo.
    589606 * C'est un peu le chemin inverse de quete_logo().
     607 *
    590608 * @example
    591609 *         - logo_vers_objet('arton51.png')
    592610 *         - [(#LOGO_OBJET|basename|logo_vers_objet)]
     611 *
    593612 * @param  string $fichier
    594613 *         Nom du fichier du logo sans chemin.
     614 *
    595615 * @return mixed
    596616 *         - void : s'il n'y a pas de fichier, on ne renvoie rien
     
    599619 *         - array : si $info == null
    600620 */
    601 function logo_vers_objet ($fichier = null, $info = null)
     621function logo_vers_objet($fichier = null, $info = null)
    602622{
    603623    $logo_type_raccourcis = array(
     
    605625        'rub' => 'rubrique',
    606626        'aut' => 'auteur',
    607         'groupe' => 'groupe'
     627        'groupe' => 'groupe',
    608628    );
    609629    global $formats_logos;
     
    613633    }
    614634
    615     if (preg_match("/(\w+)(on|off)(\d+).(" . join("|", $formats_logos) . ")$/", $fichier, $res)) {
     635    if (preg_match("/(\w+)(on|off)(\d+).(".implode('|', $formats_logos).')$/', $fichier, $res)) {
    616636        $id_objet = $res[3];
    617637        if (array_key_exists($res[1], $logo_type_raccourcis)) {
     
    634654                break;
    635655        }
    636 
    637656    } else {
    638657        return;
     
    645664 *
    646665 * @param  null|string  $fichier
    647  * @param  integer $longueur
     666 * @param  int $longueur
    648667 * @param  null|string  $connect
     668 *
    649669 * @return string
    650670 */
    651 function logo_generer_url_ecrire_objet_titre ($fichier = null, $longueur = 80, $connect = null)
     671function logo_generer_url_ecrire_objet_titre($fichier = null, $longueur = 80, $connect = null)
    652672{
    653673    if (is_null($fichier)) {
     
    688708    }
    689709
    690     return "<a href='$url' class='$type'>" . couper($titre, $longueur) . "</a>";
    691 }
    692 
    693 /**
    694  * Générer l'url de vue d'un objet à partir de son fichier de logo
     710    return "<a href='$url' class='$type'>".couper($titre, $longueur).'</a>';
     711}
     712
     713/**
     714 * Générer l'url de vue d'un objet à partir de son fichier de logo.
    695715 *
    696716 * @param  string $fichier
    697717 *         Nom du fichier du logo sans chemin.
     718 *
    698719 * @return string
    699720 */
    700 function logo_generer_url_ecrire_objet ($fichier = null)
     721function logo_generer_url_ecrire_objet($fichier = null)
    701722{
    702723    if (is_null($fichier)) {
     
    723744            case 'rubrique':
    724745                $exec = ($version_spip == 2) ? 'naviguer' : 'rubriques';
     746
    725747                return generer_url_ecrire($exec);
    726748                break;
    727749            case 'site':
    728750                $exec = ($version_spip == 2) ? 'configuration' : 'configurer_identite';
     751
    729752                return generer_url_ecrire($exec);
    730753                break;
     
    734757            $info_objet['objet'],
    735758            id_table_objet($info_objet['objet'])
    736             . '='
    737             . intval($info_objet['id_objet'])
     759            .'='
     760            .intval($info_objet['id_objet'])
    738761        );
    739762    }
    740 
    741 }
    742 
    743 /**
    744  * Fonction générique pour calculer la taille des fichiers passés en paramètre
     763}
     764
     765/**
     766 * Fonction générique pour calculer la taille des fichiers passés en paramètre.
    745767 *
    746768 * @param  array  $fichiers
    747769 *         Tableau contenant l'url des fichiers physiques
    748  * @return integer
     770 *
     771 * @return int
    749772 *         On multiplie par 1000 la variable $taille pour avoir le chiffre réel
    750773 *         C'est un hack pour contourner la limite d'integer (4 bytes => 0xefffffff).
     
    752775 *         // a vérifier tout de même selon l'OS 32bit ou 64bit.
    753776 */
    754 function medias_calculer_taille_fichiers ($fichiers = array())
     777function medias_calculer_taille_fichiers($fichiers = array())
    755778{
    756779    $taille = 0;
     
    758781        foreach ($fichiers as $fichier) {
    759782            if (file_exists($fichier)) {
    760                 $taille += filesize($fichier) /1000;
     783                $taille += filesize($fichier) / 1000;
    761784            }
    762785        }
    763786        if (is_float($taille) or $taille > 0) {
    764             return $taille *1000;
     787            return $taille * 1000;
    765788        } else {
    766789            return $taille;
     
    781804 * @return array
    782805 */
    783 function medias_lister_repertoires_orphelins ()
     806function medias_lister_repertoires_orphelins()
    784807{
    785808    if (is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
     
    791814
    792815/**
    793  * Lister le contenu du répertoire IMG/orphelins
     816 * Lister le contenu du répertoire IMG/orphelins.
    794817 *
    795818 * @uses medias_lister_documents_repertoire_complet()
     
    798821 * @return array
    799822 */
    800 function medias_lister_repertoires_orphelins_fichiers ()
    801 {
    802     $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    803     $docs_fichiers      = array();
     823function medias_lister_repertoires_orphelins_fichiers()
     824{
     825    $repertoire_orphelins = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     826    $docs_fichiers = array();
    804827
    805828    if (is_dir($repertoire_orphelins)) {
    806829        $docs_fichiers = medias_lister_documents_repertoire_complet($repertoire_orphelins);
    807830    }
     831
    808832    return (array) $docs_fichiers;
    809833}
    810834
    811835/**
    812  * Lister le contenu du répertoire IMG/orphelins
     836 * Lister le contenu du répertoire IMG/orphelins.
    813837 *
    814838 * @uses medias_calculer_taille_fichiers()
     
    816840 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    817841 *
    818  * @return integer
    819  */
    820 function medias_lister_repertoires_orphelins_fichiers_taille ()
    821 {
    822     $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
    823     $taille         = 0;
     842 * @return int
     843 */
     844function medias_lister_repertoires_orphelins_fichiers_taille()
     845{
     846    $repertoire_orphelins = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     847    $taille = 0;
    824848
    825849    if (is_dir($repertoire_orphelins)) {
     
    831855
    832856/**
    833  * Fonction 'bidon' pour tester une fonction rapidement sur la page ?exec=test_medias
    834  *
    835  * @return array
    836  */
    837 function test_medias ()
     857 * Fonction 'bidon' pour tester une fonction rapidement sur la page ?exec=test_medias.
     858 *
     859 * @return array
     860 */
     861function test_medias()
    838862{
    839863    $test = array();
    840     $test = medias_deplacer_documents_repertoire_orphelins();
     864    $test = medias_lister_documents_bdd();
     865
    841866    return $test;
    842867}
     
    845870 * Cette fonction vérifie si le fichier est une image ou pas.
    846871 * On fait un test selon l'existence des fonctions PHP qui peuvent nous aider.
    847  * On évite ainsi une alerte PHP
     872 * On évite ainsi une alerte PHP.
     873 *
    848874 * @param  string $fichier
    849875 *         url relative du fichier.
     876 *
    850877 * @return bool
    851878 */
    852 function medias_est_image ($fichier)
     879function medias_est_image($fichier)
    853880{
    854881    $image = false;
     
    862889        }
    863890    }
     891
    864892    return $image;
    865893}
    866 ?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_options.php

    r89673 r90942  
    11<?php
     2
    23/**
    3  * Options principales du plugin "Nettoyer la médiathèque"
     4 * Options principales du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    9  * @package    SPIP\Medias_nettoyage\Options
    1011 */
    11 
    1212if (!defined('_ECRIRE_INC_VERSION')) {
    1313    return;
    1414}
    1515
    16 if (!defined("_MEDIAS_NETTOYAGE_PAQUET")) {
    17     define("_MEDIAS_NETTOYAGE_PAQUET", 200);
     16if (!defined('_MEDIAS_NETTOYAGE_PAQUET')) {
     17    define('_MEDIAS_NETTOYAGE_PAQUET', 200);
    1818}
    1919
    20 if (!defined("_MEDIAS_NETTOYAGE_REP_ORPHELINS")) {
    21     define("_MEDIAS_NETTOYAGE_REP_ORPHELINS", _DIR_IMG . 'orphelins/');
     20if (!defined('_MEDIAS_NETTOYAGE_REP_ORPHELINS')) {
     21    define('_MEDIAS_NETTOYAGE_REP_ORPHELINS', _DIR_IMG.'orphelins/');
    2222}
    23 
    24 ?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_pipelines.php

    r89673 r90942  
    11<?php
     2
    23/**
    3  * Pipelines du plugin "Nettoyer la médiathèque"
     4 * Pipelines du plugin "Nettoyer la médiathèque".
    45 *
    56 * @plugin     Nettoyer la médiathèque
    6  * @copyright  2014
     7 *
     8 * @copyright  2014-2015
    79 * @author     Teddy Payet
    810 * @licence    GNU/GPL
    9  * @package    SPIP\Medias_nettoyage\Pipelines
    1011 */
    11 
    12 if (!defined("_ECRIRE_INC_VERSION")) {
     12if (!defined('_ECRIRE_INC_VERSION')) {
    1313    return;
    1414}
    1515
    1616/**
    17  * On se greffe au pipeline taches_generales_cron pour lancer nos tâches
     17 * On se greffe au pipeline taches_generales_cron pour lancer nos tâches.
    1818 *
    1919 * @param  array $taches
     
    2323function medias_nettoyage_taches_generales_cron($taches)
    2424{
    25 
    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
     25    $taches['medias_deplacer_orphelins'] = 5 * 3600; // toutes les 5h
     26    $taches['medias_deplacer_obsoletes'] = 5 * 3600; // toutes les 5h
     27    $taches['medias_reparer_documents'] = 5 * 3600; // toutes les 5h
    2928
    3029    return $taches;
     
    3534 *
    3635 * @param  string $flux
     36 *
    3737 * @return string
    3838 */
    3939function medias_nettoyage_header_prive($flux)
    4040{
    41 
    4241    $page_exec = array('medias_rep_orphelins', 'medias_rep_img', 'medias_tabbord');
    4342
    4443    if (intval(spip_version()) == 2 and in_array(_request('exec'), $page_exec)) {
    4544        $flux .= '<link rel="stylesheet" href="'
    46         . find_in_path('prive/style_prive_medias_nettoyage.css')
    47         . '" type="text/css" media="all" />';
     45        .find_in_path('prive/style_prive_medias_nettoyage.css')
     46        .'" type="text/css" media="all" />';
    4847    }
    4948
    5049    return $flux;
    5150}
    52 
    53 ?>
  • _plugins_/medias_nettoyage/branches/v0/paquet.xml

    r89673 r90942  
    22        prefix="medias_nettoyage"
    33        categorie="outil"
    4         version="0.10.4"
     4        version="0.11.1"
    55        etat="stable"
    66        compatibilite="[2.1.0;3.1.*]"
  • _plugins_/medias_nettoyage/branches/v0/plugin.xml

    r89673 r90942  
    55        <icon>prive/themes/spip/images/medias_nettoyage-64.png</icon>
    66        <prefix>medias_nettoyage</prefix>
    7         <version>0.10.4</version>
     7        <version>0.11.1</version>
    88        <etat>stable</etat>
    99        <categorie>outil</categorie>
Note: See TracChangeset for help on using the changeset viewer.