Luxbum.net - Script de galerie photo

Changeset 68 for trunk

Show
Ignore:
Timestamp:
07/15/06 17:17:10 (2 years ago)
Author:
anonymous
Message:

Tri des galeries
Tri de l'index
Administration des tris

Refonte de la structure html et suppression de toutes les tables

Début des galeries récursives => tout l'affichage est cassé !!!

Amélirations pour les commentaire

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/_conf/config.php

    r65 r68  
    22define ('NOM_GALERIE', 'Galerie d\'images'); 
    33define ('TEMPLATE_THEME', '2COL'); 
    4 define ('COLOR_THEME', 'light'); 
     4define ('COLOR_THEME', 'l62'); 
    55define ('USE_REWRITE', 'off'); 
    66define ('MKDIR_SAFE_MODE', 'off'); 
     
    99define ('MAX_FILE_SIZE', '2000'); 
    1010define ('SHOW_EXIF', 'on'); 
    11 define ('SHOW_COMMENTAIRE', 'off'); 
     11define ('SHOW_COMMENTAIRE', 'on'); 
    1212define ('DBL_HOST', 'localhost'); 
    13 define ('DBL_NAME', ''); 
    14 define ('DBL_LOGIN', ''); 
    15 define ('DBL_PASSWORD', ''); 
     13define ('DBL_NAME', 'luxbum'); 
     14define ('DBL_LOGIN', 'luxbum'); 
     15define ('DBL_PASSWORD', 'luxbum'); 
    1616define ('DBL_PREFIX', 'luxbum_'); 
    1717define ('SHOW_SLIDESHOW', 'on'); 
  • trunk/_conf/version.php

    r65 r68  
    11<?php 
    2 $luxbum_version='0.5'; 
     2$luxbum_version='0.5.1-dev'; 
    33?> 
  • trunk/_fonctions/affichage.php

    r65 r68  
    1010// Parsing des paramètres 
    1111//------------------------------------------------------------------------------ 
    12 // Méthode rewritée 
    13 if (USE_REWRITE == 'on') { 
    14    if (!isset($_GET['photo']) || !isset($_GET['d']) || !isset($_GET['page']) ) { 
    15       exit('manque des paramètres ON'); 
    16    } 
    17  
    18    $file          = $_GET['photo']; 
    19    $dir           = $_GET['d']; 
    20    $page_courante = $_GET['page']; 
    21 
    22 // Méthode non rewritée 
     12if (ereg ('^/affichage-([0-9]+)-(.+)-(.+)\.html$', $_SERVER['QUERY_STRING'], $argv) ) { 
     13   $page_courante = $argv[1]; 
     14   $dir           = $argv[2]; 
     15   $file          = $argv[3]; 
     16
    2317else  { 
    24    if (ereg ('^/affichage-([0-9]+)-(.+)-(.+)\.html$', $_SERVER['QUERY_STRING'], $argv) ) { 
    25       $page_courante = $argv[1]; 
    26       $dir           = $argv[2]; 
    27       $file          = $argv[3]; 
    28    } 
    29    else  { 
    30       exit ('manque des paramètres OFF'); 
    31    } 
    32 
    33  
    34 if (!verif_dir ($dir)) { 
    35    exit ('nom de dossier incorrect !!'); 
    36 
    37 else if (!is_dir (luxbum::getDirPath ($dir))) { 
    38    exit ('dossier incorrect !!'); 
    39 
    40 else if (!verif_photo ($dir, $file)) { 
    41    exit ('nom de la photo incorrect !!'); 
    42 
     18   exit ('manque des paramètres OFF'); 
     19
     20 
     21// if (!verif::dir ($dir)) { 
     22//    exit ('nom de dossier incorrect !!'); 
     23// } 
     24// else if (!is_dir (luxbum::getDirPath ($dir))) { 
     25//    exit ('dossier incorrect !!'); 
     26// } 
     27// else if (!verif_photo ($dir, $file)) { 
     28//    exit ('nom de la photo incorrect !!'); 
     29// } 
    4330 
    4431function getScriptURL () { 
     
    9380   . ucfirst ($luxAff -> getDescription ()); 
    9481 
    95 $page->MxImage ('photo', $luxAff->getAsPreview (), $altTitle,  
     82$page->MxImage ('photo', $luxAff->getPreviewLink(), $altTitle,  
    9683                'title="'.$altTitle.'" '. ($luxAff->getPreviewResizeSize ()), true); 
    9784$page->MxUrl      ('lien',  $luxAff->getImagePath ()); 
     
    145132$page->MxUrl  ('redirect_noscript', $lien_redirect); 
    146133 
    147 if (SHOW_EXIF == 'on' &&$luxAff->exifExists ()) { 
     134if (SHOW_EXIF == 'on' && $luxAff->exifExists ()) { 
    148135   $page->MxText ('exif.lien', INDEX_FILE.'?p=infos_exif&amp;d='.$dir.'&amp;photo='.$file); 
    149136} 
     
    167154// Liens suivants et précédents 
    168155 
    169 $nuxThumb = new luxBumGalleryList ($dir); 
     156$nuxThumb = new luxBumGallery($dir); 
    170157$nuxThumb->addAllImages (); 
    171158$galleryCount = $nuxThumb->getCount (); 
     
    184171$page_courante++; 
    185172 
    186 // Une seule image dans la gallerie 
     173// Une seule image dans la galerie 
    187174if ($galleryCount == 1) { 
    188175   $page->MxBloc ('back', 'delete'); 
  • trunk/_fonctions/class/commentaire.class.php

    r66 r68  
    2424   } 
    2525    
     26   /** 
     27    *  
     28    */ 
    2629   function fillFromPost () { 
    2730      // Auteur, obligatoire 
     
    5962   } 
    6063 
     64   /** 
     65    *  
     66    */ 
    6167   function getErreur ($champ) { 
    6268      if (array_key_exists ($champ, $this->erreurs)) { 
     
    6672   } 
    6773 
     74   /** 
     75    *  
     76    */ 
    6877   function isValidForm () { 
    6978      return (count ($this->erreurs) == 0); 
    7079   } 
    7180    
     81   /** 
     82    *  
     83    */ 
    7284   function fillFromId ($id) { 
    7385      global $mysql; 
     
    8799   } 
    88100 
     101   /** 
     102    *  
     103    */ 
    89104   function insertRow () { 
    90105      global $mysql; 
    91       $sql = "INSERT INTO ".DBL_PREFIX."commentaire (galerie_comment, photo_comment, date_comment, " 
    92          ."auteur_comment, email_comment, site_comment, content_comment, ip_comment, pub_comment) " 
    93          ."VALUES (" 
    94          ."'".$this->galerie."', " 
    95          ."'".$this->photo."', " 
    96          ."SYSDATE(), " 
    97          ."'".$this->auteur."'," 
    98          ."'".$this->email."'," 
    99          ."'".$this->site."'," 
    100          ."'".$this->content."'," 
    101          ."'".$_SERVER['REMOTE_ADDR']."', " 
    102          ."'1')"; 
     106      $sql = sprintf ("INSERT INTO ".DBL_PREFIX."commentaire (galerie_comment, photo_comment, date_comment, " 
     107                      ."auteur_comment, email_comment, site_comment, content_comment, ip_comment, pub_comment) " 
     108                      ."VALUES (%s, %s, SYSDATE(), %s,%s, %s, %s, %s, %s)", 
     109                      $mysql->escapeString($this->galerie), 
     110                      $mysql->escapeString($this->photo), 
     111                      $mysql->escapeString($this->auteur), 
     112                      $mysql->escapeString($this->email), 
     113                      $mysql->escapeString($this->site), 
     114                      $mysql->escapeString($this->content), 
     115                      $mysql->escapeString($_SERVER['REMOTE_ADDR']), 
     116                      $mysql->escapeSet (1)); 
    103117      $mysql->DbQuery ($sql); 
    104118      $this->id = $mysql->DbGetInsertId(); 
    105119   } 
    106120 
     121   /** 
     122    *  
     123    */ 
    107124   function updateRow () { 
    108125      global $mysql; 
    109       $sql = "UPDATE ".DBL_PREFIX."commentaire SET " 
    110          ."auteur_comment='".$this->auteur."'," 
    111          ."email_comment='".$this->email."'," 
    112          ."site_comment='".$this->site."'," 
    113          ."content_comment='".$this->content."'" 
    114          ." WHERE id_comment=".$this->id; 
     126      $sql = sprintf ("UPDATE ".DBL_PREFIX."commentaire SET " 
     127                      ."auteur_comment=%s," 
     128                      ."email_comment=%s," 
     129                      ."site_comment=%s," 
     130                      ."content_comment=%s" 
     131                      ." WHERE id_comment=%d", 
     132                      $mysql->escapeString($this->auteur), 
     133                      $mysql->escapeString($this->email), 
     134                      $mysql->escapeString($this->site), 
     135                      $mysql->escapeString($this->content), 
     136                      $this->id); 
    115137      $mysql->DbQuery ($sql); 
    116138   } 
    117139    
     140   /** 
     141    *  
     142    */ 
    118143   function setPublic () { 
    119144      global $mysql; 
    120       if (!is_empty($this->id)) { 
     145      if (!empty($this->id)) { 
    121146         $sql = "UPDATE ".DBL_PREFIX."commentaire SET pub_comment='1' WHERE id_comment=".$this->id; 
    122147         $mysql->DbQuery ($sql); 
     
    126151   } 
    127152    
     153   /** 
     154    *  
     155    */ 
    128156   function setPrivate () { 
    129157      global $mysql; 
    130       if (!is_empty($this->id)) { 
    131           $sql = "UPDATE ".DBL_PREFIX."commentaire SET pub_comment='0' WHERE id_comment=".$this->id; 
    132           $mysql->DbQuery ($sql); 
    133           return true; 
    134       } 
    135       return false; 
    136    } 
    137     
     158      if (!empty($this->id)) { 
     159         $sql = "UPDATE ".DBL_PREFIX."commentaire SET pub_comment='0' WHERE id_comment=".$this->id; 
     160         $mysql->DbQuery ($sql); 
     161         return true; 
     162      } 
     163      return false; 
     164   } 
     165    
     166   /** 
     167    *  
     168    */ 
    138169   function deleteRow () { 
    139170      global $mysql; 
    140171      if (!empty($this->id)) { 
    141           $sql = "DELETE FROM ".DBL_PREFIX."commentaire WHERE id_comment=".$this->id; 
    142           $mysql->DbQuery ($sql); 
    143           return true; 
    144       } 
    145       return false; 
    146    } 
    147     
     172         $sql = "DELETE FROM ".DBL_PREFIX."commentaire WHERE id_comment=".$this->id; 
     173         $mysql->DbQuery ($sql); 
     174         return true; 
     175      } 
     176      return false; 
     177   } 
     178    
     179   /** 
     180    *  
     181    */ 
    148182   function renameGalerie ($old, $new) { 
    149183      global $mysql; 
    150184      if ($mysql->db_link != null) { 
    151          $query = "UPDATE ".DBL_PREFIX."commentaire " . 
    152                "SET galerie_comment='$new' " . 
    153                "WHERE  galerie_comment='$old'"; 
     185         $query = sprintf ("UPDATE ".DBL_PREFIX."commentaire " . 
     186                           "SET galerie_comment=%s " . 
     187                           "WHERE  galerie_comment=%s", 
     188                           $mysql->escapeString($new), 
     189                           $mysql->escapeString($old) 
     190            ); 
    154191         $mysql->DbQuery ($query); 
    155192      } 
    156193   } 
    157194    
     195   /** 
     196    *  
     197    */ 
    158198   function deleteGalerie ($galerie) { 
    159199      global $mysql; 
    160200      if ($mysql->db_link != null) { 
    161          $query = "DELETE FROM ".DBL_PREFIX."commentaire " . 
    162                "WHERE  galerie_comment='$galerie'"; 
     201         $query = sprintf ("DELETE FROM ".DBL_PREFIX."commentaire " . 
     202                           "WHERE  galerie_comment=%s", 
     203                           $mysql->escapeString($galerie)); 
    163204         $mysql->DbQuery ($query); 
    164205      } 
    165206   } 
    166207    
     208   /** 
     209    *  
     210    */ 
    167211   function deletePhoto ($galerie, $photo) { 
    168212      global $mysql; 
    169213      if ($mysql->db_link != null) { 
    170          $query = "DELETE FROM ".DBL_PREFIX."commentaire " . 
    171                "WHERE  galerie_comment='$galerie' AND photo_comment='$photo'"; 
     214         $query = sprintf ("DELETE FROM ".DBL_PREFIX."commentaire " . 
     215                           "WHERE galerie_comment=%s AND photo_comment=%s", 
     216                           $mysql->escapeString($galerie), 
     217                           $mysql->escapeString($photo)); 
    172218         $mysql->DbQuery ($query); 
    173219      } 
     
    175221    
    176222   /*function renamePhoto ($galerie, $old, $new) { 
    177       global $mysql; 
    178       $query = "UPDATE ".DBL_PREFIX."commentaire " . 
    179             "SET photo_comment='$new' " . 
    180             "WHERE  photo_comment='$old' AND galerie_comment='$galerie'"; 
    181       $mysql->DbQuery ($query); 
    182    }*/ 
    183     
     223    global $mysql; 
     224    $query = "UPDATE ".DBL_PREFIX."commentaire " . 
     225    "SET photo_comment='$new' " . 
     226    "WHERE  photo_comment='$old' AND galerie_comment='$galerie'"; 
     227    $mysql->DbQuery ($query); 
     228    }*/ 
     229    
     230   /** 
     231    *  
     232    */ 
    184233   function selectQuery ($galerie, $photo) { 
    185       $query = "SELECT id_comment, date_comment, auteur_comment, email_comment, site_comment, content_comment " 
    186       ."FROM ".DBL_PREFIX."commentaire " 
    187       ."WHERE galerie_comment='$galerie' AND photo_comment='$photo' AND pub_comment='1'"; 
     234      global $mysql; 
     235      $query = sprintf ("SELECT id_comment, date_comment, auteur_comment, email_comment, site_comment, content_comment " 
     236                        ."FROM ".DBL_PREFIX."commentaire " 
     237                        ."WHERE galerie_comment=%s AND photo_comment=%s AND pub_comment='1'", 
     238                        $mysql->escapeString($galerie), 
     239                        $mysql->escapeString($photo)); 
    188240      return $query; 
    189241   } 
    190242    
     243   /** 
     244    *  
     245    */ 
    191246   function tableExists ($prefix) { 
    192247      global $mysqlParam; 
     
    203258   } 
    204259    
     260   /** 
     261    *  
     262    */ 
    205263   function createTable ($prefix) { 
    206264      global $mysqlParam; 
     
    208266      if ($mysqlParam->db_link != null) { 
    209267         $mysqlParam->DbQuery ( 
    210          "CREATE TABLE `$tableName` (" . 
    211          "  `id_comment` int(11) NOT NULL auto_increment," . 
    212          "  `galerie_comment` varchar(240) NOT NULL default ''," . 
    213          "  `photo_comment` varchar(240) NOT NULL default ''," . 
    214          "  `date_comment` datetime NOT NULL default '0000-00-00 00:00:00'," . 
    215          "  `auteur_comment` varchar(255) NOT NULL default ''," . 
    216          "  `email_comment` varchar(255) default NULL," . 
    217          "  `site_comment` varchar(255) default NULL," . 
    218          "  `content_comment` longtext NOT NULL," . 
    219          "  `ip_comment` varchar(15) default NULL," . 
    220          "  `pub_comment` set('0','1') NOT NULL default ''," . 
    221          "  PRIMARY KEY  (`id_comment`)," . 
    222          "  KEY `galerie_comment` (`galerie_comment`,`photo_comment`)" . 
    223          ")"); 
     268            "CREATE TABLE `$tableName` (" . 
     269            "  `id_comment` int(11) NOT NULL auto_increment," . 
     270            "  `galerie_comment` varchar(240) NOT NULL default ''," . 
     271            "  `photo_comment` varchar(240) NOT NULL default ''," . 
     272            "  `date_comment` datetime NOT NULL default '0000-00-00 00:00:00'," . 
     273            "  `auteur_comment` varchar(255) NOT NULL default ''," . 
     274            "  `email_comment` varchar(255) default NULL," . 
     275            "  `site_comment` varchar(255) default NULL," . 
     276            "  `content_comment` longtext NOT NULL," . 
     277            "  `ip_comment` varchar(15) default NULL," . 
     278            "  `pub_comment` set('0','1') NOT NULL default ''," . 
     279            "  PRIMARY KEY  (`id_comment`)," . 
     280            "  KEY `galerie_comment` (`galerie_comment`,`photo_comment`)" . 
     281            ")"); 
    224282         return true; 
    225283      } 
  • trunk/_fonctions/class/files.php

    r59 r68  
    105105   function deleteFile ($file) { 
    106106      if (files::isDeletable ($file)) { 
    107          unlink ($file); 
    108          return true; 
     107         return unlink ($file); 
    109108      } 
    110109      return false; 
     
    121120            $tab = explode ('/', $name); 
    122121            $name = $tab[count($tab) - 1]; 
    123             mkdir ($name, 0777); 
    124             rename ($name, $path); 
     122            $return = @mkdir ($name, 0777) && @rename ($name, $path); 
    125123         }  
    126124         else { 
    127             mkdir ($path, 0777); 
     125            $return = @mkdir ($path, 0777); 
    128126         } 
    129          umask ($old_umask); 
    130          return true
     127         /*$return = $return && */umask ($old_umask); 
     128         return $return
    131129      } 
    132130      return false; 
     
    143141      return true; 
    144142   } 
     143    
     144   /** 
     145    *  
     146    */ 
     147   function isPhotoFile ($dir, $file) { 
     148      return $file[0] != '.'  
     149               && !is_dir (luxbum::getImage ($dir, $file) ) 
     150               && eregi ('^.*(' . ALLOWED_FORMAT . ')$', $file); 
     151   } 
    145152} 
    146153 
  • trunk/_fonctions/class/imagetoolkit.class.php

    r59 r68  
    1414   var $imageHeight; 
    1515   var $imageType; 
     16   var $typeMime = ''; 
    1617 
    1718   var $imagDest; 
     
    2021 
    2122   /** 
    22     * 
     23    * Constructeur par défaut 
     24    * @param String $image Chemin complet vers l'image 
    2325    */ 
    2426   function imagetoolkit ($image) { 
     
    2830 
    2931   /** 
    30     * 
     32    * Retourne la largeur finale de l'image redimensionnée. 
     33    * @return int Largeur finale de l'image redimensionnée. 
    3134    */ 
    3235   function getImageDestWidth () { 
     
    3538 
    3639   /** 
    37     * 
     40    * Retourne la hauteur finale de l'image redimensionnée. 
     41    * @return int Hauteur finale de l'image redimensionnée. 
    3842    */ 
    3943   function getImageDestHeight () { 
    4044      return $this->imageDestHeight; 
    4145   } 
    42  
    43    /** 
    44     * 
     46    
     47   /** 
     48    * Retourne le type Mime de l'image 
     49    * @return String Type mime de l'image 
     50    */ 
     51   function getTypeMime () { 
     52      return $this->typeMime; 
     53   } 
     54 
     55   /** 
     56    * Remplit les champs principaux de la classe. 
     57    * Utile ? 
    4558    * @access private 
    4659    */ 
    4760   function setSrcInfos () { 
    48  
    4961      if ($this->image != "") {          
    5062         // Lit les dimensions de l'image 
     
    5365         $this->imageHeight = $size[1]; 
    5466         $this->imageType = $size[2]; 
    55       } 
    56    } 
    57  
    58    /** 
    59     * 
     67         $this->typeMime = $size['mime']; 
     68      } 
     69   } 
     70 
     71   /** 
     72    * Crée un handler de l'image suivant son type 
    6073    * @access private 
     74    * @return Handler 
    6175    */ 
    6276   function imageCreateFromType () { 
     
    8599 
    86100   /** 
    87     * 
     101    * Ecrit l'image redimensionnée. 
    88102    * @access private 
    89103    */ 
     
    107121 
    108122   /** 
    109     * 
     123    * Fixe une taille finale maximale de redimensionnement. 
     124    * @param Int $dst_w Largeur maximale 
     125    * @param int $dst_h Hauteur maximale 
    110126    */ 
    111127   function setDestSize ($dst_w, $dst_h) { 
     
    143159 
    144160   /** 
    145     * 
     161    * Est ce qu'il faut redimentionner une image ? 
    146162    * @access private 
     163    * @return boolean 
    147164    */ 
    148165   function canResize () { 
     
    153170      // L'original a été modifié ? 
    154171      if ($test) { 
    155          $test = (filemtime ($this->imageDest)>filemtime ($this->image)); 
     172         $test = (filemtime($this->imageDest) > filemtime ($this->image)); 
    156173      } 
    157174       
     
    176193 
    177194   /** 
    178     * 
     195    * Crée l'image redimentionnée. Il faut préalablement avoir apellé la méthode 
     196    * setDestSize(...) 
     197    * @param String $img_dest Chemin où il faut écrire l'image redimensionnée. 
    179198    */ 
    180199   function createThumb ($img_dest) { 
    181200      $this->imageDest = $img_dest; 
    182201 
    183 //       echo $this->imageDestWidth.' => '.$this->imageDestHeight.'<br />'; 
    184202 
    185203      // Créer la vignette ? 
    186204      if (!$this->canResize ()) { 
    187  
    188205 
    189206         // Copie dedans l'image initiale redimensionnée 
     
    244261 
    245262 
     263   /** 
     264    * Retourne la version exacte de GD 
     265    * @return Version exacte de GD 
     266    */ 
    246267   function gdVersionExact ()  { 
    247268      static $gd_version_number = null; 
     
    269290    * Get which version of GD is installed, if any. 
    270291    * Returns the version (1 or 2) of the GD extension. 
     292    * @return 1 ou 2 pour GD1 ou GD2 
    271293    */ 
    272294   function gdVersion ($user_ver = 0) { 
  • trunk/_fonctions/class/luxbumgallery.class.php

    r59 r68  
    1 <?php  
     1<?php 
    22 
    33  //============================================================================== 
     
    1010class luxBumGallery extends luxBum 
    1111{ 
     12   /**-----------------------------------------------------------------------**/ 
     13   /** Champs de la classe */ 
     14   /**-----------------------------------------------------------------------**/ 
    1215   var $name, $dir; 
    1316   var $preview; 
    1417   var $count; 
    1518   var $size; 
    16  
    17    /** 
    18     *  
    19     */ 
    20    function luxBumGallery ($name, $preview = '') { 
    21       $this->name = $this->dir = $name; 
     19   var $sortType; 
     20   var $sortOrder; 
     21   var $list = array (); 
     22   var $sortList = array(); 
     23   var $sortPosition = 0; 
     24 
     25 
     26   /**-----------------------------------------------------------------------**/ 
     27   /** Constructeur de classe */ 
     28   /**-----------------------------------------------------------------------**/ 
     29   /** 
     30    * Constructeur par défaut 
     31    * @param String $dir Dossier de la galerie 
     32    */ 
     33   function luxBumGallery ($dir, $preview = '') { 
     34      $list= split('/', $dir); 
     35      print_r($list); 
     36      $this->name = $this->dir = $list[count($list)-1]; 
     37      $this->setPhotoDir($list[0]);echo "<strong>$this->dir</strong> : <em>$this->photoDir</em>"; 
    2238      $this->preview = $preview; 
    2339      $this->size = 0; 
    2440      $this->count = 0;  
    25       $this->completeInfos (); 
    26       $this->completeDefaultImage (); 
    27    } 
    28  
    29    /** 
    30     *  
     41      $this->_completeInfos (); 
     42      $this->_completeDefaultImage (); 
     43   } 
     44 
     45   /** 
     46    * Remplit les informations suivantes sur la galerie : 
     47    * - nombre d'images 
     48    * - taille des images en octets 
     49    * @access private 
     50    */ 
     51   function _completeInfos () { 
     52      if ($fd = dir ($this->getDirPath($this->dir))) { 
     53         while ($current_file = $fd->read ()) {echo "$current_file<br>"; 
     54            if (files::isPhotoFile($this->dir, $current_file)) { 
     55               $the_file = $this->getImage ($this->dir, $current_file); 
     56               $this->size += filesize ($the_file); 
     57               $this->count++;  
     58            } 
     59         } 
     60         $fd->close(); 
     61      } 
     62   } 
     63 
     64   /**-----------------------------------------------------------------------**/ 
     65   /** Getter et setter */ 
     66   /**-----------------------------------------------------------------------**/ 
     67   /** 
     68    * Affecte le nom de la galerie 
     69    * @param string $name Nom de la galerie 
    3170    */ 
    3271   function setName ($name) { 
     
    3574 
    3675   /** 
    37     *  
     76    * Retourne le nom de la galerie 
     77    * @return String Nom de la galerie 
    3878    */ 
    3979   function getName () { 
    40       return $this->name; 
    41    } 
    42  
    43    /** 
    44     *  
     80      return $this->dir; 
     81   } 
     82 
     83   /** 
     84    * Retourne le "beau" nom de la galerie 
     85    * @return String Beau nom de la galerie 
    4586    */ 
    4687   function getNiceName () { 
    47       return $this->niceName ($this->name); 
    48    } 
    49  
    50    /** 
    51     *  
     88      return $this->niceName ($this->dir); 
     89   } 
     90 
     91   /** 
     92    * Retourne l'image par défaut de la galerie 
     93    * @return String Chemin vers l'image par défaut de la galerie 
    5294    */ 
    5395   function getPreview () { 
     
    5698 
    5799   /** 
    58     *  
     100    * Retourne la taille en octets des photos de la galerie 
     101    * @return int Taille en octets des photos de la galerie 
    59102    */ 
    60103   function getSize () { 
     
    63106 
    64107   /** 
    65     *  
     108    * Retourne la taille affichable des photos de la galerie 
     109    * @return int Taille affichable des photos de la galerie 
    66110    */ 
    67111   function getNiceSize () { 
     
    70114 
    71115   /** 
    72     *  
     116    * Retourne le nombre de photos de la galerie 
     117    * @return int Nombre de photos de la galerie 
    73118    */ 
    74119   function getCount () { 
    75120      return $this->count; 
    76121   } 
    77  
    78    /** 
     122    
     123   /** 
     124    * Affecte le type du tri de la galerie 
     125    * @param String $sortType Type du tri de la galerie 
     126    */ 
     127   function setSortType ($sortType) { 
     128      $this->sortType = $sortType; 
     129   } 
     130    
     131   /** 
     132    * Retourne le type de tri de la galerie 
     133    * @return String Type du tri de la galerie 
     134    */ 
     135   function getSortType () { 
     136      return $this->sortType; 
     137   } 
     138    
     139   /** 
     140    * Affecte le sens du tri (asc / desc) 
     141    * @param String $sortOrder Sens du tri 
     142    */ 
     143   function setSortOrder ($sortOrder) { 
     144      $this->sortOrder = $sortOrder; 
     145   } 
     146    
     147   /** 
     148    * Retourne le sens du tri 
     149    * @return String Sens du tri 
     150    */ 
     151   function getSortOrder () { 
     152      return $this->sortOrder; 
     153   } 
     154    
     155   /** 
     156    * Affecte la position de la galerie dans l'index 
     157    * @param String $sortPosition Position de la galerie dans l'index 
     158    */ 
     159   function setSortPosition ($sortPosition) { 
     160      $this->sortPosition = $sortPosition; 
     161   } 
     162    
     163   /** 
     164    * Retourne la position de la galerie dans l'index 
     165    * @return String Position de la galerie dans l'index 
     166    */ 
     167   function getSortPosition () { 
     168      return $this->sortPosition; 
     169   } 
     170 
     171   /**-----------------------------------------------------------------------**/ 
     172   /** Descriptions / dates */ 
     173   /**-----------------------------------------------------------------------**/ 
     174   /** 
     175    * Lit le fichier des dates/descriptions et retourne un tableau 
     176    * correspondant par rapport au nom de fichier. 
    79177    *  
    80     */ 
    81    function completeInfos () { 
    82       $fd = dir ($this->getDirPath ($this->dir)); 
    83  
    84       while ($current_file = $fd->read ()) { 
    85          $the_file = $this->getImage ($this->dir, $current_file); 
    86  
    87          if ($current_file[0] != '.'  
    88              && !is_dir ($the_file)  
    89              && eregi ('^.*(' . ALLOWED_FORMAT . ')$', $current_file) ) { 
    90             $this->size += filesize ($the_file); 
    91             $this->count++;  
    92          } 
    93       } 
    94       $fd->close(); 
    95    } 
    96  
     178    * @return array clé: nomPhoto / valeur: date|description 
     179    */ 
     180   function getDescriptions () { 
     181      $desc = array (); 
     182 
     183      if (is_file ($this->getDirPath ($this->dir).DESCRIPTION_FILE)) { 
     184         $fd = fopen ($this->getDirPath ($this->dir).DESCRIPTION_FILE, 'r+'); 
     185         while ($line = trim(fgets($fd)))  { 
     186            if ( ereg ('^.*\|.*\|.*$', $line)) { 
     187               list ($imgName, $imgDescription) = explode ('|', $line, 2); 
     188               $desc [$imgName] = $imgDescription; 
     189            } 
     190         } 
     191         fclose ($fd); 
     192      } 
     193      return $desc; 
     194   } 
     195    
     196   /** 
     197    * Crée ou met à jour le fichier des descriptions des photos 
     198    *  
     199    */ 
     200   function createOrMajDescriptionFile () { 
     201      $desc = array (); 
     202 
     203      // Recherche des images présentes dans le fichier de description 
     204      if (is_file ($this->getDirPath ($this->dir) . DESCRIPTION_FILE)) { 
     205         if ($fd = fopen ($this->getDirPath ($this->dir) . DESCRIPTION_FILE, 'r')) { 
     206            while ($line = fgets ($fd)) { 
     207               if (ereg ('^.*\|.*\|.*$', $line)) { 
     208                  list($desc[]) = explode ('|', $line, 2); 
     209               } 
     210            } 
     211            fclose($fd); 
     212         } 
     213      } 
     214 
     215      // On ajoute les images non présentes dans le fichier de description 
     216      if ($fd = fopen ($this->getDirPath ($this->dir) . DESCRIPTION_FILE, 'a')) { 
     217         reset ($this->list); 
     218         while (list (,$img) = each ($this->list)) { 
     219            $name = $img->getImageName (); 
     220            if (!in_array ($name, $desc)) { 
     221               fputs ($fd, "$name||\n"); 
     222            } 
     223         } 
     224         fclose ($fd); 
     225      } 
     226   } 
     227 
     228   /** 
     229    * Écrit les nouvelles descriptions/dates dans le fichier de description 
     230    */ 
     231   function updateDescriptionFile () { 
     232      files::deleteFile ($this->getDirPath ($this->dir) . DESCRIPTION_FILE, 'a'); 
     233       
     234      if ($fd = fopen ($this->getDirPath ($this->dir) . DESCRIPTION_FILE, 'a')) { 
     235         for ($i = 0 ; $i < $this->getCount () ; $i++) { 
     236            $img = $this->list[$i]; 
     237            $name = $img->getImageName (); 
     238            $description = $img->getDescription (); 
     239            $date = $img->getDate (); 
     240            fputs ($fd, "$name|$date|$description\n"); 
     241         } 
     242         fclose ($fd); 
     243      } 
     244   } 
     245    
     246   /**-----------------------------------------------------------------------**/ 
     247   /** Fonctions des sous galeries */ 
     248   /**-----------------------------------------------------------------------**/ 
     249 
     250   var $listSubGallery = array(); 
     251 
     252   function isSubGallery ($current_file) { 
     253      if (!is_dir ($this->getDirPath($this->dir).$current_file)) { 
     254         return false; 
     255      } 
     256      if ($current_file[0] == '.') { 
     257         return false; 
     258      }