Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2011, 04:55
AlbertoGarcia
 
Fecha de Ingreso: mayo-2009
Ubicación: Fuerteventura
Mensajes: 324
Antigüedad: 14 años, 11 meses
Puntos: 19
Pregunta Forzar ruta absoluta en EasyGallery

Hola a todos!

Estoy tratando de implementar EasyGallery (http://www.freitagmorgen.de/) en un sitio que tengo en varios idiomas pero no consigo que me funcione sin tener que copiar la carpeta de imágenes en cada directorio de idioma. Me explico: hay tres sitios en tres idiomas, el español en la carpeta raiz y el italiano y el inglés en sendas carpetas dentro del raíz. Desde el archivo fotos.php de cada idioma llamo con un include al archivo galeria.php que está en el directorio raíz y desde este se buscan las imágenes en la carpeta picts que también está en el directorio raíz.

En el directorio raíz funciona sin problema pero desde las subcarpetas de los idiomas no encuentra la carpeta de imágenes porque supongo no la está llamando desde la raiz. He intentado hacer que la ruta sea absoluta pero mi pobre nivel de php no me da para entender correctamente este código. He intentado cambiar el PHP_SELF por PHP_HOST y darle la ruta absoluta a $root pero nada, siempre meda el mismo error de que no encuentra el directorio.

Gracias a todos de antemano y que tengan un buen año.

Salud!

Código PHP:
Ver original
  1. <?php
  2. // --begin editable region
  3. // Root directory
  4. $root_dir = "picts";
  5. // Thumbnail Columns
  6. $columns = 6;
  7. // Size of thumbnails in pixel
  8. $thumbwidth = 100;
  9. // Slideshow 0=no 1=yes
  10. $slideshow = 0;
  11. // --end editable region
  12. //##################################################################//
  13. // Do not change anything by now unless you know what you are doing!
  14. ?>
  15. <?php
  16. // --begin preprocessing
  17. $phpself = $_SERVER['PHP_SELF'];
  18. extract($_POST);
  19. // filetypes
  20. $filetypes = array("jpg", "jpeg");
  21. $k = sizeof($filetypes);
  22. for ($i=0; $i<$k; $i++) {
  23.   $filetypes[] = strtoupper($filetypes[$i]);
  24. }
  25. // extract local image folders
  26. if (strpos($root_dir,'www')===0)
  27. {
  28.   $root_dir = 'http://'.$root_dir;
  29. }
  30. $local = parse_url($root_dir);
  31. if (strpos($root_dir,'http://')===0)
  32. {
  33.   foreach (count_chars($phpself,1) as $i=>$val)
  34.   {
  35.     if (chr($i)=='/')
  36.     {
  37.       $root_dir = substr($local['path'],1);
  38.       for ($j=1;$j<$val;$j++)
  39.         $root_dir='../'.$root_dir;
  40.     }
  41.   }
  42.   if (strpos($root_dir,$local['path'])===0)
  43.   {
  44.     $root_dir = ".";
  45.   }
  46. }
  47. // scanning directory for folders and check if they contain image files
  48. if (!is_dir($root_dir))
  49. {
  50.   printError("Couldn't find a root directory.");
  51. }
  52. $root_handle = opendir($root_dir);
  53. while ($dirname = readdir($root_handle))
  54. {
  55.   $var1 = strcmp($dirname,'.');
  56.   $var2 = strcmp($dirname,'..');
  57.   $var3 = is_dir($root_dir.'/'.$dirname);
  58.   if (($var1!=0) && ($var2!=0) && ($var3==1))
  59.   {
  60.     $dir_handle = opendir($root_dir.'/'.$dirname);
  61.     $postmp = 0;
  62.     while ($filename = readdir($dir_handle))
  63.     {
  64.       for ($i=0;$i<sizeof($filetypes);$i++)
  65.       {
  66.         $postmp = strpos($filename, $filetypes[$i]);
  67.         if ($postmp>0)
  68.         {
  69.           $folders[] = $root_dir.'/'.$dirname;
  70.           break 2;
  71.         }
  72.       }
  73.     }
  74.     closedir($dir_handle);
  75.   }
  76. }
  77. if (!$folders)
  78. {
  79.   printError("Searched folders don't contain any image! Please change the \$root_dir.");
  80. }
  81. // !!! if you don't want your folders in reverse order change rsort() to sort()
  82. rsort($folders);
  83. // set initial variable $ordner
  84. if (!isset($ordner))
  85.   $ordner = $folders[0];
  86. // scanning directories for image files
  87. if (is_dir($ordner)){
  88.   $dir_handle = opendir($ordner);
  89.   while ($filename = readdir($dir_handle))
  90.   {
  91.     for ($i=0; $i<sizeof($filetypes); $i++)
  92.     {
  93.       $pos = strpos($filename, $filetypes[$i]);
  94.       $var1 = strcmp($filename,'.');
  95.       $var2 = strcmp($filename,'..');
  96.       $var3 = is_file($ordner.'/'.$filename);
  97.       if (($var1 != 0) && ($var2 != 0) && ($var3 == 1) && ($pos > 0))
  98.       {
  99.         $files[] = $filename;
  100.       }
  101.       if ($filename=="thumbnails")
  102.       {
  103.         $thumbs = 1;
  104.       }
  105.     }
  106.   }
  107.   sort($files);
  108.   $size = sizeof($files);
  109.   closedir($dir_handle);
  110.   closedir($root_handle);
  111. }
  112. else
  113. {
  114.   printError("No Folders found. Please copy your image folders to the location specified in the \$root_dir.");
  115. }
  116. // --end preprocessing
  117. ?>