Sujet : Petit Hack pour ne gerer que les images sans erreurs ;)
J'ai mis le script sur mon mac et là boum ! cassé .. :'(
C'est dû à ce pu@&$*% de fichier .DS_store dans tout les répertoires.
Pour tout les fichiers qui ne sont pas gérés (c'est à dire tout sauf gif, jpg, et png) il faut remplacer
Fichier classes/util.class.php (ligne 211) :
function advScanDir( $sDir, $sMode, $aFiltres = array() )
{
// creation du tableau qui va contenir les elements du dossier
$aItemsDir = $aItemsFile = array();
// ajout du slash a la fin du chemin s'il n'y est pas
if( !preg_match( "/^.*\/$/", $sDir ) ) $sDir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $sDir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $sItem = readdir($handle) )
{
if($sItem != '.' && $sItem != '..' && !in_array( $sItem, $aFiltres ) )
{
if( is_dir( $sDir.$sItem ) )
$aItemsDir[] = $sItem;
else
$aItemsFile[] = $sItem;
}
}
...
...
par :
function advScanDir( $sDir, $sMode, $aFiltres = array(), $aFiltreExt = array() )
{
// creation du tableau qui va contenir les elements du dossier
$aItemsDir = $aItemsFile = array();
// ajout du slash a la fin du chemin s'il n'y est pas
if( !preg_match( "/^.*\/$/", $sDir ) ) $sDir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $sDir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $sItem = readdir($handle) )
{
$aExplode = explode( '.', $sItem );
$sExt = strtolower( $aExplode[sizeof( $aExplode ) - 1] );
if($sItem != '.' && $sItem != '..' && !in_array( $sItem, $aFiltres ) )
{
if( is_dir( $sDir.$sItem ) )
$aItemsDir[] = $sItem;
elseif (empty($aFiltreExt) || in_array($sExt, $aFiltreExt))
$aItemsFile[] = $sItem;
}
}
Ensuite, dans le fichier explore.php (ligne 230)
$mResultat = $oOutils->advScanDir( $sDossierLecture.'/'.$aListeRepPhotos['dir'][$i], 'TOUT', array( $sNomDossierMiniatures ) );
Par :
$mResultat = $oOutils->advScanDir( $sDossierLecture.'/'.$aListeRepPhotos['dir'][$i], 'TOUT', array( $sNomDossierMiniatures ) , array('jpg', 'jpeg', 'jpe', 'gif', 'png') );
Et voila !
On peut être intelligent toute sa vie et stupide un instant.