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. Autor : david           4 Comentarios

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


Firebug: la navaja suiza para desarrolladores web

General, Javascript

24 de Abril del 2008

Firebug es una de las extensiones que hacen de firefox el mejor navegador web para mi gusto.
Con firebug podremos inspeccionar todo el código de una página web, incluso si modificamos el DOM dinámicamente, Firebug lo mostrará.

Permite ir modificando el código CSS de la web e ir viendo los cambios en tiempo real sin necesidad de refrescar la página.

También permite modificar el código javascript e incluye un debuger de javascript.

Lleva un control de todas las peticiones http que se producen y muestra absolutamente todos los detalles y contenido de la petición, muy útil para ver que esta devolviendo una petición AJAX.

Lo uso desde aproximadamente 8 meses y ya no puedo desarrollar sin él.

Recientemente Microsoft a copiado la idea para su nuevo navegador , el Internet Explorer 8, y aunque de rabia que copien un software no comercial y libre, la verdad es que se agradece tener esta utilidad en Internet Explorer, ya que se me hacía un mundo depurar mis proyectos en este navegador.

En Css-Tricks han puesto la primera parte de un screencast sobre esta extensión, aunque esta en ingles se ve muy bien las posibilidades de Firebug.

Solo he hablado de unas pocas de todas las funcionalidades que tiene Firebug, lo mejor es instalarlo y probarlo.


JoomlaDay Madrid 2008, impresiones…

Joomla, Opinión

21 de Abril del 2008

Bueno, después de venir del JoomlaDay 2008 y de llevar a cabo 3 horas de charla hablando sobre desarrollo de extensiones en joomla, voy a escribir algo al respecto.

Llegue a Madrid a las 3 de la tarde, entré y estaba acabando la ponencia en el auditorio sobre migración de Joomla rama 1.0 a Joomla 1.5, después de verla todo el mundo se fue a comer y enseguida me tocaba exponer a mí. Antes de exponer estuve hablando con Javier Casares, de Ojo Buscador, y me comentó que iba a criticar un poco Joomla en su ponencia, y efectivamente lo hizó. Un saludo a Javier desde aquí.

Por cierto, a mí no me parece que Joomla sea tan malo en SEO, lo único que creo que necesita es devolver código más limpio en el componente com_content, olvidarse de las tablas, no son para eso y además generan demasiado código. Pero la solución pasa por usar los overwrites en los templates de Joomla! 1.5 y hacer que com_content devuelva divs, escoger un template con código apropiado, activar las URL amigables, que si los son para mi gusto y usar las meta-etiquetas adecuadas en cada artículo. Con esto deberíamos conseguir un resultado bastante bueno en cuanto a SEO.

Aún así wordpress creo que es el numero 1 en este aspecto, teniendo una funcionalidad muy limitada en cuanto a su uso, lo que nos permite hacer joomla con los componentes, plugins y módulos en wordpress sería muy dificil.

Eran 3 ponencias de 1 hora cada en las que íbamos a ver como hacer un modulo, un componente y un plugin.

En la primera los nervios me traicionaron provocando que me quedara en blanco en algún instante.

En la segunda y la tercera ya le cogí la dinámica y no tuve mayores problemas.

Creo que fué un error intentar ver todo, ya que no hubo tiempo para profundizar en nada y me quedé con la sensación de que hubo gente que tenia ganas de más y otra que por el contrario no se acabó de enterar, quizás debí plantear la ponencia apostando por un perfil de oyente principiante o avanzado, pero no intermedio como intenté.

Las extensiones las iba haciendo en el momento con el proyector y mi portátil, y no tuve grandes problemas para hacerlas funcionar.

Al acabar las 3 horas me fui directo a fuera ya que necesitaba respirar después de la maratón y pude conversar un poco con gente de la organización, todos muy majos. Poco después me fui a casa, ya que aun me quedaba un largo camino hasta llegar a Valencia.

PD: A la gente que vino a preguntarme cosas al finalizar cada taller, lo siento si no os pude prestar la atención debida, pero en ese momento iba un poco loco, no tube ni un minuto de descanso entre taller y taller!!!


blank
[x] Cerrar
E-mail