Changeset 89673 in spip-zone


Ignore:
Timestamp:
May 26, 2015, 7:20:47 PM (4 years ago)
Author:
teddy.spip@…
Message:

On importe dans la branche les modifications faites dans le trunk


Helper pour la suite pour un merge du trunk dans la branche :

  • cd medias_nettoyage/branches/v0/
  • svn log -v -r 87689 /_plugins_/medias_nettoyage/branches/v0
  • svn merge /_plugins_/medias_nettoyage/trunk -r82695:HEAD
  • et enfin svn ci -m
Location:
_plugins_/medias_nettoyage/branches/v0
Files:
2 deleted
25 edited
10 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/medias_nettoyage/branches/v0

  • _plugins_/medias_nettoyage/branches/v0/formulaires/configurer_medias_nettoyage.html

    r81897 r89673  
    1313                        label=<:medias_nettoyage:label_activation_horaires:>,
    1414                        explication=<:medias_nettoyage:explication_activation_horaires:>,
    15                         datas=#ARRAY{oui,<:medias_nettoyage:oui:>,non,<:medias_nettoyage:non:>},
     15                        datas=#ARRAY{oui,<:medias_nettoyage:activation_horaires_oui:>,non,<:medias_nettoyage:activation_horaires_non:>},
    1616                        defaut='oui'})]
    1717
  • _plugins_/medias_nettoyage/branches/v0/genie/medias_deplacer_obsoletes.php

    r81922 r89673  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2if (! defined("_ECRIRE_INC_VERSION")) {
     3    return;
     4}
    45
    56include_spip('medias_nettoyage_fonctions');
     
    78include_spip('inc/meta');
    89
    9 
    1010/**
    1111 * On passe par un cron pour s'occuper des dossiers et répertoires obsolètes
    12  * On est à une fréquence de toutes les 5 heures. 
    13  * 
    14  * Mais il faudrait trouver une astuce 
     12 * On est à une fréquence de toutes les 5 heures.
     13 *
     14 * Mais il faudrait trouver une astuce
    1515 * pour ne lancer le cron que s'il y a un répertoire ou fichier obsolète.
    16  * 
    17  * @param  unknown $t
    18  * 
     16 *
     17 * @param unknown $t           
     18 *
    1919 * @return bool
    2020 */
    21 function genie_medias_deplacer_obsoletes_dist ($t) {
    22 
    23         // Si on est en SPIP 2, on regarde $GLOBALS
    24         // En SPIP 3, on passe par la fonction lire_config
    25         if (intval(spip_version())==2) {
    26                 $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
    27         } else if ( intval(spip_version()) == 3 ){
    28                 include_spip('inc/config');
    29                 $medias_nettoyage = lire_config('medias_nettoyage');
    30         } else {
    31                 $medias_nettoyage = null;
    32         }
    33 
    34         // Si le plugin n'a pas encore été configuré,
    35         // on lance le script entre 00h00 et 06h00
    36         if (!isset($medias_nettoyage)) {
    37                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : On est dans la tranche horaire par défaut. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    38                 medias_lancer_script();
    39 
    40         } else if (isset($medias_nettoyage['activation'])
    41                 AND $medias_nettoyage['activation'] == 'oui'
    42                 AND (!isset($medias_nettoyage['horaires']) OR $medias_nettoyage['horaires'] == '')) {
    43                 // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
    44                 // On lance le script entre 00h00 et 06h00
    45                         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif mais non défini. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    46                         medias_lancer_script();
    47 
    48         } else if (isset($medias_nettoyage['activation']) AND isset($medias_nettoyage['horaires'])) {
    49                 // Si on a activé la tranche horaire et qu'on a choisi le créneau
    50                 // On lance le script dans la tranche horaire choisie
    51                 $horaires = ($medias_nettoyage['horaires']=='') ? array(0,600) : explode('-', $medias_nettoyage['horaires']);
    52                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif et défini. On lance le script ' . __FUNCTION__ . ' entre ' . $horaires[0] . ' et ' . $horaires[1],"medias_orphelins");
    53                 medias_lancer_script($horaires[0],$horaires[1]);
    54 
    55         } else if (isset($medias_nettoyage['activation']) AND $medias_nettoyage['activation'] == 'non') {
    56                 // Si on a sélectionné 'non' pour la tranche horaire,
    57                 // on lance le script toutes les 5heures comme prévu dans medias_nettoyage_pipelines.php
    58                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est désactivé. On lance le script ' . __FUNCTION__ . ' toutes les 5h.',"medias_orphelins");
    59                 if (function_exists('medias_deplacer_rep_obsoletes')) {
    60                         medias_deplacer_rep_obsoletes();
    61                 }
    62         }
    63 
    64         return 1;
    65 }
    66 
    67 function medias_lancer_script ($debut = 0, $fin = 600) {
    68         $timer = date_format(date_create(), 'Hi');
    69 
    70         // On vérifie bien que nous sommes bien dans la bonne tranche horaire
    71         if ($timer >= $debut AND $timer < $fin) {
    72                 if (function_exists('medias_deplacer_rep_obsoletes')) {
    73                         medias_deplacer_rep_obsoletes();
    74                 }
    75         }
    76 
    77         return;
     21function genie_medias_deplacer_obsoletes_dist($t)
     22{
     23   
     24    // Si on est en SPIP 2, on regarde $GLOBALS
     25    // En SPIP 3, on passe par la fonction lire_config
     26    if (intval(spip_version()) == 2) {
     27        $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
     28    } elseif (intval(spip_version()) == 3) {
     29        include_spip('inc/config');
     30        $medias_nettoyage = lire_config('medias_nettoyage');
     31    } else {
     32        $medias_nettoyage = null;
     33    }
     34    $medias_lanceur = charger_fonction("medias_lanceur", "inc");
     35   
     36    // Si le plugin n'a pas encore été configuré,
     37    // on lance le script entre 00h00 et 06h00
     38    if (!isset($medias_nettoyage)) {
     39        spip_log(_T('medias_nettoyage:message_log_tranche_defaut', array(
     40            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     41            'fonction' => __FUNCTION__
     42        )), "medias_nettoyage");
     43        $medias_lanceur('medias_deplacer_rep_obsoletes');
     44    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and (!isset($medias_nettoyage['horaires']) or $medias_nettoyage['horaires'] == '')) {
     45        // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
     46        // On lance le script entre 00h00 et 06h00
     47        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_undefined', array(
     48            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     49            'fonction' => __FUNCTION__
     50        )), "medias_nettoyage");
     51        $medias_lanceur('medias_deplacer_rep_obsoletes');
     52    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and isset($medias_nettoyage['horaires'])) {
     53        // Si on a activé la tranche horaire et qu'on a choisi le créneau
     54        // On lance le script dans la tranche horaire choisie
     55        $horaires = ($medias_nettoyage['horaires'] == '') ? array(
     56            0,
     57            600
     58        ) : explode('-', $medias_nettoyage['horaires']);
     59        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_defini', array(
     60            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     61            'fonction' => __FUNCTION__,
     62            'debut' => $horaires[0],
     63            'fin' => $horaires[1]
     64        )), "medias_nettoyage");
     65        $medias_lanceur('medias_deplacer_rep_obsoletes', $horaires[0], $horaires[1]);
     66    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'non') {
     67        // Si on a sélectionné 'non' pour la tranche horaire,
     68        // on lance le script selon le timing prévu dans medias_nettoyage_pipelines.php
     69        spip_log(_T('medias_nettoyage:message_log_tranche_desactivee', array(
     70            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     71            'fonction' => __FUNCTION__
     72        )), "medias_nettoyage");
     73        $medias_deplacer_rep_obsoletes = charger_fonction('medias_deplacer_rep_obsoletes', 'inc');
     74        $medias_deplacer_rep_obsoletes();
     75    }
     76   
     77    return 1;
    7878}
    7979
  • _plugins_/medias_nettoyage/branches/v0/genie/medias_deplacer_orphelins.php

    r81922 r89673  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2if (! defined("_ECRIRE_INC_VERSION")) {
     3    return;
     4}
    45
    56include_spip('medias_nettoyage_fonctions');
     
    78include_spip('inc/meta');
    89
    9 function genie_medias_deplacer_orphelins_dist ($t) {
    10 
    11         // Si on est en SPIP 2, on regarde $GLOBALS
    12         // En SPIP 3, on passe par la fonction lire_config
    13         if (intval(spip_version())==2) {
    14                 $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
    15         } else if ( intval(spip_version()) == 3 ){
    16                 include_spip('inc/config');
    17                 $medias_nettoyage = lire_config('medias_nettoyage');
    18         } else {
    19                 $medias_nettoyage = null;
    20         }
    21 
    22         // Si le plugin n'a pas encore été configuré,
    23         // on lance le script entre 00h00 et 06h00
    24         if (!isset($medias_nettoyage)) {
    25                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : On est dans la tranche horaire par défaut. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    26                 medias_lancer_script();
    27 
    28         } else if (isset($medias_nettoyage['activation'])
    29                 AND $medias_nettoyage['activation'] == 'oui'
    30                 AND (!isset($medias_nettoyage['horaires']) OR $medias_nettoyage['horaires'] == '')) {
    31                 // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
    32                 // On lance le script entre 00h00 et 06h00
    33                         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif mais non défini. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    34                         medias_lancer_script();
    35 
    36         } else if (isset($medias_nettoyage['activation']) AND isset($medias_nettoyage['horaires'])) {
    37                 // Si on a activé la tranche horaire et qu'on a choisi le créneau
    38                 // On lance le script dans la tranche horaire choisie
    39                 $horaires = ($medias_nettoyage['horaires']=='') ? array(0,600) : explode('-', $medias_nettoyage['horaires']);
    40                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif et défini. On lance le script ' . __FUNCTION__ . ' entre ' . $horaires[0] . ' et ' . $horaires[1],"medias_orphelins");
    41                 medias_lancer_script($horaires[0],$horaires[1]);
    42 
    43         } else if (isset($medias_nettoyage['activation']) AND $medias_nettoyage['activation'] == 'non') {
    44                 // Si on a sélectionné 'non' pour la tranche horaire,
    45                 // on lance le script toutes les 5heures comme prévu dans medias_nettoyage_pipelines.php
    46                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est désactivé. On lance le script ' . __FUNCTION__ . ' toutes les 5h.',"medias_orphelins");
    47                 if (function_exists('medias_deplacer_documents_repertoire_orphelins')) {
    48                         medias_deplacer_documents_repertoire_orphelins();
    49                 }
    50         }
    51 
    52         return 1;
    53 }
    54 
    55 function medias_lancer_script ($debut = 0, $fin = 600) {
    56         $timer = date_format(date_create(), 'Hi');
    57 
    58         // On vérifie bien que nous sommes bien dans la bonne tranche horaire
    59         if ($timer >= $debut AND $timer < $fin) {
    60                 if (function_exists('medias_deplacer_documents_repertoire_orphelins')) {
    61                         medias_deplacer_documents_repertoire_orphelins();
    62                 }
    63         }
    64 
    65         return;
     10function genie_medias_deplacer_orphelins_dist($t)
     11{
     12   
     13    // Si on est en SPIP 2, on regarde $GLOBALS
     14    // En SPIP 3, on passe par la fonction lire_config
     15    if (intval(spip_version()) == 2) {
     16        $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
     17    } elseif (intval(spip_version()) == 3) {
     18        include_spip('inc/config');
     19        $medias_nettoyage = lire_config('medias_nettoyage');
     20    } else {
     21        $medias_nettoyage = null;
     22    }
     23    $medias_lanceur = charger_fonction("medias_lanceur", "inc");
     24   
     25    // Si le plugin n'a pas encore été configuré,
     26    // on lance le script entre 00h00 et 06h00
     27    if (!isset($medias_nettoyage)) {
     28        spip_log(_T('medias_nettoyage:message_log_tranche_defaut', array(
     29            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     30            'fonction' => __FUNCTION__
     31        )), "medias_nettoyage");
     32        $medias_lanceur('medias_deplacer_doc_rep_orph');
     33    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and (!isset($medias_nettoyage['horaires']) or $medias_nettoyage['horaires'] == '')) {
     34        // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
     35        // On lance le script entre 00h00 et 06h00
     36        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_undefined', array(
     37            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     38            'fonction' => __FUNCTION__
     39        )), "medias_nettoyage");
     40        $medias_lanceur('medias_deplacer_doc_rep_orph');
     41    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and isset($medias_nettoyage['horaires'])) {
     42        // Si on a activé la tranche horaire et qu'on a choisi le créneau
     43        // On lance le script dans la tranche horaire choisie
     44        $horaires = ($medias_nettoyage['horaires'] == '') ? array(
     45            0,
     46            600
     47        ) : explode('-', $medias_nettoyage['horaires']);
     48        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_defini', array(
     49            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     50            'fonction' => __FUNCTION__,
     51            'debut' => $horaires[0],
     52            'fin' => $horaires[1]
     53        )), "medias_nettoyage");
     54        $medias_lanceur('medias_deplacer_doc_rep_orph', $horaires[0], $horaires[1]);
     55    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'non') {
     56        // Si on a sélectionné 'non' pour la tranche horaire,
     57        // on lance le script selon le timing prévu dans medias_nettoyage_pipelines.php
     58        spip_log(_T('medias_nettoyage:message_log_tranche_desactivee', array(
     59            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     60            'fonction' => __FUNCTION__
     61        )), "medias_nettoyage");
     62        $medias_deplacer_doc_rep_orph = charger_fonction('medias_deplacer_doc_rep_orph', 'inc');
     63        $medias_deplacer_doc_rep_orph();
     64    }
     65   
     66    return 1;
    6667}
    6768
  • _plugins_/medias_nettoyage/branches/v0/genie/medias_reparer_documents.php

    r81922 r89673  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2if (! defined("_ECRIRE_INC_VERSION")) {
     3    return;
     4}
    45
    56include_spip('medias_nettoyage_fonctions');
     
    78include_spip('inc/meta');
    89
    9 function genie_medias_reparer_documents_dist ($t) {
    10 
    11         // Si on est en SPIP 2, on regarde $GLOBALS
    12         // En SPIP 3, on passe par la fonction lire_config
    13         if (intval(spip_version())==2) {
    14                 $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
    15         } else if ( intval(spip_version()) == 3 ){
    16                 include_spip('inc/config');
    17                 $medias_nettoyage = lire_config('medias_nettoyage');
    18         } else {
    19                 $medias_nettoyage = null;
    20         }
    21 
    22         // Si le plugin n'a pas encore été configuré,
    23         // on lance le script entre 00h00 et 06h00
    24         if (!isset($medias_nettoyage)) {
    25                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : On est dans la tranche horaire par défaut. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    26                 medias_lancer_script();
    27 
    28         } else if (isset($medias_nettoyage['activation'])
    29                 AND $medias_nettoyage['activation'] == 'oui'
    30                 AND (!isset($medias_nettoyage['horaires']) OR $medias_nettoyage['horaires'] == '')) {
    31                 // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
    32                 // On lance le script entre 00h00 et 06h00
    33                         spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif mais non défini. On lance le script ' . __FUNCTION__ ,"medias_orphelins");
    34                         medias_lancer_script();
    35 
    36         } else if (isset($medias_nettoyage['activation']) AND isset($medias_nettoyage['horaires'])) {
    37                 // Si on a activé la tranche horaire et qu'on a choisi le créneau
    38                 // On lance le script dans la tranche horaire choisie
    39                 $horaires = ($medias_nettoyage['horaires']=='') ? array(0,600) : explode('-', $medias_nettoyage['horaires']);
    40                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est actif et défini. On lance le script ' . __FUNCTION__ . ' entre ' . $horaires[0] . ' et ' . $horaires[1],"medias_orphelins");
    41                 medias_lancer_script($horaires[0],$horaires[1]);
    42 
    43         } else if (isset($medias_nettoyage['activation']) AND $medias_nettoyage['activation'] == 'non') {
    44                 // Si on a sélectionné 'non' pour la tranche horaire,
    45                 // on lance le script toutes les 5heures comme prévu dans medias_nettoyage_pipelines.php
    46                 spip_log(date_format(date_create(), 'Y-m-d H:i:s') . ' : Le CRON par tranche horaire est désactivé. On lance le script ' . __FUNCTION__ . ' toutes les 5h.',"medias_orphelins");
    47                 if (function_exists('medias_reparer_documents_fichiers')) {
    48                         medias_reparer_documents_fichiers();
    49                 }
    50         }
    51 
    52         return 1;
    53 }
    54 
    55 function medias_lancer_script ($debut = 0, $fin = 600) {
    56         $timer = date_format(date_create(), 'Hi');
    57 
    58         // On vérifie bien que nous sommes bien dans la bonne tranche horaire
    59         if ($timer >= $debut AND $timer < $fin) {
    60                 if (function_exists('medias_reparer_documents_fichiers')) {
    61                         medias_reparer_documents_fichiers();
    62                 }
    63         }
    64 
    65         return;
     10function genie_medias_reparer_documents_dist($t)
     11{
     12   
     13    // Si on est en SPIP 2, on regarde $GLOBALS
     14    // En SPIP 3, on passe par la fonction lire_config
     15    if (intval(spip_version()) == 2) {
     16        $medias_nettoyage = ($GLOBALS['meta']['medias_nettoyage']) ? @unserialize($GLOBALS['meta']['medias_nettoyage']) : null;
     17    } elseif (intval(spip_version()) == 3) {
     18        include_spip('inc/config');
     19        $medias_nettoyage = lire_config('medias_nettoyage');
     20    } else {
     21        $medias_nettoyage = null;
     22    }
     23    $medias_lanceur = charger_fonction("medias_lanceur", "inc");
     24   
     25    // Si le plugin n'a pas encore été configuré,
     26    // on lance le script entre 00h00 et 06h00
     27    if (!isset($medias_nettoyage)) {
     28        spip_log(_T('medias_nettoyage:message_log_tranche_defaut', array(
     29            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     30            'fonction' => __FUNCTION__
     31        )), "medias_nettoyage");
     32        $medias_lanceur('medias_reparer_doc_fichiers');
     33    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and (!isset($medias_nettoyage['horaires']) or $medias_nettoyage['horaires'] == '')) {
     34        // Si on a activé la tranche horaire mais qu'on a pas choisi le créneau
     35        // On lance le script entre 00h00 et 06h00
     36        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_undefined', array(
     37            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     38            'fonction' => __FUNCTION__
     39        )), "medias_nettoyage");
     40        $medias_lanceur('medias_reparer_doc_fichiers');
     41    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'oui' and isset($medias_nettoyage['horaires'])) {
     42        // Si on a activé la tranche horaire et qu'on a choisi le créneau
     43        // On lance le script dans la tranche horaire choisie
     44        $horaires = ($medias_nettoyage['horaires'] == '') ? array(
     45            0,
     46            600
     47        ) : explode('-', $medias_nettoyage['horaires']);
     48        spip_log(_T('medias_nettoyage:message_log_tranche_actif_horaire_defini', array(
     49            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     50            'fonction' => __FUNCTION__,
     51            'debut' => $horaires[0],
     52            'fin' => $horaires[1]
     53        )), "medias_nettoyage");
     54        $medias_lanceur('medias_reparer_doc_fichiers', $horaires[0], $horaires[1]);
     55    } elseif (isset($medias_nettoyage['activation']) and $medias_nettoyage['activation'] == 'non') {
     56        // Si on a sélectionné 'non' pour la tranche horaire,
     57        // on lance le script selon le timing prévu dans medias_nettoyage_pipelines.php
     58        spip_log(_T('medias_nettoyage:message_log_tranche_desactivee', array(
     59            'date' => date_format(date_create(), 'Y-m-d H:i:s'),
     60            'fonction' => __FUNCTION__
     61        )), "medias_nettoyage");
     62        $medias_reparer_doc_fichiers = charger_fonction('medias_reparer_doc_fichiers', 'inc');
     63        $medias_reparer_doc_fichiers();
     64    }
     65   
     66    return 1;
    6667}
    6768
  • _plugins_/medias_nettoyage/branches/v0/lang/medias_nettoyage_fr.php

    r81897 r89673  
    11<?php
    22// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     3if (!defined("_ECRIRE_INC_VERSION")) {
     4    return;
     5}
    46
    57$GLOBALS[$GLOBALS['idx_lang']] = array(
    68
    7         // A
    8         'aucun_document_orphelin' => 'Il n\'y a aucun document orphelin',
     9    // A
     10    'activation_horaires_non' => 'Régulièrement dans la journée <em>(peut ralentir votre site)</em>',
     11    'activation_horaires_oui' => 'Tranche horaire <strong>(recommandé)</strong>',
     12    'aucun_document_orphelin' => 'Il n\'y a aucun document orphelin.',
     13    'aucun_logo' => 'Il n\'y a aucun logo.',
     14    'aucun_repertoire' => 'Il n\'y a aucun répertoire.',
     15    'actions' => 'Actions',
    916
    10         'cfg_titre_parametrages' => 'Paramétrages',
     17    // C
     18    'cfg_titre_parametrages' => 'Paramétrages',
    1119
    12         // D
    13         'des_documents' => '@nb@ documents',
    14         'des_repertoires' => '@nb@ répertoires',
     20    // D
     21    'des_documents' => '@nb@ documents',
     22    'des_repertoires' => '@nb@ répertoires',
    1523
    16         // E
    17         'explication_activation_horaires' => 'Désirez-vous que le nettoyage se fasse à tout moment de la journée ? Ou juste dans une tranche horaire pour ne pas pénaliser les performances du site ?',
    18         'explication_horaires' => 'Veuillez sélectionner la tranche horaire dans laquel le nettoyage de la médiathèque pourra se faire. <em>(Par défaut entre 00h00 et 06h00)</em>',
     24    // E
     25    'en_bdd' => 'En BDD',
     26    'explication_activation_horaires' => 'Désirez-vous que le nettoyage se fasse à tout moment de la
     27    journée ? Ou juste dans une tranche horaire pour ne pas pénaliser les performances du site ?',
     28    'explication_horaires' => 'Veuillez sélectionner la tranche horaire dans laquel le nettoyage de la
     29    médiathèque pourra se faire. <em>(Par défaut entre 00h00 et 06h00)</em>',
    1930
    20         // H
    21         'horaire_00_06' => '00h00 - 06h00',
    22         'horaire_06_12' => '06h00 - 12h00',
    23         'horaire_12_18' => '12h00 - 18h00',
    24         'horaire_18_24' => '18h00 - 24h00',
     31    // H
     32    'horaire_00_06' => '00h00 - 06h00',
     33    'horaire_06_12' => '06h00 - 12h00',
     34    'horaire_12_18' => '12h00 - 18h00',
     35    'horaire_18_24' => '18h00 - 24h00',
    2536
    26         // I
    27         'info_nom' => 'Nom',
    28         'info_nombre' => 'Nombre',
    29         'info_nombre_abbr' => 'Nb',
    30         'info_taille' => 'Taille',
    31         'info_nombre_documents_bdd' => 'Documents non-distants',
    32         'info_nombre_documents_bdd_orphelins' => 'Documents non-distants sans fichiers physiques',
    33         'info_nombre_documents_bdd_complet' => 'Tous les documents',
    34         'info_nombre_documents_repertoire' => 'Fichiers dans les répertoires d\'extensions',
    35         'info_nombre_documents_repertoire_complet' => 'Tous les fichiers',
    36         'info_nombre_documents_repertoire_orphelins' => 'Fichiers orphelins avec extensions (sauf logos)',
    37         'info_nombre_logos_fichiers' => 'Logos des objets de SPIP',
    38         'info_nombre_logos_fichiers_off' => 'Logos en mode "off"',
    39         'info_nombre_logos_fichiers_on' => 'Logos en mode "on"',
    40         'info_nombre_repertoires_racine' => 'Répertoires à la racine',
    41         'info_titre_bdd' => 'En base de données',
    42         'info_titre_logos_img' => 'Les logos dans IMG/',
    43         'info_titre_repertoire_img' => 'Répertoire IMG/',
    44         'info_titre_repertoire_orphelins' => 'Répertoire IMG/orphelins',
     37    // I
     38    'info_nom' => 'Nom',
     39    'info_nombre' => 'Nombre',
     40    'info_nombre_abbr' => 'Nb',
     41    'info_taille' => 'Taille',
     42    'info_technique' => 'Infos techniques',
     43    'info_nombre_documents_bdd' => 'Documents non-distants',
     44    'info_nombre_documents_bdd_orphelins' => 'Documents non-distants sans fichiers physiques',
     45    'info_nombre_documents_bdd_complet' => 'Tous les documents',
     46    'info_nombre_documents_repertoire' => 'Fichiers dans les répertoires d\'extensions',
     47    'info_nombre_documents_repertoire_complet' => 'Tous les fichiers',
     48    'info_nombre_documents_repertoire_orphelins' => 'Fichiers orphelins avec extensions (sauf logos)',
     49    'info_nombre_logos_fichiers' => 'Logos des objets de SPIP',
     50    'info_nombre_logos_fichiers_off' => 'Logos en mode "off"',
     51    'info_nombre_logos_fichiers_on' => 'Logos en mode "on"',
     52    'info_nombre_repertoires_racine' => 'Répertoires à la racine',
     53    'info_titre_bdd' => 'En base de données',
     54    'info_titre_logos_img' => 'Les logos dans IMG/',
     55    'info_titre_repertoire_img' => 'Répertoire IMG/',
     56    'info_titre_repertoire_orphelins' => 'Répertoire IMG/orphelins',
    4557
    46         // L
    47         'label_activation_horaires' => 'Activer le nettoyage par tranche horaires',
    48         'label_horaires' => 'Tranches horaires',
     58    // L
     59    'label_activation_horaires' => 'Activer le nettoyage par tranche horaires',
     60    'label_horaires' => 'Tranches horaires',
    4961
    50         'non' => 'Non <em>(peut faire ralentir votre site)</em>',
     62    // M
     63    'medias_nettoyage_nom' => 'Nettoyer la médiathèque',
     64    'message_log_supprimer_orphelins' => '@date@ : le fichier @fichier@ a été supprimé par l\'auteur \'@auteur@\'
     65    (@id_auteur@).',
     66    'message_log_tranche_actif_horaire_undefined' => '@date@ : Le CRON par tranche horaire est actif mais non défini.
     67    On lance le script @fonction@',
     68    'message_log_tranche_actif_horaire_defini' => '@date@ : Le CRON par tranche horaire est actif et défini.
     69    On lance le script @fonction@ entre @debut@ et @fin@',
     70    'message_log_tranche_defaut' => '@date@ : On est dans la tranche horaire par défaut.
     71    On lance le script @fonction@',
     72    'message_log_tranche_desactivee' => '@date@ : Le CRON par tranche horaire est désactivé.
     73    On lance le script @fonction@ toutes les 5h.',
     74    'mode_off' => 'Mode \'off\'',
     75    'mode_on' => 'Mode \'on\'',
     76    'mode_tous' => 'Tous',
    5177
    52         // O
    53         'onglet_titre_rep_orphelins' => 'Documents orphelins',
    54         'onglet_titre_rep_img' => 'Répertoire IMG/',
    55         'onglet_titre_tabbord' => 'Tableau de bord',
    56         'oui' => 'Oui <strong>(recommandé)</strong>',
     78    // N
     79    'non' => 'Non',
    5780
    58         // T
    59         'titre_configurer_medias_nettoyage' => 'Configurer le nettoyage de la médiathèque',
    60         'titre_page_configurer_medias_nettoyage' => 'Configurer le nettoyage de la médiathèque',
    61         'titre_page_medias_rep_orphelins' => 'Documents dans le répertoire "orphelins"',
    62         'titre_page_medias_rep_img' => 'Liste des répertoires dans IMG/',
    63         'titre_page_medias_tabbord' => 'Tableau de bord - Documents',
    64         'titre_tableau_documents_orphelins' => 'Documents orphelins',
    65         'titre_tableau_documents_repertoire_orphelins' => 'Contenu dans IMG/orphelins',
     81    // O
     82    'onglet_titre_logos_img' => 'Les logos dans IMG/',
     83    'onglet_titre_rep_orphelins' => 'Documents orphelins',
     84    'onglet_titre_rep_img' => 'Répertoire IMG/',
     85    'onglet_titre_tabbord' => 'Tableau de bord',
     86    'oui' => 'Oui',
    6687
    67         // U
    68         'un_document' => '@nb@ document',
    69         'un_repertoire' => '@nb@ répertoire',
     88    // S
     89    'supprimer' => 'Supprimer',
     90    // T
     91    'titre_configurer_medias_nettoyage' => 'Configurer le nettoyage de la médiathèque',
     92    'titre_page_configurer_medias_nettoyage' => 'Configurer le nettoyage de la médiathèque',
     93    'titre_page_medias_logos_img' => 'Les logos dans IMG/',
     94    'titre_page_medias_rep_orphelins' => 'Documents dans le répertoire "orphelins"',
     95    'titre_page_medias_rep_img' => 'Liste des répertoires dans IMG/',
     96    'titre_page_medias_tabbord' => 'Tableau de bord - Documents',
     97    'titre_tableau_documents_orphelins' => 'Documents orphelins',
     98    'titre_tableau_documents_repertoire_orphelins' => 'Contenu dans IMG/orphelins',
     99
     100    // U
     101    'un_document' => 'Un document',
     102    'un_repertoire' => 'Un répertoire',
    70103);
    71104?>
  • _plugins_/medias_nettoyage/branches/v0/lang/paquet-medias_nettoyage_fr.php

    r81885 r89673  
    1515// M
    1616        '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.',
     17    'medias_nettoyage_nom' => 'Nettoyer la médiathèque',
    1718        'medias_nettoyage_slogan' => 'On range nos medias!',
    1819);
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_autorisations.php

    r82296 r89673  
    1010 */
    1111
    12 if (!defined("_ECRIRE_INC_VERSION")) return;
     12if (!defined("_ECRIRE_INC_VERSION")) {
     13    return;
     14}
    1315
    1416/**
    1517 * Fonction d'appel pour le pipeline
    16  * @pipeline autoriser 
     18 * @pipeline autoriser
    1719 */
    18 function medias_nettoyage_autoriser(){}
     20function medias_nettoyage_autoriser()
     21{
     22}
    1923
    2024/**
    2125 * Autorisation pour l'onglet medias_tabbord
    22  *
    23  * @return true
    24  */
    25 function autoriser_medias_tabbord_onglet_dist($faire, $type, $id, $qui, $opt) {
     26 *
     27 * @param  string $faire Action demandée
     28 * @param  string $type  Type d'objet sur lequel appliquer l'action
     29 * @param  int    $id    Identifiant de l'objet
     30 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     31 * @param  array  $opt   Options de cette autorisation
     32 * @return bool          true s'il a le droit, false sinon
     33**/
     34function autoriser_medias_tabbord_onglet_dist($faire, $type, $id, $qui, $opt)
     35{
    2636    return true; // ou false
    2737}
     
    2939/**
    3040 * Autorisation pour l'onglet medias_rep_orphelins
    31  *
    32  * @return true
    33  */
    34 function autoriser_medias_rep_orphelins_onglet_dist($faire, $type, $id, $qui, $opt) {
     41 *
     42 * @param  string $faire Action demandée
     43 * @param  string $type  Type d'objet sur lequel appliquer l'action
     44 * @param  int    $id    Identifiant de l'objet
     45 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     46 * @param  array  $opt   Options de cette autorisation
     47 * @return bool          true s'il a le droit, false sinon
     48**/
     49function autoriser_medias_rep_orphelins_onglet_dist($faire, $type, $id, $qui, $opt)
     50{
    3551    return true; // ou false
    3652}
     
    3854/**
    3955 * Autorisation pour l'onglet medias_rep_img
    40  *
    41  * @return true
    42  */
    43 function autoriser_medias_rep_img_onglet_dist($faire, $type, $id, $qui, $opt) {
     56 *
     57 * @param  string $faire Action demandée
     58 * @param  string $type  Type d'objet sur lequel appliquer l'action
     59 * @param  int    $id    Identifiant de l'objet
     60 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     61 * @param  array  $opt   Options de cette autorisation
     62 * @return bool          true s'il a le droit, false sinon
     63**/
     64function autoriser_medias_rep_img_onglet_dist($faire, $type, $id, $qui, $opt)
     65{
    4466    return true; // ou false
    4567}
    4668
     69/**
     70 * Autorisation de suppression d'un fichier orphelin
     71 *
     72 * @param  string $faire Action demandée
     73 * @param  string $type  Type d'objet sur lequel appliquer l'action
     74 * @param  int    $id    Identifiant de l'objet
     75 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     76 * @param  array  $opt   Options de cette autorisation
     77 * @return bool          true s'il a le droit, false sinon
     78**/
     79function autoriser_medias_orphelins_supprimer_dist($faire, $type, $id, $qui, $opt)
     80{
     81    return $qui['statut'] == '0minirezo' and $qui['webmestre'] == 'oui';
     82}
     83
    4784?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_fonctions.php

    r82621 r89673  
    11<?php
    22/**
    3  * Fonctions principales du plugin "Nettoyer la médiathèque"
    4  * 
     3 * Fonctions utilitaires du plugin "Nettoyer la médiathèque"
     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    // On vérifie bien qu'on reçoit un tableau.
     30    if (is_array($extensions_cibles) and count($extensions_cibles) > 0) {
     31        foreach ($extensions_cibles as $extension) {
     32            $extensions[] = $extension['extension'];
     33        }
     34    }
     35    // On rajoute le répertoire "vignettes"
     36    $extensions[] = 'vignettes';
     37    return $extensions ;
    3338}
    3439
     
    3843 * @uses medias_lister_extensions_documents()
    3944 * @uses _DIR_IMG
    40  * 
     45 *
    4146 * @param  string $repertoire_img
    4247 *         Par défaut, on prend _DIR_IMG en référence.
     
    4449 * @return void
    4550 */
    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;
     51function medias_creer_extensions_repertoires ($repertoire_img = _DIR_IMG)
     52{
     53    $extensions = medias_lister_extensions_documents();
     54
     55    if (is_array($extensions) and count($extensions) > 0) {
     56        foreach ($extensions as $extension) {
     57            if (!is_dir($repertoire_img . $extension)) {
     58                @mkdir($repertoire_img . $extension, _SPIP_CHMOD);
     59            }
     60        }
     61    }
     62    return;
    5563}
    5664
     
    6068 *
    6169 * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    62  * 
     70 *
    6371 * @return void
    6472 */
    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;
     73function medias_creer_repertoires_orphelins ()
     74{
     75    if (!is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
     76        @mkdir(_MEDIAS_NETTOYAGE_REP_ORPHELINS, _SPIP_CHMOD);
     77    }
     78    return;
    7079}
    7180
    7281/**
    7382 * Lister les répertoires présents dans IMG/ sans les sous-répertoires.
    74  * 
    75  * @param  string $repertoire_img 
     83 *
     84 * @param  string $repertoire_img
    7685 *         Par défaut, on prend _DIR_IMG en référence.
    7786 *         On peut l'utiliser aussi pour le répertoire IMG/orphelins ou tout autre nom de répertoire.
    7887 * @return array
    7988 */
    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;
     89function medias_lister_repertoires ($repertoire_img = _DIR_IMG)
     90{
     91    $repertoires = array();
     92    // On vérifie que $repertoire_img passé en paramètre est bien un répertoire existant.
     93    // cf. ../IMG/orphelins qui ne serait pas encore créé.
     94    if (is_dir($repertoire_img)) {
     95        // 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
     97        foreach ($rep_img as $repertoire) {
     98            // 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    }
     104
     105    return (array) $repertoires;
    94106}
    95107
     
    98110 *
    99111 * @uses get_spip_doc()
    100  * 
     112 *
    101113 * @return array
    102114 *         Tableau contenant les urls des fichiers
    103115 */
    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;
     116function medias_lister_documents_bdd ()
     117{
     118    $docs_fichiers = array();
     119
     120    $docs_bdd = sql_allfetsel('fichier', 'spip_documents', "distant='non' AND fichier!=''");
     121    // On vérifie que nous avons au moins un élément dans le tableau
     122    if (count($docs_bdd) > 0) {
     123        foreach ($docs_bdd as $doc) {
     124            /**
     125             * On formate par rapport au répertoire ../IMG/
     126             * On évite les doubles // qu'il peut y avoir
     127             */
     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    // On trie dans l'ordre alphabétique :
     135    sort($docs_fichiers);
     136
     137    return (array) $docs_fichiers;
    122138}
    123139
     
    127143 * @return integer
    128144 */
    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'];
     145function medias_lister_documents_bdd_taille()
     146{
     147    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "distant='non' AND fichier!=''");
     148    return $docs_bdd['taille_totale'];
    132149}
    133150
     
    137154 * @return integer|string
    138155 */
    139 function medias_lister_documents_bdd_complet_compteur () {
    140         return sql_countsel('spip_documents');
     156function medias_lister_documents_bdd_complet_compteur ()
     157{
     158    return sql_countsel('spip_documents');
    141159}
    142160
     
    146164 * @return integer|string
    147165 */
    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'];
     166function medias_lister_documents_bdd_complet_taille()
     167{
     168    $docs_bdd = sql_fetsel('SUM(taille) AS taille_totale', 'spip_documents', "id_document > 0");
     169    return $docs_bdd['taille_totale'];
    151170}
    152171
     
    160179 * @return array
    161180 */
    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;
     181function medias_lister_documents_bdd_orphelins()
     182{
     183    $docs_bdd = array_unique(array_diff(medias_lister_documents_bdd(), medias_lister_documents_repertoire()));
     184    sort($docs_bdd);
     185    return (array) $docs_bdd;
    166186}
    167187
     
    175195 * @return integer
    176196 */
    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;
     197function medias_lister_documents_bdd_orphelins_taille()
     198{
     199    $docs_orphelins    = medias_lister_documents_bdd_orphelins();
     200    $taille         = 0;
     201    $pattern_img        = "/" . preg_replace("/\//", "\/", _DIR_IMG) . "/";
     202
     203    if (count($docs_orphelins) > 0) {
     204        $docs_bdd = sql_allfetsel(
     205            'fichier,taille',
     206            'spip_documents',
     207            "fichier IN ('"
     208            . join("','", preg_replace($pattern_img, '', $docs_orphelins)) . "')"
     209        );
     210        if (is_array($docs_bdd) and count($docs_bdd) > 0) {
     211            foreach ($docs_bdd as $document_bdd) {
     212                if (!file_exists(get_spip_doc($document_bdd['fichier']))) {
     213                    $taille = $taille + ($document_bdd['taille']/1000);
     214                    // On divise par 1000 pour éviter la limite de l'integer php.
     215                }
     216            }
     217        }
     218    }
     219    return $taille * 1000;
    191220}
    192221
     
    202231 * @return array
    203232 */
    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;
     233function medias_lister_documents_repertoire ($repertoire_img = _DIR_IMG)
     234{
     235    $docs_fichiers = array();
     236
     237    foreach (medias_lister_extensions_documents() as $extension) {
     238        // Par sécurité, on vérifie que l'extension a bel
     239        // et bien un répertoire physique
     240        if (is_dir($repertoire_img . $extension)) {
     241            // On va chercher dans IMG/$extension/*.*
     242            $fichiers = glob($repertoire_img . "$extension/*.*");
     243            if (is_array($fichiers) and count($fichiers) > 0) {
     244                foreach ($fichiers as $fichier) {
     245                    $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     246                }
     247            }
     248        }
     249    }
     250    // On va chercher dans IMG/*.*
     251    $fichiers = glob($repertoire_img . "*.*");
     252    // On vérifie que c'est bien un tableau, avec au moins un élément.
     253    if (is_array($fichiers) and count($fichiers) > 0) {
     254        foreach ($fichiers as $fichier) {
     255            $docs_fichiers[] = $fichier;
     256        }
     257    }
     258    $docs_fichiers = array_unique(
     259        array_diff(
     260            $docs_fichiers,
     261            medias_lister_logos_fichiers()
     262        )
     263    );
     264    sort($docs_fichiers);
     265
     266    return (array) $docs_fichiers;
    223267}
    224268
     
    232276 * @return integer
    233277 */
    234 function medias_lister_documents_repertoire_taille () {
    235         return medias_calculer_taille_fichiers(medias_lister_documents_repertoire());
     278function medias_lister_documents_repertoire_taille ()
     279{
     280    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire());
    236281}
    237282
     
    244289 * @return array
    245290 */
    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;
     291function medias_lister_documents_repertoire_orphelins ()
     292{
     293    $docs_fichiers = array_unique(array_diff(medias_lister_documents_repertoire(), medias_lister_documents_bdd()));
     294    sort($docs_fichiers);
     295    return (array) $docs_fichiers;
    250296}
    251297
     
    256302 * @uses medias_lister_documents_repertoire_orphelins()
    257303 * @uses medias_calculer_taille_fichiers()
    258  * 
     304 *
    259305 * @return integer
    260306 */
    261 function medias_lister_documents_repertoire_orphelins_taille () {
    262         return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_orphelins());
     307function medias_lister_documents_repertoire_orphelins_taille ()
     308{
     309    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_orphelins());
    263310}
    264311
     
    272319 * @return array
    273320 */
    274 function medias_lister_documents_repertoire_complet ($repertoire_img = _DIR_IMG){
    275         $docs_fichiers = array();
    276 
    277         // On va chercher dans IMG/distant/*/*.*
     321function medias_lister_documents_repertoire_complet ($repertoire_img = _DIR_IMG)
     322{
     323    $docs_fichiers = array();
     324
     325    // On va chercher dans IMG/distant/*/*.*
    278326        // 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/*/*.*
     327    $fichiers = glob($repertoire_img . "*/*/*.*");
     328    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        }
     333    }
     334
     335    // On va chercher dans IMG/*/*.*
    285336        // 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/*.*
     337    $fichiers = glob($repertoire_img . "*/*.*");
     338    if (is_array($fichiers) and count($fichiers) > 0) {
     339        foreach ($fichiers as $fichier) {
     340            $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     341        }
     342    }
     343
     344    // On va chercher dans IMG/*.*
    292345        // 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;
     346    $fichiers = glob($repertoire_img . "*.*");
     347    if (is_array($fichiers) and count($fichiers) > 0) {
     348        foreach ($fichiers as $fichier) {
     349            $docs_fichiers[] = preg_replace("/\/\//", "/", $fichier);
     350        }
     351    }
     352
     353    $docs_fichiers = array_unique($docs_fichiers);
     354    sort($docs_fichiers);
     355
     356    return (array) $docs_fichiers;
    302357}
    303358
     
    314369 * @return integer
    315370 */
    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 :
     371function medias_lister_documents_repertoire_complet_taille ($repertoire_img = _DIR_IMG)
     372{
     373    return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_img));
     374}
     375
     376/**
     377 * Lister les logos des objets éditoriaux
     378 * Prend en compte les cas particuliers suivants :
    322379 * - articles (art)
    323380 * - rubriques (rub)
    324  * - brèves (breve)
    325381 * - sites syndiqués (site)
    326  * - mot-clé (mot)
    327382 * - auteurs (aut)
    328383 *
    329  * @todo étendre à d'autres objets éditoriaux.
     384 * @uses lister_tables_principales()
     385 *       liste en spip 3 les tables principales reconnues par SPIP
     386 * @uses id_table_objet()
     387 *       retourne la clé primiare de l'objet
     388 * @uses type_du_logo()
     389 *       retourne le type de logo tel que `art` depuis le nom de la clé primaire de l'objet
    330390 *
    331391 * @param null|string $mode
    332  *        + `null` : stockera dans le tableau tous les logos, 
     392 *        + `null` : stockera dans le tableau tous les logos,
    333393 *        quelque soit le mode du logo
    334394 *        + `on` : stockera dans le tableau tous les logos du mode "on"
     
    339399 * @return array
    340400 */
    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         }
     401function medias_lister_logos_fichiers ($mode = null, $repertoire_img = _DIR_IMG)
     402{
     403
     404    include_spip('inc/chercher_logo');
     405    include_spip('base/abstract_sql');
     406
     407    if (intval(spip_version()) == 2) {
     408        include_spip('base/connect_sql');
     409        $tables_objets = (isset($GLOBALS['tables_principales']))
     410        ? array_keys($GLOBALS['tables_principales'])
     411        : array('spip_articles',
     412            'spip_rubriques',
     413            'spip_auteurs',
     414            'spip_breves',
     415            'spip_documents',
     416            'spip_syndic',
     417            'spip_mots',
     418            'spip_forum',
     419            'spip_groupes_mots');
     420    } elseif (intval(spip_version()) == 3) {
     421        include_spip('base/objets');
     422        $tables_objets = array_keys(lister_tables_principales());
     423    }
     424    sort($tables_objets);
     425
     426    global $formats_logos;
     427    $docs_fichiers_on   = array();
     428    $docs_fichiers_off  = array();
     429
     430    // On va chercher toutes les tables principales connues de SPIP
     431    foreach ($tables_objets as $table) {
     432        // On cherche son type d'objet.
     433        // Il y a aussi dans ces objets la référence à `article`,
     434        // `rubrique` et `auteur`
     435        // Grâce à la fonction `id_table_objet()`, on retrouve le nom de la clé primaire de l'objet.
     436        // `type_du_logo()` retourne le type de logo tel que `art` depuis le nom de la clé primaire de l'objet
     437        $type_du_logo = type_du_logo(id_table_objet($table));
     438
     439        // On va chercher dans IMG/$type_du_logo(on|off)*.*
     440        // On fait un foreach pour ne pas avoir de
     441        // "Pattern exceeds the maximum allowed length of 260 characters"
     442        // sur glob()
     443        $liste = glob($repertoire_img . "{" . $type_du_logo ."}{on,off}*.*", GLOB_BRACE);
     444
     445        // Il faut avoir au moins un élément dans le tableau de fichiers.
     446        if (is_array($liste) and count($liste) > 0) {
     447            foreach ($liste as $fichier) {
     448                // ... 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                ) {
     460                    // 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]);
     462                    if ($requete) {
     463                        $docs_fichiers_on[] = preg_replace("/\/\//", "/", $fichier);
     464                    }
     465                }
     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]);
     478                    if ($requete) {
     479                        $docs_fichiers_off[] = preg_replace("/\/\//", "/", $fichier);
     480                    }
     481                }
     482            }
     483        }
     484    }
     485
     486    // On va chercher le logo du site.
     487    // On force la recherche sur cet élément même si la recherche "classique"
     488    // devrait gérer cela initialement…
     489    $logos_site = glob($repertoire_img . "{site}{on,off}0.*", GLOB_BRACE);
     490    // On évite d'utiliser la fonction `glob()` directement dans le `if` car ça peut créer un bug pour PHP <5.4
     491    // S'il n'y a pas de siteon0.ext, `glob()` va retourner un `false`. Donc, on regarde si c'est bien un tableau.
     492    // cf. http://contrib.spip.net/Nettoyer-la-mediatheque#forum475712
     493    if (is_array($logos_site) and count($logos_site) > 0) {
     494        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);
     514            }
     515        }
     516    }
     517
     518    // On va lister le logo standard des rubriques : rubon0.ext et ruboff0.ext
     519    // cf. http://contrib.spip.net/Nettoyer-la-mediatheque#forum475870
     520    $logos_rub_racine = glob($repertoire_img . "{rub}{on,off}0.*", GLOB_BRACE);
     521    if (is_array($logos_rub_racine) and count($logos_rub_racine) > 0) {
     522        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    }
     545
     546    switch ($mode) {
     547        case 'on':
     548            $docs_fichiers_on = array_unique($docs_fichiers_on);
     549            sort($docs_fichiers_on); // On trie dans l'ordre alphabétique
     550            return $docs_fichiers_on;
     551            break;
     552
     553        case 'off':
     554            $docs_fichiers_off = array_unique($docs_fichiers_off);
     555            sort($docs_fichiers_off); // On trie dans l'ordre alphabétique
     556            return $docs_fichiers_off;
     557            break;
     558
     559        default:
     560            $docs_fichiers = array_unique(array_merge($docs_fichiers_on, $docs_fichiers_off));
     561            sort($docs_fichiers); // On trie dans l'ordre alphabétique
     562            return $docs_fichiers;
     563            break;
     564    }
    402565
    403566}
     
    411574 *
    412575 * @param null|string $mode
    413  *        + `null` : calculera le poids de tous les logos, 
     576 *        + `null` : calculera le poids de tous les logos,
    414577 *        quelque soit le mode du logo
    415578 *        + `on` : calculera le poids de tous les logos du mode "on"
     
    417580 * @return integer|string
    418581 */
    419 function medias_lister_logos_fichiers_taille ($mode = null){
    420         return medias_calculer_taille_fichiers(medias_lister_logos_fichiers($mode));
     582function medias_lister_logos_fichiers_taille ($mode = null)
     583{
     584    return medias_calculer_taille_fichiers(medias_lister_logos_fichiers($mode));
     585}
     586
     587/**
     588 * Fonction qui retourne l'id_objet et l'objet à partir du nom du fichier de logo.
     589 * C'est un peu le chemin inverse de quete_logo().
     590 * @example
     591 *         - logo_vers_objet('arton51.png')
     592 *         - [(#LOGO_OBJET|basename|logo_vers_objet)]
     593 * @param  string $fichier
     594 *         Nom du fichier du logo sans chemin.
     595 * @return mixed
     596 *         - void : s'il n'y a pas de fichier, on ne renvoie rien
     597 *         - string : si $info == objet
     598 *         - integer : si $info == id_objet
     599 *         - array : si $info == null
     600 */
     601function logo_vers_objet ($fichier = null, $info = null)
     602{
     603    $logo_type_raccourcis = array(
     604        'art' => 'article',
     605        'rub' => 'rubrique',
     606        'aut' => 'auteur',
     607        'groupe' => 'groupe'
     608    );
     609    global $formats_logos;
     610
     611    if (is_null($fichier)) {
     612        return;
     613    }
     614
     615    if (preg_match("/(\w+)(on|off)(\d+).(" . join("|", $formats_logos) . ")$/", $fichier, $res)) {
     616        $id_objet = $res[3];
     617        if (array_key_exists($res[1], $logo_type_raccourcis)) {
     618            $objet = $logo_type_raccourcis[$res[1]];
     619        } else {
     620            $objet = $res[1];
     621        }
     622
     623        switch ($info) {
     624            case 'objet':
     625                return $objet;
     626                break;
     627
     628            case 'id_objet':
     629                return $id_objet;
     630                break;
     631
     632            default:
     633                return array('objet' => $objet, 'id_objet' => $id_objet);
     634                break;
     635        }
     636
     637    } else {
     638        return;
     639    }
     640}
     641/**
     642 * Retourne le lien `<a>` vers l'objet, avec le titre.
     643 * Fonction basée sur `lien_objet` du plugin médiathèque,
     644 * remodelée pour prendre la particularité des logos.
     645 *
     646 * @param  null|string  $fichier
     647 * @param  integer $longueur
     648 * @param  null|string  $connect
     649 * @return string
     650 */
     651function logo_generer_url_ecrire_objet_titre ($fichier = null, $longueur = 80, $connect = null)
     652{
     653    if (is_null($fichier)) {
     654        return;
     655    }
     656    $version_spip = intval(spip_version());
     657
     658    include_spip('inc/liens');
     659    $info_objet = logo_vers_objet($fichier);
     660    $type = $info_objet['objet'];
     661    $id = $info_objet['id_objet'];
     662
     663    // Si l'id_objet == 0, on est dans un cas particulier.
     664    // Nativement, on regarde si objet est une rubrique ou un site.
     665    // Si c'est une rubrique, on est sur le logo standard des rubriques
     666    // Si c'est un site, on est sur le logo du site SPIP.
     667    if ($id == 0) {
     668        switch ($type) {
     669            case 'rubrique':
     670                $exec = ($version_spip == 2) ? 'naviguer' : 'rubriques';
     671                $url = generer_url_ecrire($exec);
     672                $titre = _T('ecrire:logo_standard_rubrique');
     673                break;
     674            case 'site':
     675                $exec = ($version_spip == 2) ? 'configuration' : 'configurer_identite';
     676                $url = generer_url_ecrire($exec);
     677                $type = 'site_spip';
     678                $titre = _T('ecrire:logo_site');
     679                break;
     680        }
     681    } else {
     682        $titre = traiter_raccourci_titre($id, $type, $connect);
     683        $titre = typo($titre['titre']);
     684        if (!strlen($titre)) {
     685            $titre = _T('info_sans_titre');
     686        }
     687        $url = generer_url_entite($id, $type);
     688    }
     689
     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
     695 *
     696 * @param  string $fichier
     697 *         Nom du fichier du logo sans chemin.
     698 * @return string
     699 */
     700function logo_generer_url_ecrire_objet ($fichier = null)
     701{
     702    if (is_null($fichier)) {
     703        return;
     704    }
     705    $version_spip = intval(spip_version());
     706
     707    if ($version_spip == 2) {
     708        include_spip('base/connect_sql');
     709    } elseif ($version_spip == 3) {
     710        include_spip('base/objets');
     711    }
     712
     713    include_spip('inc/urls');
     714
     715    $info_objet = logo_vers_objet($fichier);
     716
     717    // Si l'id_objet == 0, on est dans un cas particulier.
     718    // Nativement, on regarde si objet est une rubrique ou un site.
     719    // Si c'est une rubrique, on est sur le logo standard des rubriques
     720    // Si c'est un site, on est sur le logo du site SPIP.
     721    if ($info_objet['id_objet'] == 0) {
     722        switch ($info_objet['objet']) {
     723            case 'rubrique':
     724                $exec = ($version_spip == 2) ? 'naviguer' : 'rubriques';
     725                return generer_url_ecrire($exec);
     726                break;
     727            case 'site':
     728                $exec = ($version_spip == 2) ? 'configuration' : 'configurer_identite';
     729                return generer_url_ecrire($exec);
     730                break;
     731        }
     732    } else {
     733        return generer_url_ecrire(
     734            $info_objet['objet'],
     735            id_table_objet($info_objet['objet'])
     736            . '='
     737            . intval($info_objet['id_objet'])
     738        );
     739    }
     740
    421741}
    422742
     
    432752 *         // a vérifier tout de même selon l'OS 32bit ou 64bit.
    433753 */
    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         }
     754function medias_calculer_taille_fichiers ($fichiers = array())
     755{
     756    $taille = 0;
     757    if (count($fichiers) > 0) {
     758        foreach ($fichiers as $fichier) {
     759            if (file_exists($fichier)) {
     760                $taille += filesize($fichier) /1000;
     761            }
     762        }
     763        if (is_float($taille) or $taille > 0) {
     764            return $taille *1000;
     765        } else {
     766            return $taille;
     767        }
     768    } else {
     769        return $taille;
     770    }
    450771}
    451772
     
    460781 * @return array
    461782 */
    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         }
     783function medias_lister_repertoires_orphelins ()
     784{
     785    if (is_dir(_MEDIAS_NETTOYAGE_REP_ORPHELINS)) {
     786        return medias_lister_repertoires(_MEDIAS_NETTOYAGE_REP_ORPHELINS);
     787    } else {
     788        return array();
     789    }
    468790}
    469791
     
    476798 * @return array
    477799 */
    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;
     800function medias_lister_repertoires_orphelins_fichiers ()
     801{
     802    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     803    $docs_fichiers      = array();
     804
     805    if (is_dir($repertoire_orphelins)) {
     806        $docs_fichiers = medias_lister_documents_repertoire_complet($repertoire_orphelins);
     807    }
     808    return (array) $docs_fichiers;
    486809}
    487810
     
    495818 * @return integer
    496819 */
    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         }
     820function medias_lister_repertoires_orphelins_fichiers_taille ()
     821{
     822    $repertoire_orphelins   = _MEDIAS_NETTOYAGE_REP_ORPHELINS;
     823    $taille         = 0;
     824
     825    if (is_dir($repertoire_orphelins)) {
     826        return medias_calculer_taille_fichiers(medias_lister_documents_repertoire_complet($repertoire_orphelins));
     827    } else {
     828        return intval($taille);
     829    }
    506830}
    507831
     
    511835 * @return array
    512836 */
    513 function test_medias(){
    514         $test = array();
    515         $test = @unserialize($GLOBALS['meta']['medias_nettoyage']);
    516         return $test;
    517 }
    518 
    519 /**
    520  * Déplacer tous les répertoires de types 'cache-*' et 'icones*'
    521  * SPIP normalement, avec la page "réparer la base", devrait répérer ce type
    522  * de dossier. Mais il peut arriver parfois qu'on récupère des sites qui
    523  * pour X raisons n'ont pas été nettoyé de ces coquilles.
    524  *
    525  * @uses medias_creer_repertoires_orphelins()
    526  * @uses _DIR_IMG
    527  * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    528  *
    529  * @return void
    530  */
    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;
    570 }
    571 
    572 /**
    573  * On déplace tous les fichiers orphelins vers un répertoire orphelins dans IMG/
    574  * On ne les supprime pas!
    575  *
    576  * @uses medias_creer_repertoires_orphelins()
    577  * @uses medias_creer_extensions_repertoires()
    578  * @uses medias_lister_documents_repertoire_orphelins()
    579  * @uses _DIR_IMG
    580  * @uses _MEDIAS_NETTOYAGE_REP_ORPHELINS
    581  *
    582  * @return array
    583  */
    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;
    638 }
    639 
    640 /**
    641  * Réparer les documents.
    642  * Il arrive parfois que suite à un problème de droits,
    643  * les documents ne soient plus rangés correctement dans IMG/ext/fichier.ext
    644  * mais dans un faux sous répertoire IMG/ext_fichier.ext
    645  * Le présent script va recopier les fichiers mal placés,
    646  * et changer leur référence dans la table spip_documents ;
    647  * il donnera ensuite la liste des fichiers recopiés et
    648  * des erreurs recontrées dans un fichier de log.
    649  *
    650  * Script repris de ce fichier :
    651  * http://zone.spip.org/trac/spip-zone/browser/_outils_/repare_doc.html
    652  *
    653  * @uses medias_lister_logos_fichiers()
    654  * @uses _DIR_IMG
    655  *
     837function test_medias ()
     838{
     839    $test = array();
     840    $test = medias_deplacer_documents_repertoire_orphelins();
     841    return $test;
     842}
     843
     844/**
     845 * Cette fonction vérifie si le fichier est une image ou pas.
     846 * On fait un test selon l'existence des fonctions PHP qui peuvent nous aider.
     847 * On évite ainsi une alerte PHP
     848 * @param  string $fichier
     849 *         url relative du fichier.
    656850 * @return bool
    657851 */
    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;
    715 }
    716 
     852function medias_est_image ($fichier)
     853{
     854    $image = false;
     855    if (function_exists('exif_imagetype')) {
     856        if (is_numeric(exif_imagetype($fichier))) {
     857            $image = true;
     858        }
     859    } elseif (function_exists('getimagesize')) {
     860        if (is_array(getimagesize($fichier))) {
     861            $image = true;
     862        }
     863    }
     864    return $image;
     865}
    717866?>
  • _plugins_/medias_nettoyage/branches/v0/medias_nettoyage_options.php

    r82296 r89673  
    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/branches/v0/medias_nettoyage_pipelines.php

    r82296 r89673  
    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
  • _plugins_/medias_nettoyage/branches/v0/paquet.xml

    r82621 r89673  
    22        prefix="medias_nettoyage"
    33        categorie="outil"
    4         version="0.8.7"
     4        version="0.10.4"
    55        etat="stable"
    6         compatibilite="[2.1.0;3.0.*]"
     6        compatibilite="[2.1.0;3.1.*]"
    77        logo="prive/themes/spip/images/medias_nettoyage-64.png"
    8 >       
     8        documentation="http://contrib.spip.net/Nettoyer-la-mediatheque"
     9>
    910
    1011        <nom>Nettoyer la m&#233;diath&#232;que</nom>
     
    2324
    2425        <onglet nom="medias_tabbord" titre="medias_nettoyage:onglet_titre_tabbord" parent="medias_tabbord" icone="images/medias_tabbord-24.png" action="medias_tabbord" />
     26        <onglet nom="medias_rep_img" titre="medias_nettoyage:onglet_titre_rep_img" parent="medias_tabbord" icone="images/medias_rep_img-24.png" action="medias_rep_img" />
     27        <onglet nom="medias_logos_img" titre="medias_nettoyage:onglet_titre_logos_img" parent="medias_tabbord" icone="images/medias_logos_img-24.png" action="medias_logos_img" />
    2528        <onglet nom="medias_rep_orphelins" titre="medias_nettoyage:onglet_titre_rep_orphelins" parent="medias_tabbord" icone="images/medias_rep_img-24.png" action="medias_rep_orphelins" />
    26         <onglet nom="medias_rep_img" titre="medias_nettoyage:onglet_titre_rep_img" parent="medias_tabbord" icone="images/medias_rep_img-24.png" action="medias_rep_img" />
    2729</paquet>
  • _plugins_/medias_nettoyage/branches/v0/plugin.xml

    r82621 r89673  
    55        <icon>prive/themes/spip/images/medias_nettoyage-64.png</icon>
    66        <prefix>medias_nettoyage</prefix>
    7         <version>0.8.7</version>
     7        <version>0.10.4</version>
    88        <etat>stable</etat>
    99        <categorie>outil</categorie>
     10    <lien>http://contrib.spip.net/Nettoyer-la-mediatheque</lien>
    1011
    1112        <auteur>Venfu</auteur>
     
    2829        </pipeline>
    2930
    30         <necessite id="SPIP" version="[2.1.0;3.0.99]" />
     31        <necessite id="SPIP" version="[2.1.0;3.1.99]" />
    3132        <necessite id="Iterateurs" version="[1.0.1;]" />
    3233        <necessite id="saisies" version="[1.20.0;]" />
  • _plugins_/medias_nettoyage/branches/v0/prive/exec/configurer_medias_nettoyage.html

    r81897 r89673  
    1 [(#AUTORISER{configurer,_medias_nettoyage}|sinon_interdire_acces)]
    2 
    3 <h1 class="grostitre"><:medias_nettoyage:titre_page_configurer_medias_nettoyage:></h1>
    4 
    5 <div class="ajax">
    6         #FORMULAIRE_CONFIGURER_MEDIAS_NETTOYAGE
    7 </div>
     1<INCLURE{fond=prive/squelettes/contenu/configurer_medias_nettoyage,env} />
  • _plugins_/medias_nettoyage/branches/v0/prive/exec/medias_rep_img.html

    r81869 r89673  
    33<!--/#navigation-->
    44
    5 <div class="nettoyeur"></div>
    6 
    7 <h1><:medias_nettoyage:titre_page_medias_rep_img:></h1>
    8 <div class="nettoyeur"></div>
    9 
    10 <INCLURE{fond=prive/objets/liste/medias_rep_img,env,ajax} />
    11 <div class="nettoyeur"></div>
     5<INCLURE{fond=prive/squelettes/contenu/medias_rep_img,env} />
  • _plugins_/medias_nettoyage/branches/v0/prive/exec/medias_rep_orphelins.html

    r81886 r89673  
    33<!--/#navigation-->
    44
    5 <div class="nettoyeur"></div>
    6 
    7 <h1><:medias_nettoyage:titre_page_medias_rep_orphelins:></h1>
    8 <div class="nettoyeur"></div>
    9 
    10 <INCLURE{fond=prive/objets/liste/medias,liste=(#REM|medias_lister_repertoires_orphelins_fichiers),sinon=<:medias_nettoyage:aucun_document_orphelin:>,env,ajax} />
    11 <div class="nettoyeur"></div>
    12 
    13 <INCLURE{fond=prive/objets/liste/medias_rep_orphelins,env,ajax} />
    14 <div class="nettoyeur"></div>
     5<INCLURE{fond=prive/squelettes/contenu/medias_rep_orphelins,env} />
  • _plugins_/medias_nettoyage/branches/v0/prive/exec/medias_tabbord.html

    r81869 r89673  
    33<!--/#navigation-->
    44
    5 <div class="nettoyeur"></div>
    6 
    7 <h1><:medias_nettoyage:titre_page_medias_tabbord:></h1>
    8 <div class="nettoyeur"></div>
    9 
    10 <INCLURE{fond=prive/objets/liste/medias_rapport,env,ajax} />
    11 <div class="nettoyeur"></div>
    12 
     5<INCLURE{fond=prive/squelettes/contenu/medias_tabbord,env} />
  • _plugins_/medias_nettoyage/branches/v0/prive/inclure/medias_nettoyage_navigation.html

    r81869 r89673  
    22        <div class="cadre_padding">
    33                <ul class="liste-items">
    4                         <li class="item[(#ENV{exec}|=={medias_tabbord}|oui) on]"><a href="[(#URL_ECRIRE{medias_tabbord})]"><:medias_nettoyage:onglet_titre_tabbord:></a></li>
    5                         <li class="item[(#ENV{exec}|=={medias_rep_orphelins}|oui) on]"><a href="[(#URL_ECRIRE{medias_rep_orphelins})]"><:medias_nettoyage:onglet_titre_rep_orphelins:></a></li>
    6                         <li class="item[(#ENV{exec}|=={medias_rep_img}|oui) on]"><a href="[(#URL_ECRIRE{medias_rep_img})]"><:medias_nettoyage:onglet_titre_rep_img:></a></li>
     4            <li class="item[(#ENV{exec}|=={medias_tabbord}|oui) on]"><a href="[(#URL_ECRIRE{medias_tabbord})]">[(#CHEMIN{prive/themes/spip/images/medias_tabbord-16.png}|balise_img{<:medias_nettoyage:onglet_titre_tabbord:>})] <:medias_nettoyage:onglet_titre_tabbord:></a></li>
     5            <li class="item[(#ENV{exec}|=={medias_rep_img}|oui) on]"><a href="[(#URL_ECRIRE{medias_rep_img})]">[(#CHEMIN{prive/themes/spip/images/medias_rep_img-16.png}|balise_img{<:medias_nettoyage:onglet_titre_rep_img:>})] <:medias_nettoyage:onglet_titre_rep_img:></a></li>
     6            <li class="item[(#ENV{exec}|=={medias_logos_img}|oui) on]"><a href="[(#URL_ECRIRE{medias_logos_img})]">[(#CHEMIN{prive/themes/spip/images/medias_logos_img-16.png}|balise_img{<:medias_nettoyage:onglet_titre_logos_img:>})] <:medias_nettoyage:onglet_titre_logos_img:></a></li>
     7            <li class="item[(#ENV{exec}|=={medias_rep_orphelins}|oui) on]"><a href="[(#URL_ECRIRE{medias_rep_orphelins})]">[(#CHEMIN{prive/themes/spip/images/medias_rep_img-16.png}|balise_img{<:medias_nettoyage:onglet_titre_rep_orphelins:>})] <:medias_nettoyage:onglet_titre_rep_orphelins:></a></li>
    78                </ul>
    89        </div>
  • _plugins_/medias_nettoyage/branches/v0/prive/objets/liste/medias.html

    r81885 r89673  
     1[(#SET{spip_version,[(#SPIP_VERSION|intval)]})]
     2
    13<B_liste_medias>
    24[(#ANCRE_PAGINATION)]
    35<div class="galerie medias">
    4 [<h3>(#ENV{titre})</h3>]
    5         <table class="spip liste">
    6                 [<caption>(#GRAND_TOTAL|singulier_ou_pluriel{medias_nettoyage:un_document,medias_nettoyage:des_documents})</caption>]
    7                 <thead>
    8                         <tr class="first_row">
    9                                 <th class="nom principale"><:medias_nettoyage:info_nom:></th>
    10                                 <th class="taille secondaire"><:medias_nettoyage:info_taille:></th>
    11                                 <th class="date secondaire"><:date:></th>
    12                         </tr>
    13                 </thead>
    14                 <tbody>
    15                 <BOUCLE_liste_medias (DATA) {source table, #ENV{liste}} {par valeur} {pagination #ENV{nb,10}}>
    16                         <tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
    17                                 <td class="nom principale">[(#VALEUR)]</td>
    18                                 <td class="taille secondaire">[(#VALEUR|filesize|taille_en_octets)]</td>
    19                                 <td class="date secondaire">[(#VAL{d-m-Y}|date{#VALEUR|filemtime})]</td>
    20                         </tr>
    21                 </BOUCLE_liste_medias>
    22                 </tbody>
    23         </table>
    24         [<div class="pagination">(#PAGINATION{#ENV{pagination,prive}})</div>]
     6    [<h3>(#ENV{titre})</h3>]
     7
     8    <table class="spip liste">
     9        [<caption>(#GRAND_TOTAL|singulier_ou_pluriel{medias_nettoyage:un_document,medias_nettoyage:des_documents})</caption>]
     10        <thead>
     11            <tr class="first_row">
     12                <th class="nom principale"><:medias_nettoyage:info_nom:></th>
     13                <th class="exif secondaire"><:medias_nettoyage:info_technique:></th>
     14                <th class="date secondaire"><:date:></th>
     15                [(#ENV{logos}|=={'oui'}|non)
     16                <th class="action secondaire"><:medias_nettoyage:actions:></th>
     17                ]
     18            </tr>
     19        </thead>
     20        <tbody>
     21            <BOUCLE_liste_medias (DATA) {source table, #ENV{liste}} {par valeur} {pagination #ENV{nb,10}}>[(#SET{pathinfo,[(#VALEUR|pathinfo)]})]
     22            <tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
     23                <td class="nom principale">
     24                    [(#VALEUR|medias_est_image|oui)[
     25                    <a href="#VALEUR"[ title="(#VALEUR|attribut_html)"] class="mediabox">(#VALEUR|balise_img|image_reduire{125,100}|inserer_attribut{alt,[(#VALEUR|basename|attribut_html)]})
     26                        [<br/><em>(#VALEUR|basename)</em>]
     27                    </a>]]
     28                    [(#VALEUR|medias_est_image|non)
     29                    [<div class="resize-125">
     30                        <a href="#VALEUR"[ title="(#VALEUR|attribut_html)"]>(#VALEUR|basename)</a>
     31                    </div>]]
     32                </td>
     33                <td class="exif secondaire">
     34                    [<strong class="extension">(#GET{pathinfo}|table_valeur{extension})</strong>]
     35                    [<div class="dimensions">(#VALEUR|medias_est_image|oui)[(#VALEUR|largeur)] x [(#VALEUR|hauteur)] px </div>]
     36                    [<div class="taille">(#VALEUR|filesize|taille_en_octets)</div>]
     37                    [<div class="extras">(#VALEUR|replace{'/','/<wbr/>'})</div>]
     38                [(#ENV{logos}|=={'oui'}|oui)
     39                    <div class="lien objet">
     40                    [(#VALEUR|logo_generer_url_ecrire_objet_titre)]
     41                    </div>
     42                ]
     43                </td>
     44                <td class="date secondaire">
     45                    [(#VAL{Y-m-d h:i:s}|date{#VALEUR|filemtime}|affdate)]
     46                </td>
     47                [(#ENV{logos}|=={'oui'}|non)
     48                <td class="action secondaire">
     49                [(#AUTORISER{supprimer,medias_orphelins}|oui)
     50                [(#SET{url,[(#URL_ACTION_AUTEUR{supprimer_orphelins,#VALEUR,#SELF|parametre_url{'var_mode','recalcul'}})]})]
     51                    [(#INCLURE{fond=prive/squelettes/inclure/btn_spip#GET{spip_version}_supprimer}{url=#GET{url}})]
     52                ]
     53                </td>
     54                ]
     55            </tr>
     56            </BOUCLE_liste_medias>
     57        </tbody>
     58    </table>
     59    [<div class="pagination">(#PAGINATION{#ENV{pagination,prive}})</div>]
    2560</div>
    2661</B_liste_medias>[
  • _plugins_/medias_nettoyage/branches/v0/prive/objets/liste/medias_rapport.html

    r81885 r89673  
    11<div class="galerie medias">
    2 [<h3>(#ENV{titre})</h3>]
     2        [<h3>(#ENV{titre})</h3>]
    33        <table class="spip liste">
    44                <thead>
  • _plugins_/medias_nettoyage/branches/v0/prive/squelettes/contenu/medias_rep_img.html

    r81880 r89673  
    1 [(#VAL{'medias_tabbord'}|barre_onglets{medias_rep_img})]
    2 <div class="nettoyeur"></div>
    3 
    41<h1><:medias_nettoyage:titre_page_medias_rep_img:></h1>
    52<div class="nettoyeur"></div>
    63
    7 <INCLURE{fond=prive/objets/liste/medias_rep_img,env,ajax} />
     4<INCLURE{fond=prive/objets/liste/repertoires,repertoires=#EVAL{medias_lister_repertoires()},sinon=<:medias_nettoyage:aucun_repertoire:>,env,ajax} />
    85<div class="nettoyeur"></div>
  • _plugins_/medias_nettoyage/branches/v0/prive/squelettes/contenu/medias_rep_orphelins.html

    r81885 r89673  
    1 [(#VAL{'medias_tabbord'}|barre_onglets{medias_rep_orphelins})]
    2 <div class="nettoyeur"></div>
    3 
    41<h1><:medias_nettoyage:titre_page_medias_rep_orphelins:></h1>
    52<div class="nettoyeur"></div>
     
    85<div class="nettoyeur"></div>
    96
    10 <INCLURE{fond=prive/objets/liste/medias_rep_orphelins,env,ajax} />
     7<INCLURE{fond=prive/objets/liste/repertoires,repertoires=#EVAL{medias_lister_repertoires(_MEDIAS_NETTOYAGE_REP_ORPHELINS)},env,ajax} />
    118<div class="nettoyeur"></div>
  • _plugins_/medias_nettoyage/branches/v0/prive/squelettes/contenu/medias_tabbord.html

    r81880 r89673  
    1 [(#VAL{'medias_tabbord'}|barre_onglets{medias_tabbord})]
    2 <div class="nettoyeur"></div>
    3 
    41<h1><:medias_nettoyage:titre_page_medias_tabbord:></h1>
    52<div class="nettoyeur"></div>
  • _plugins_/medias_nettoyage/branches/v0/prive/style_prive_medias_nettoyage.css

    r81869 r89673  
    22.liste-objets.medias table tr {}
    33.liste-objets.medias table tr td { padding: 3px 5px; border-bottom: 1px solid #cccccc; }
     4
     5.galerie table td { min-height: auto; }
  • _plugins_/medias_nettoyage/branches/v0/todo.txt

    r82296 r89673  
    22Observations :
    33- regarder si on ne pourrait pas utiliser ecrire_fichier(), lire_fichier(), sous_repertoire()… Est-ce vraiment utile ? Car ce plugin ne fait que déplacer, donc ne devrait pas prendre plus de place sur le disque normalement.
    4 - il faudrait mettre un verrou sur la fonction medias_deplacer_rep_obsoletes() pour qu'elle ne s'exécute que si un fichier/dossier obsolète existe. Sinon, pas la peine de le mettre en cron. Tant qu'on n'a pas trouvé une solution perrene, on lance un cron à 30 jours.
     4- il faudrait mettre un verrou sur la fonction medias_deplacer_rep_obsoletes() pour qu'elle ne s'exécute que si un fichier/dossier obsolète existe. Sinon, pas la peine de le mettre en cron. Tant qu'on n'a pas trouvé une solution perrene, on lance un cron à 5 heures.
Note: See TracChangeset for help on using the changeset viewer.