Archivo para Mayo

Pack libre de iconos de 24×24 para desarrolladores web

Anotaciones, Recursos

12 de Mayo del 2008

Leyendo cosas sencillas me encuentro con este pack de iconos que han colgado en ICOJOY. Puedes descargarlo aquí. Son un total de 60 iconos realizados por realizada por Zhebrakov Andrew.

Presentación del JoomlaDay 2008 Madrid

Joomla, Recursos

11 de Mayo del 2008

Hoy he subido a Google Docs la presentación de Power Point que usé en la ponencia del JoomlaDay, ya que son ya varios los que me la han pedido y en la página del evento hay colgada una versión beta, jejeje. Le pasé a Franck Scipion la definitiva al acabar el evento, pero supongo que con lo liado que estaba se le olvidó.

La dejo aquí compartida, si alguien ve algún fallo que no dude en avisarme.

Cómo listar los directorios de un directorio con el framework de Joomla

Frameworks, Joomla, Programación

7 de Mayo del 2008

Esta vez voy a anotar un pequeño trozo de código que me ha servido de mucho en mi último trabajo.

No es ningún secreto saber cómo se listan los directorios, pero gracias al API de de Joomla! es mucho más sencillo, además se integra con la capa FTP para solucionar problemas cuando no tengamos permisos de escritura en nuestro script.

Para listar los directorios simplemente puse en siguiente código en el fichero view.html.php de mi componente:

  1. jimport( ‘joomla.filesystem.folder’ );
  2. //Importamos los ficheros necesarios
  3.  
  4. $carpetas = JFolder::folders(JPATH_COMPONENT.DS.‘miDirectorio’);
  5.  
  6. //Obtenemos los directorios, el metodo folders devuelve un array con el nombre de los //directorios
  7.  
  8. if(count($carpetas > 0))
  9. {
  10.     foreach ($carpetas as $carpeta)
  11.     {
  12.             echo "Nombre del directorio: " . $carpeta ;
  13.     }
  14. }else{
  15.     echo “No hay directorios en ” .  JPATH_COMPONENT.DS.‘miDirectorio’;
  16. }
  17.  

Ahora veamos como hacer lo mismo con php sin usar el framework:

(código sacado de la web www.desarrolloweb.com )

  1. $ruta = /path/a/tu/directorio
  2.    // abrir un directorio y listarlo recursivo
  3.    if (is_dir($ruta)) {
  4.       if ($dh = opendir($ruta)) {
  5.          while (($file = readdir($dh)) !== false) {
  6.             //esta línea la utilizaríamos si queremos listar todo lo que hay en el directorio
  7.             //mostraría tanto archivos como directorios
  8.             //echo "Nombre de archivo: $file : Es un: " . filetype($ruta . $file);
  9.             if (is_dir($ruta . $file) && $file!="." && $file!=".."){
  10.                //solo si el archivo es un directorio, distinto que "." y ".."
  11.                echo "Directorio: $ruta$file";
  12.                listar_directorios_ruta($ruta . $file . "/");
  13.             }
  14.          }
  15.       closedir($dh);
  16.       }
  17.    }else
  18.       echo "No es ruta valida";
  19. }
  20.  

Como puedes ver, se comprueba manualmente si el directorio existe con la función is_dir(), esto ya lo lleva implementado el API de Joomla y no hace falta que lo volvamos a hacer si usamos el método folders.

Este es el código del método folders:

  1. function folders($path, $filter = ‘.’, $recurse = false, $fullpath = false, $exclude = array(‘.svn’, ‘CVS’))
  2.     {
  3.         // Initialize variables
  4.         $arr = array ();
  5.  
  6.         // Check to make sure the path valid and clean
  7.         $path = JPath::clean($path);
  8.  
  9.         // Is the path a folder?
  10.         if (!is_dir($path)) {
  11.             JError::raiseWarning(21, ‘JFolder::folder: ‘.JText::_(‘Path is not a folder’).‘ ‘.$path);
  12.             return false;
  13.         }
  14.  
  15.         // read the source directory
  16.         $handle = opendir($path);
  17.         while (($file = readdir($handle)) !== false)
  18.         {
  19.             $dir = $path.DS.$file;
  20.             $isDir = is_dir($dir);
  21.             if (($file != ‘.’) && ($file != ‘..’) && (!in_array($file, $exclude)) && $isDir) {
  22.                 // removes SVN directores from list
  23.                 if (preg_match("/$filter/", $file)) {
  24.                     if ($fullpath) {
  25.                         $arr[] = $dir;
  26.                     } else {
  27.                         $arr[] = $file;
  28.                     }
  29.                 }
  30.                 if ($recurse) {
  31.                     if (is_integer($recurse)) {
  32.                         $recurse–;
  33.                     }
  34.                     $arr2 = JFolder::folders($dir, $filter, $recurse, $fullpath);
  35.                     $arr = array_merge($arr, $arr2);
  36.                 }
  37.             }
  38.         }
  39.         closedir($handle);
  40.  
  41.         asort($arr);
  42.         return $arr;
  43.     }
  44.  

Como puedes comprobar se hacen todo tipo de comprobaciones y nos libra de realizarlas a mano.

Puedes ver más métodos interesantes en la documentación oficial del API de Joomla

blank
[x] Cerrar
E-mail