sábado, 3 de marzo de 2007

Joomla! Developer Blog: Joomla! 1.5 Accessibility - Look Ma no Itemid’s

Joomla! has always been rightfully criticized for the fact that it’s not capable of generating humanly readable and search engine optimized URL’s out of the box. Alot of the problems with the implementation of humanly readable URL’s is related to what we call the itemid. For those who don’t know what an Itemid is :

An itemid is a unique identifier for a menu item in Joomla!. Technically an itemid is nothing more then the value of the ‘id’ field in the menu database table.

Itemid’s are one of those things in Joomla! that reached almost a mythical status over time. Dozen of posts can be found on the forums discussing the problems they cause and how they effect SEO (search engine optimisation) or SEF (search engine friendly URL’s). We even have a FAQ on the forum that outlines problems related to Itemid’s and a discussion that outlines possible solutions can also be found.

We always said that we would only tackle the Itemid issues in a future version of Joomla! as they require architectural changes that would compromise backwards compatibility beyond the scope of 1.5. Well we lied !

In the last 6 weeks I have been working hard on refactoring the whole Itemid and URL creating mechanism in Joomla! 1.5. This has resulted in a system that is capable of generating URL’s that are :

  • permanent
  • readable
  • hierarchical
  • brief and clean

The new API is fully backwards compatible and can be easily implemented by component developers that are updating their components for 1.5. That’s right, even your existing components can make use of this ! It can also easily be decorated/extended through a system plugin. No more hacking of the core, solutions like OpenSEF can now truly focus on becoming true URL management extensions. Which is what they are in the first place.

So how do these new URL’s look like ? Well here are some example :

  1. http://localhost/joomla15/index.php/web-links/2_joomla-specific-links/1_joomla
  2. http://localhost/joomla15/index.php/the-news/joomla-overview/faq
  3. ttp://localhost/joomla15/index.php/faq/31_general/33_what-is-uncategorised-content
  4. http://localhost/joomla15/index.php/news-feeds/4_joomla/1_joomla-official-news

Aren’t they beautifull ?

Wanna test this yourself ? Simply download a nightly build and don’t forget to turn ’search engine friendly URL’s on’ in the configuration. You can find this in the site tab.

For the coders among you who want to read up about the magic behind this new system and the way it can be used or extended, please head down to the 1.5 development forums and look for the Itemid refactoring in 1.5 thread. More documentation about the news ways of handling URL’s in 1.5 is forthcoming. As always the truth is out there (read in the SVN).

Finally I would like to thank all of you we have provided constructive feedback in the last 6 weeks to help make this happen. We have seen a lot of people criticize our URL handling mechanism in the past, only a handful of you have put their money where their mouth is and helped create a solution. Even if you didn’t understood all of it, at least you have tried, in true hacker spirit !

Extensión del día: Simpletags

