Changeset 82918 in spip-zone


Ignore:
Timestamp:
Jun 9, 2014, 7:57:04 PM (7 years ago)
Author:
teddy.spip@…
Message:

Un oups sur le logo du site! La regex du glob était mal écrite.

File:
1 edited

Legend:

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

    r82917 r82918  
    426426    $docs_fichiers_on   = array();
    427427    $docs_fichiers_off  = array();
    428     $fichiers           = array();
    429428
    430429    // On va chercher toutes les tables principales connues de SPIP
     
    442441        // sur glob()
    443442        $liste = glob($repertoire_img . "{" . $type_du_logo ."}{on,off}*.*", GLOB_BRACE);
     443
     444        // Il faut avoir au moins un élément dans le tableau de fichiers.
    444445        if (is_array($liste) and count($liste) > 0) {
    445             $fichiers = array_merge($fichiers, $liste);
    446         }
    447         // Il faut avoir au moins un élément dans le tableau de fichiers.
    448         if (is_array($fichiers) and count($fichiers) > 0) {
    449             foreach ($fichiers as $fichier) {
     446            foreach ($liste as $fichier) {
    450447                // ... Donc on fait une regex plus poussée avec un preg_match
    451448                if (
     
    489486    // On force la recherche sur cet élément même si la recherche "classique"
    490487    // devrait gérer cela initialement…
    491     $logo_site = glob($repertoire_img . "site{on|off}0.*", GLOB_BRACE);
     488    $logos_site = glob($repertoire_img . "{site}{on,off}0.*", GLOB_BRACE);
    492489    // On évite d'utiliser la fonction `glob()` directement dans le `if` car ça peut créer un bug pour PHP <5.4
    493490    // S'il n'y a pas de siteon0.ext, `glob()` va retourner un `false`. Donc, on regarde si c'est bien un tableau.
    494491    // cf. http://contrib.spip.net/Nettoyer-la-mediatheque#forum475712
    495     if (is_array($logo_site) and count($logo_site) > 0) {
    496         if (
    497             preg_match(
    498                 "/siteon0.("
    499                 . join("|", $formats_logos)
    500                 .")$/",
    501                 $fichier
    502             )
    503         ) {
    504             $docs_fichiers_on[] = preg_replace("/\/\//", "/", $fichier);
    505         }
    506         if (
    507             preg_match(
    508                 "/siteoff0.("
    509                 . join("|", $formats_logos)
    510                 .")$/",
    511                 $fichier
    512             )
    513         ) {
    514             $docs_fichiers_off[] = preg_replace("/\/\//", "/", $fichier);
     492    if (is_array($logos_site) and count($logos_site) > 0) {
     493        foreach ($logos_site as $logo_site) {
     494            if (
     495                preg_match(
     496                    "/(siteon)(\d).("
     497                    . join("|", $formats_logos)
     498                    .")$/",
     499                    $logo_site
     500                )
     501            ) {
     502                $docs_fichiers_on[] = preg_replace("/\/\//", "/", $logo_site);
     503            }
     504            if (
     505                preg_match(
     506                    "/(siteoff)(\d).("
     507                    . join("|", $formats_logos)
     508                    .")$/",
     509                    $logo_site
     510                )
     511            ) {
     512                $docs_fichiers_off[] = preg_replace("/\/\//", "/", $logo_site);
     513            }
    515514        }
    516515    }
Note: See TracChangeset for help on using the changeset viewer.