Contents
El primer componente básico
Vamos a crear un componente «Hola Mundo»
Parte pública
Con tu editor favorito crea un fichero yoursite/components/com_helloworld/helloworld.php que contenga:
Hello world
Puedes testear este componente básico accediendo a la dirección http://yoursite/index.php?option=com_helloworld en tu navegador (no olvides añadir antes la dirección a tu instalación Joomla!2.5) tras instalar este componente.
Gestión de Adminsitración
Con tu editor de ficheros favorito, crea un fichero yoursite/administrator/components/com_helloworld/helloworld.php que contenga:
Hello world administration
Puedes testear este componente básico visitando administrator/index.php?option=com_helloworld con tu navegador tras instalar el componente.
Empaquetando un fichero zip de instalaciñon
Si has utilizado Joomla antes de leer este tutorial, habrás notado que las extensiones se instalan utilizando un archivo comprimido conteniendo todos los recursos necesarios para instalar y desinstalar la extensión.
Con tu administrador de archivos preferido, crea un directorio (fuera del directorio de instalación de Joomla) que contenga:
- helloworld.xml
- site/helloworld.php
- site/index.html
- admin/index.html
- admin/helloworld.php
- admin/sql/index.html
- admin/sql/updates/index.html
- admin/sql/updates/mysql/index.html
- admin/sql/updates/mysql/0.0.1.sql
admin/sql/updates/mysql/0.0.1.sql es un fichero vacío que permite inicializar la versión del esquema del componente com_helloworld.
admin/sql/updates/mysql/0.0.1.sql
Ahora comprime este directorio o directamente descargalo el archivo e instalalo utilizando la «Administración de extensiones» (Extension Manager) de Joomla. Puedes testear este componente básico accediendo a la dirección index.php?option=com_helloworld o administrator/index.php?option=com_helloworld con tu navegador favorito. También te darás cuenta de que el componente Hello World! está accesible en el area de administración de tu instalación Joomla, bajo el menú Componentes.
Nota: La etiqueta <name>Hello World!</name>
te puede llevar a pensar que se trata simplemente del nombre, y que podrías llamarlo ‘fluffy’ o ‘bippo’, pero esto no es así. Los nombres entre las etiquetas se transforman, convirtiendolo en minúsculas y quitando los espacios y caracteres especiales (el ! por ejemplo) y joomla comienza a buscar ficheros/directorios que respondan con ese nombre. Asi que el nombre que utilices ahí es crucial para que el componente funcione. En otras palabras, Si quieres cambiar «Hello World!» a «helloworld» todo irá bien, pero si cambiaras el nombre a «helloworld2» el componente buscaría los ficheros y directorios equivocados.
helloworld.xml
<?xml version="1.0" encoding="utf-8"?> <extension type="component" version="2.5.0" method="upgrade"> <name>Hello World!</name> <!-- The following elements are optional and free of formatting constraints --> <creationDate>November 2009</creationDate> <author>John Doe</author> <authorEmail>john.doe@example.org</authorEmail> <authorUrl>http://www.example.org</authorUrl> <copyright>Copyright Info</copyright> <license>License Info</license> <!-- The version string is recorded in the components table --> <version>0.0.1</version> <!-- The description is optional and defaults to the name --> <description>Description of the Hello World component ...</description> <update> <!-- Runs on update; New in 2.5 --> <schemas> <schemapath type="mysql">sql/updates/mysql</schemapath> </schemas> </update> <!-- Site Main File Copy Section --> <!-- Note the folder attribute: This attribute describes the folder to copy FROM in the package to install therefore files copied in this section are copied from /site/ in the package --> <files folder="site"> <filename>index.html</filename> <filename>helloworld.php</filename> </files> <administration> <!-- Administration Menu Section --> <menu>Hello World!</menu> <!-- Administration Main File Copy Section --> <!-- Note the folder attribute: This attribute describes the folder to copy FROM in the package to install therefore files copied in this section are copied from /admin/ in the package --> <files folder="admin"> <!-- Admin Main File Copy Section --> <filename>index.html</filename> <filename>helloworld.php</filename> <!-- SQL files section --> <folder>sql</folder> </files> </administration> </extension>
site/helloworld.php
Hello World
admin/helloworld.php
Hello World administration
index.html común en todos los directorios
<html><body bgcolor="#FFFFFF"></body></html>