Free tagging component for your site. Just use in your content {tag [sometag]:[sometext]} or {tag [sometag]} and your new tag ([sometag]) will appear immediately in "tag cloud" module. Before installation unpack archive. Some bugs in module and component were fixed after user`s reports.

Glosario Joomla! A - B

Administrador (Administrator): El “Administrador” es un nivel de usuario en Joomla!, que tiene acceso a ciertas funciones del Administrador (Back-end o trastienda) y a todas las funciones del Sitio (Front-end o portada). Ver también Mánager y Súper-Administrador.

Administrador Joomla! (Back-end): El “Administrador Joomla!” (Back-end o trastienda) es el panel de control de administración desde donde el Mánager, Administrador o Súper-Administrador administra el sitio y su contenido. Otros términos utilizados para referirse a esta aplicación son: Administrador, Back-end, Sección Admin, Sección de Administración, o Panel de Control. Ver también Sitio (Front-end).

Archivo (Archive): Los artículos de contenido pueden ser archivados y administrados a través del "Administrador del Archivo" (Back-end). El Módulo “Archivo” proporciona una manera de mostrar los artículos archivados en su sitio.

Archivo de Configuración (Configuration File): El “Archivo de Configuración” (configuration.php) que puede encontrar en el directorio raíz de su instalación de Joomla! contiene información de variables globales específicas para su instalación de Joomla!. Por ejemplo, el nombre de usuario de la base de datos, la contraseña del administrador, etc.

Archivos de Imagen (Media Files): Los “Archivos de Imagen” como .gif, .jpg, .png o .bmp pueden usarse en los artículos de contenido y se organizan a través del Administrador de Imágenes (Media Manager). Los archivos de imagen pueden incluirse en los artículos de contenido mediante la Etiqueta Imagen durante la Edición de Artículos de Contenido. Los editores WYSIWYG a veces incluyen sistemas de administración multimedia, componentes de terceros, etc.

Artículo (Item): Un “Artículo” es pieza discreta de contenido dentro de la jerarquía Joomla!. Un artículo puede ser un artículo de contenido, una categoría de contenido, una sección de contenido, un artículo de menú o un enlace.

Artículo de Contenido (Content Item): Un “Artículo de Contenido” es una pieza discreta de contenido dentro de la jerarquía Joomla!. Un artículo de contenido puede estar asociado a una combinación Sección/Categoría en particular o a un Artículo de Contenido Estático (Static Content Item). Habitualmente los artículos de contenido se muestran en el cuerpo principal (main body) de su página. El artículo de contenido es el último de los artículos en la jerarquía Sección/Categoría/Contenido o puede ser un Artículo de Contenido Estático diferenciado.

Artículo de Contenido Estático (Static Content Item): Un “Artículo de Contenido Estático” es un artículo de contenido que no pertenece a la jerarquía Sección/Categoría/Contenido. Ver también Artículo de Contenido.

Atributo Alt (Alt attribute): El “Atributo Alt” se usa para definir un texto alternativo para una imagen. El valor del Atributo Alt lo define el autor. El Atributo Alt le indica al lector qué es lo que se está perdiendo en la página si su navegador (browser) no puede cargar las imágenes. El navegador muestra el texto alternativo en lugar de la imagen. Es una buena costumbre incluir el Atributo Alt para cada imagen en una página. Esto mejora la visualización y la utilidad del documento para los usuarios que tienen navegadores solo de texto (text-only browsers). Ver también Etiqueta Imagen.

Autor (Author): El “Autor” es un nivel de usuario en Joomla!, que tiene acceso únicamente a las funciones del Sitio (Front-end o portada). Ver también Editor, Supervisor y Usuario Registrado.

Back-end Público (Public Back-end): Ver Administrador (Back-end).

Banners: Es un componente del núcleo de Joomla! que permite mostrar “Banners” (anuncios) publicitarios en su sitio. Los banners se muestran usando el módulo banners . El componente permite la administración de clientes y sus respectivos anuncios. Las impresiones de los anuncios pueden limitarse a un cierto número o ser ilimitadas. El número de impresiones (veces que el anuncio es cargado en su sitio) y el número de clics quedan almacenados y pueden ser vistos en el Administrador (Back-end), en: Componentes->Banners->Administrar Banners.

Base de Datos (Database): Una base de datos es una colección organizada de información. Ésta contiene una colección de registros que puede buscar, ordenar y analizar rápidamente. Joomla! es un software que funciona con una base de datos. Usted puede agregar, editar o borrar contenido que está almacenado en la base de datos de Joomla!. Ver también Registro.

Blog: Un estilo “Blog” en Joomla! es una lista de uno o mas artículos de contenido para una sección o categoría específica. En este estilo, el título del artículo y el texto de introducción se presentan como enlaces “Leer Más” a una página con el artículo de contenido completo. Habitualmente la página de Noticias se escribe en estilo Blog.

Joomla! para Desarrolladores

Muchas compañías u organizaciones tienen necesidades que van más allá de lo disponible en el paquete básico de Joomla! o en las extensiones de distribución libre.

Afortunadamente, Joomla! ofrece una arquitectura de aplicación potente que permite a los desarrolladores crear sofisticadas extensiones que amplían la capacidad de Joomla! en múltiples e ilimitadas direcciones.

Usando la estructura del núcleo de Joomla!, los desarrolladores puede construir fácilmente:

  • Sistemas de Comercio Electrónico Integrados
  • Sistemas de Control del Inventario
  • Herramientas de Registro de Datos
  • Sistemas de Reserva Online
  • Herramientas de Comunicación
  • Puentes de Aplicaciones
  • ...o cualquier tipo de aplicación para una necesidad

Si su compañía u organización contrata un desarrollador de terceras partes de Joomla! o construye software propio usando la estructura de soporte de Joomla!, creará una plataforma abierta, que no le ata a una aplicación cerrada de un desarrollador o propietario.

Puede aprender más sobre el desarrollo de la arquitectura de Joomla! en el Sitio del Desarrollador. Lo interesante de Joomla! es que puede utilizar la estructura e interfaz de usuario para suministrar aplicaciones a sus usuarios finales en un entorno potente y familiar.

Joomla! Developer Blog: Beta-2 status

In the last blog about beta-2 status I explained our current status, in this blog I will in short share our latest progress and try to explain the goals we have with the second beta. I have planned this being my last beta-2 status blog untill we release beta-2, I also have some work to do on the Summer Of Code project :-D

Past week a lot of tracker issues have been solved, we are getting close to the situation we want to be at…fix as much as possible bugs we can. Things we have done past week beside hunting down those bugs are:

  • Last pieces of page caching, itemid and ftp layer coding has been done, results are now internally tested.
  • Included the BEEZ template to show the power of the template engine and the MVC implementation creating an accessible and W3C compatible template.

We try to “meet” with the development working group members every week in IRC to talk about current status and progression. In the last meeting we were pretty sure we can release the beta-2 soon. We have decided to code freeze on March 10, after that only minor code changes (bug fixes) will be done. From that point on the other development working groups will be working on work that needs to be done to create a beta-2 package:

  • Documentation will at least update the api-documentation and also will try to work on additional documentation.
  • Marketing and media will work on new sample content.
  • Quality and testing will perform some final tests.

We expect the working groups to finish up their work in around a week after the code freeze, and after that we can wrap up a beta-2 package.

What do we want to achieve with this second beta? The purpose of a beta is to collect as much as possible feedback on your code. This is exactly what we want everyone to do with this release, test it for us. The Quality and Testing work-group will do security, performance and functional test on the second beta. Because we have not done major security testing of the framework, we advise everyone not to use the second beta on production sites. The next stage in the development cycle will be a release candidate. This if there are indeed no major flaws in the framework.

BEEZ: Joomla! accessible Template Beta 1

7-Feb-2007 Johan Janssens
+ Added new Beeze accessible template, contributed by the design and accessibility working group



1.5 beta-2 overview

What have we done so far?

In the “A short overview on the goodies in the 1.5-beta” article I have descibed all the new features the 1.5 framework brings. I will describe the changes that have been put into place between beta-1 and beta-2. Keep in mind that I describe the features added/removed, but beside that we have fixed numerous reported bugs and of course I am not 100% complete here…


1. User features

  • Implemented caching
    1. - Implement frontend and backend (apc, eaccelerator, db, …)
      - Implement page and extensions caching
      - Improve metadata and caching header handling
  • Refactored session management
    1. - Added SessionHandler support to JSession
      - Added database session handler
      - Added file session handler
      - Added APC session handler
      - Added eAccelerator session handler
      - The database is now used as default session store instead of the file system
  • Complete refactoring of the installer
  • Added new archive libraries to better support zip|gzip|tar file extraction
  • Removed restriction for removing core modules from the Modules Manager
  • Several improvements on default Joomla! templates, including support of newest browsers
  • Added open-id support
  • Further LDAP improvements
  • Further improvements on the media manager like the ability to remove multiple files, or image preview option
  • Moved most of the global configuration settings to component configuration
  • Implemented latest TinyMCE Wysywig editor
  • Removed statistics functionality in core framework
  • Added windows support on teh FTP layer
  • Incorporated a solution for the general itemid problem
  • FTP Filesystem Layer credentials rethink included already; now asking for a password once per session

2. Designer features

  • Removed patTemplate engine to improve speed and flexibility. Library is still included for backward compatability, but is deprecated for framework usage.

3. Developers features

  • Added JPATH_COMPONENT_SITE and JPATH_COMPONENT_ADMINISTRATOR defines
  • General MVC improvements to simplify component implementations that follow conventions
    1. - Ability to handle more then one view
      - Support for component table handling
      - Improvements to search engine friendly url handling
  • Improved feed parsing and feed support
  • General improvements to search engine friendly url handling
  • Implemented mootools javascript library
  • JError rework, removed dependency on PatError
  • HTML library improvements

4. Miscellaneous

  • Included an accessible and W3C compatible template example named BEEZ.