Luxbum.net - Script de galerie photo

Changeset 313

Show
Ignore:
Timestamp:
03/24/08 16:27:52 (8 months ago)
Author:
nicolas
Message:

Correction bug: l'ordre manuel n'était pas préservé lors du renomage
d'une galerie

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/luxbum-0.6/_fonctions/class/luxbumindex.class.php

    r275 r313  
    1 <?php  
     1<?php 
    22 
    33  //============================================================================== 
     
    1515   var $sortOrder; 
    1616   var $dir; 
    17     
     17 
    1818   function luxBumIndex ($photoDir = '') { 
    1919      if ($photoDir != PHOTOS_DIR) { 
     
    2323      $this->_loadSort (); 
    2424   } 
    25     
    26     
     25 
     26 
    2727   /**-----------------------------------------------------------------------**/ 
    2828   /** Getter et setter */ 
     
    3535      $this->sortType = $sortType; 
    3636   } 
    37     
     37 
    3838   /** 
    3939    * Retourne le type de tri de l'index 
     
    4343      return $this->sortType; 
    4444   } 
    45     
     45 
    4646   /** 
    4747    * Affecte le sens du tri (asc / desc) 
     
    5151      $this->sortOrder = $sortOrder; 
    5252   } 
    53     
     53 
    5454   /** 
    5555    * Retourne le sens du tri 
     
    6565   function getGalleryCount () { 
    6666      return count ($this->galleryList); 
     67   } 
     68 
     69   /** 
     70    * Retourne la position d'une galerie dans l'index 
     71    */ 
     72   function getIndex($dir) { 
     73      for ($i = 0 ; $i < count($this->galleryList) ; $i++) { 
     74         $gal = $this->galleryList[$i]; 
     75         if ($gal->getName() == $dir) { 
     76            return $i; 
     77         } 
     78      } 
     79      return -1; 
    6780   } 
    6881 
     
    8699   } 
    87100 
    88     
    89  
    90101   /** 
    91102    * Remplit la liste de toutes les galeries 
     
    98109      } 
    99110      $this->_loadSort(); 
    100        
    101       // Lecture de tous les dossiers de photos  
     111 
     112      // Lecture de tous les dossiers de photos 
    102113      if ($dir_fd = opendir ($this->photoDir)) { 
    103114         $i = 0; 
    104     
     115 
    105116         while ($current_dir = readdir ($dir_fd)) { 
    106     
     117 
    107118            // Lecture de tous les dossiers 
    108119            if ($current_dir[0] != '.' && is_dir ($this->getDirPath ($current_dir)) 
     
    111122               $trouve = false; 
    112123               $apercu_fd = opendir ($this->getDirPath ($current_dir)); 
    113     
     124 
    114125               // Au moins une image dans la galerie ? 
    115126               while (!$trouve && $current_file = readdir ($apercu_fd)) { 
     
    119130               } 
    120131               closedir ($apercu_fd); 
    121     
     132 
    122133               if ($trouve == true || ($minImage == 0 && $trouve == false)) { 
    123134                  $this->addGallery ($current_dir); 
     
    130141      } 
    131142   } 
    132     
     143 
    133144   /**-----------------------------------------------------------------------**/ 
    134145   /** Fonctions de tri */ 
     
    150161      $realkey = null; 
    151162      $i = 0; 
    152            
     163 
    153164      foreach ($galleryList as $gallery) { 
    154165         switch ($sortType) { 
     
    170181         } 
    171182         else { 
    172             // Suffixe avec le nom de la galerie au cas où  
    173             // il y aurait des clés identiques !!!  
     183            // Suffixe avec le nom de la galerie au cas où 
     184            // il y aurait des clés identiques !!! 
    174185            // (ce qui arrive souvent, même size|count, ordre non défini) 
    175186            $realkey .= '_'.$gallery->getName(); 
     
    178189         $i++; 
    179190      } 
    180            
    181       // Now natcase sort the array based on the keys  
     191 
     192      // Now natcase sort the array based on the keys 
    182193      uksort ($newImageArray, "strnatcasecmp"); 
    183194      uksort ($newImageArrayFailed, "strnatcasecmp"); 
    184        
     195 
    185196      // Inverse l'ordre si ordre décroissant 
    186197      if ($sortOrder == 'desc') { 
     
    188199         $newImageArrayFailed = array_reverse ($newImageArrayFailed); 
    189200      } 
    190        
     201 
    191202      // Return a new array with just the values 
    192203      $newImageArray = array_values($newImageArray); 
     
    194205      return array_merge($newImageArray, $newImageArrayFailed); 
    195206   } 
    196     
     207 
    197208   /** 
    198209    * Enregistre les préférences de tri dans un fichier de format : 
     
    216227      } 
    217228   } 
    218     
     229 
    219230   /** 
    220231    * Charge l'ordre des photos 
     
    236247      } 
    237248   } 
     249 
     250   /** 
     251    * Renome une galerie présente dans l'index. Sert à préserver l'ordre définit manuellement 
     252    */ 
     253   function renameGallery($oldName, $newGallery) { 
     254      $index = $this->getIndex($oldName); 
     255      if ($index != -1) { 
     256         $newGallery->setSortPosition($this->galleryList[$index]->getSortPosition()); 
     257         $this->galleryList[$index] = $newGallery; 
     258 
     259         $newSort = array(); 
     260         foreach ($this->sortList as $key => $value) { 
     261            if ($key == $oldName) { 
     262               $key = $newGallery->getName(); 
     263            } 
     264            $newSort[$key] = $value; 
     265         } 
     266         unset($this->sortList); 
     267         $this->sortList = $newSort; 
     268 
     269         $this->saveSort(); 
     270      } 
     271   } 
    238272} 
     273 
    239274?> 
  • branches/luxbum-0.6/_fonctions_manager/liste_galeries.php

    r306 r313  
    138138         } 
    139139         else { 
     140            $nuxIndex->renameGallery($dir, $galRename); 
    140141            unset ($nuxIndex); 
    141142            $nuxIndex = new  luxBumIndex ('');