Bonjour à toutes et à tous.
Je me permet de venir poster sur le forum car j'ai un problème concernant le fonctionnement d'une galerie de photos en flash, que j'ai achetée sur le net il y à peu.
Ce système de galerie est composé de plusieurs fichiers :
- flashgallery.php > Je pense que le problème vient de lui.
- default.xml > Contient les paramétrages de couleur en héxa, et fonctionne bien.
- flashgallery.swf > Galerie, dont je n'ai pas la source.
Voilà, maintenant je vais rentrer dans le vif du sujet. J'utilise sur mon site un système d'includes dont le code est le suivant :
<?php if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; switch($page) { case 'accueil': include ('inc/accueil.php');break; case 'page1': include ('inc/page1.php');break; case 'page2': include ('inc/page2.php');break; case 'galerie': include ('inc/gal.php');break; } ?>
Ce qui veut donc dire que l'appel de mes pages se font sous la forme :
<a href="index.php?page=galerie"...
Bien sur, jusque là tout fonctionne bien.
Ensuite, concernant la hiérarchie de mes fichiers/dossiers, elle est la suivante :
index.php
/gal/ ( dans lequel nous trouvons : flashgallery.php, flashgallery.swf et default.xml )
/gal/img/ ( dans lequel nous trouvons les images chargées par flashgallery.php )
/inc/ ( dans lequel nous trouvons mes includes, notamment la page qui contient la galerie, nous l'appellerons "gal.php". )
Voilà pour la structure. Passons maintenant aux sources.
flashgallerie.php :
<?php $allowed_formats = array("jpg", "jpeg", "JPG", "JPEG", "png", "PNG"); $exclude_files = array( "_derived", "_private", "_vti_cnf", "_vti_pvt", "vti_script", "_vti_txt" ); // add any other folders or files you wish to exclude from the gallery. $listDir = array(); function detectUTF8($string) { return preg_match('%(?: [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte |\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )+%xs', $string); } function cp1251_utf8( $sInput ) { $sOutput = ""; for ( $i = 0; $i < strlen( $sInput ); $i++ ) { $iAscii = ord( $sInput[$i] ); if ( $iAscii >= 192 && $iAscii <= 255 ) $sOutput .= "".( 1040 + ( $iAscii - 192 ) ).";"; else if ( $iAscii == 168 ) $sOutput .= "".( 1025 ).";"; else if ( $iAscii == 184 ) $sOutput .= "".( 1105 ).";"; else $sOutput .= $sInput[$i]; } return $sOutput; } function encoding($string){ if (function_exists('iconv')) { if (@!iconv('utf-8', 'cp1251', $string)) { $string = iconv('cp1251', 'utf-8', $string); } return $string; } else { if (detectUTF8($string)) { return $string; } else { return cp1251_utf8($string); } } } function ReadFolderDirectory($dir) { global $listDir,$exclude_files,$allowed_formats; if($handler = opendir($dir)) { { while (($sub = readdir($handler)) !== FALSE) { if ($sub != "." && $sub != ".." && $sub != "Thumb.db" && array_search($sub, $exclude_files)===false) { $ext = substr($sub, strrpos($sub, ".")+1); if(is_file($dir."/".$sub) && array_search($ext, $allowed_formats)!==false ) $listDir[] = $dir."/".$sub; elseif(is_dir($dir."/".$sub)) ReadFolderDirectory($dir."/".$sub); } } } closedir($handler); } } if(isset($_GET['file_dir'])) ReadFolderDirectory($_GET['file_dir']); natcasesort($listDir); print '<?xml version="1.0" encoding="utf-8"?>'; print ' <pics>'; $directory= $_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF']; $directory=dirname($directory); foreach ($listDir as $val) { $title = substr(strrchr($val, '/'), 1); $title=encoding($title); $val=encoding($val); print ' <pic src="'.'http://'.$directory.'/'.$val.'" title="'.$title.'" />'; } print ' </pics>'; ?>
Code inclut dans mon fichier "gal.php" :
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600"> <param name="movie" value="gal/flashgallery.swf" /> <param name="quality" value="high" /> <param name="wmode" value="transparent" /> <param name="allowFullScreen" value="true" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="gal/flashgallery.swf" width="800" height="600"> <!--<![endif]--> <param name="quality" value="high" /> <param name="wmode" value="transparent" /> <PARAM NAME=FlashVars VALUE="content_path=gal/img&color_path=gal/default.xml&script_path=gal/flashgallery.php"> <!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. --> <div> <h4>Le contenu de cette page nécessite une version plus récente d’Adobe Flash Player.</h4> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtenir le lecteur Adobe Flash" width="112" height="33" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object>
Voilà pour les informations ! J'espère que tout le monde s'y retrouve. Bien sur dans un souci de confidentialité, je ne peux malheureusement pas vous donner l'adresse du site en construction !
De mon coté je pense que le problème vient du script flashgallery.php qui ne serait pas adapté à mon système d'includes, seulement je suis débutant en php, vos conseils sont donc bien entendu la bienvenue...
Je précise pour finir que la galerie fonctionne très bien dans le cadre d'un fonctionnement dans système d'include.
Un grand merci par avance !
Cordialement.
Hop hop hop...et voilà je m'y perd ! Désolé j'en oublie le principal. Le problème est donc : L'animation flash se charge, mais les images non