Lunes, Marzo 15, 2010
   
Text Size

Google AdSearch

 

Joomla! - Programar en Joomla!

Para llevar nuestra web Joomla! un poco mas allá, necesitaremos programar nuestras propias soluciones.

Si desactivamos el editor Html, podremos insertar código Html y Javascript en nuestros artículos y módulos, pero no código PHP.

El framework de Joomla!

Joomla! está programado en PHP, y dispone de su propia API de programación con un gran número de objetos, clases y funciones ya definidas que podremos utilizar en nuestro código PHP y que nos facilitarán muchísimo el trabajo de programación. Todas las extensiones que se ejecutan dentro de Joomla! se programan utilizando el framework, aunque también podremos utilizarlo en nuestros ficheros PHP externos a Joomla! incluyendo las siguientes líneas de código PHP y mediante las referencias adecuadas que encontraremos en la documentación:

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__) ));
define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
Estos son algunos ejemplos de los objetos del framework:

  • JFolder: Funciones sobre carpetas.
    • JFolder::Create("Prueba",0755); Crea una carpeta
    • JFolder::Copy(PathOrigen,PathDestino); Copia una carpeta
    • JFolder::Delete(Path);Borra una carpeta
  • JHTML: Funciones relacionadas con el código html que muestra Joomla!
    • JHTML::calendar('', 'calendario', 1, '%Y-%m-%d', null); Muestra un calendario
  • JFactory:Entre otros provee de acceso a la base de datos y los usuarios.
    • JFactory::getUser(); devuelve los datos del usuario.
  • JSide: responsable del front de nuestra web.

Aquellos que deseen iniciarse en la programación con el framework de Joomla! disponen de toda la documentación oficial:

Joomla! 1.5 Framework documentation

Joomla! 1.5 API Reference

Imprescindible resulta también conocer la estructura de las tablas de Joomla!:

Gráfico de relaciones de tablas de Joomla! 1.5 (por Trokil Johnsen)

 

Básicamente podemos integrar nuestro código PHP (utilice el framework o no) de tres maneras:

Url Embedida o Wrapper

La manera mas básica y elemental de integrar nuestro código en Joomla! es creando un item de menú de tipo URL embebida o 'Wrapper'.
Este tipo menú enlaza a un sitio externo y muestra ese sitio dentro del nuestro, usando un IFrame en HTML. El sitio externo quedará contenido dentro de esa envoltura y se podrá navegar por las distintas páginas del sitio embebido.

Gracias a esta característica de Joomla! podremos integrar en nuestra web cualquier otro sitio, externo o del mismo servidor, y programado en cualquier lenguaje.

Esta suele ser una buena opción para implementar Joomla! en entornos donde ya existian aplicaciones web en otros lenguajes.
No es la solución ideal, ya que la web integrada se continua ejecutando independientemente, pero puede ser un buen paso intermedio hasta la migración.

Si la página embedida está programada en PHP y se ejecuta en el mismo dominio, podremos acceder al Framework de Joomla!

Extensiones que permiten la ejecución de código

Aunque Joomla! de serie no ejecuta código insertado en el contenido, existen extensiones de terceros que implementan esta posibilidad.
Gracias a estos plugins podremos escribir código Html, Javascript o PHP, directamente en nuestros artículos.

Jumi: custom code in articles Extensiones Joomla! - Web Oficial - Documentación

Sourcerer: custom code in content Extensiones Joomla! - Web Oficial 

Creación de extensiones propias

Es por la versatilidad a la hora de crear nuevas extensiones que Joomla! cuenta con una de las mayores comunidades de la red. Cualquiera puede crear sus propios plugins y componentes siguiendo la documentación oficial y los múltiples tutoriales que podemos encontrar en la red. Gracias al framework podremos dotar a nuestras extensiones de acceso a todas las funcionalidades de Joomla!: el acceso a datos, a los ficheros, a los usuarios, al contenido....

En nosolocodigo.com podemos encontrar varios tutoriales muy detallados:

Tutorial para crear módulos para Joomla! (nosolocodigo.com)

Tutorial para crear componentes para Joomla! (nosolocodigo.com)Tutorial para crear plugins para Joomla! (nosolocodigo.com

Incluso disponemos de Easy Creator, un asistente para crear rápidamente nuestros plugins/componentes/módulos para Joomla!:

Easy Creator Extensiones Joomla! - Web oficialSi una vez creada la extensión, consideramos que es suficientemente buena, podemos animarnos a publicarla en extensions.joomla.org, y así contribuir con nuestro granito de arena al crecimiento de este enorme proyecto.

 

[volver al índice de la Guia Joomla!]


Compartir este artículo en...
Reddit! Del.icio.us! Mixx! Free and Open Source Software News Google! Live! Facebook! StumbleUpon! TwitThis Joomla Free PHP


Login