Hasta ahora habíamos visto como hacer los componentes, tanto la parte de backend, como la de frontend, pero no habíamos visto como crear un paquete instalable para poder compartirlo con todo el mundo que se pueda instalar desde el instalador de extensiones de Joomla!.

Para ello simplemente hay que generar un fichero XML con nombre igual al del componente, en este caso prueba.xml y con un formato específico y comprimirlo todo en un zip. Este zip será el instalable.

Vamos a ver un posible fichero XML para un componente de prueba.



<?xml version=”1.0″ encoding=”utf-8″?>

<!DOCTYPE install SYSTEM “http://dev.joomla.org/xml/1.5/component-install.dtd”>

<install type=”component” version=”1.5.0>

      <name>COM_PRUEBA</name>

      <!– Los siguientes elementos son opcionales –>

      <creationDate>2007 01 17</creationDate>

      <author>David</author>

      <authorEmail>david@nosolocodigo.com</authorEmail>

      <authorUrl>http://www.nosolocodigo.com</authorUrl>

      <copyright>Copyright Info</copyright>

      <license>License Info</license>

      <!–  Esta cadena es almacenada en la base de datos –>

      <version>Component Version String</version>

      <!– La descripción es opcional, y por defecto es el nombre del componente –>

      <description>Descripción del componente …</description>

 

      <!– Script php personalizado que se ejecutará en la instalación –>

      <installfile>install.php</installfile>

     

      <!– Script php personalizado que se ejecutará en la desinstalación  –>

      <uninstallfile>uninstall.php</uninstallfile>

 

      <!– Scripts SQL que se ejecutaran en la instalación –>

      <install>

            <sql>

                  <file driver=”mysql” charset=”utf8>install.mysql.utf8.sql</file>

                  <file driver=”mysql>install.mysql.nonutf8.sql</file>

            </sql>

      </install>

     

      <!–Scripts SQL que se ejecutarán en la desinstalación–>

      <uninstall>

            <sql>

                  <file driver=”mysql” charset=”utf8>uninstall.mysql.utf8.sql</file>

                  <file driver=”mysql>uninstall.mysql.nonutf8.sql</file>

            </sql>

      </uninstall>

 

      <!– Ficheros de la parte de front-end del componente, incluye aquí todos los ficheros del componente, incluidas las vistas, controladores, etc… –>

      <files>                               

            <filename>index.html</filename>

<!—El punto de entrada al componente ha de tener el atributo component–>

<filename component=”prueba.php>prueba.php</filename>

      </files>

     

      <!– Ficheros de leguanjes para el sitio –>

      <languages>

            <language tag=”en-GB>en-GB.com_prueba.ini</language>

            <language tag=”de-DE>de-DE.com_prueba.ini</language>

            <language tag=”nl-NL>nl-NL.com_prueba.ini</language>

      </languages>

     

      <!– Ficheros multimedia para el sitio –>

      <media destination=”com_test>

            <filename>image.png</filename>

            <filename>flash.swf</filename>

      </media>

 

      <administration>

     

            <!– Sección para el menu del Back-End –>

            <menu img=”components/com_test/assets/test-16.png>EventList

</menu>

            <submenu>

                  <!– Date cuenta que todos los & estan escapados a &amp; para que el fichero XML valide correctamente y pueda ser parseado por el instalador –>

                  <menu link=”option=com_helloworld&amp;task=hello&amp;who=world>

Hello World! </menu>

                  <!– Puedes especificar el link como arriba o los atribitos de la URL individualmente como abajo –>

                  <menu img=”icon” task=”hello” controller=”z” view=”a” layout=”b” sub=”c>Hello Again!</menu>

                  <menu view=”prueba” layout=”foo>Testing Foo Layout</menu>

            </submenu>

           

            <!– Ficheros de la parte de Administración–>

            <!–El atributo folder especifica la carpeta desde donde serán copiados los ficheros, por lo tanto index.html estará ubicado dentro del componente en

                  admin/index.html

                  –>

            <files folder=”admin>

                  <filename>index.html</filename>

<!—El punto de entrada al componente ha de tener el atributo component–>

                  <filename component=”admin.prueba.php> admin.prueba.php</filename>

            </files>

           

            <!– Ficheros de lenguaje de la parte de Administración –>

            <languages folder=”admin>

                  <language tag=”en-GB>en-GB.com_prueba.ini</language>

                  <language tag=”de-DE>de-DE.com_prueba.ini</language>

                  <language tag=”nl-NL>nl-NL.com_prueba.ini</language>

            </languages>

           

            <!–Ficheros multimedia de la parte de Administración–>

            <media folder=”admin” destination=”com_prueba>

                  <filename>admin-image.png</filename>

                  <filename>admin-flash.swf</filename>

            </media>

      </administration>

</install>

Este fichero será leído por el instalador de Joomla! y de aquí sacara la información para proceder a instalar el componente. Si el fichero no valida correctamente, no podrá ser parseado y fallará la instalación, así que estate al tanto de que valide ya que XML es muy estricto y puede fallar por cualquier tontería, como dejarse espacios en blanco al inicio. Con los comentarios incluidos dentro del fichero creo que se entiende todo, este fichero de ejemplo ha sido sacado de la documentación oficial de Joomla y traducido al castellano para su mejor comprensión.



Comentarios

  1. 1
    AyVoy
    12 de Marzo del 2008 a las 1:11 am

    Gracias por este fantastico tutorial.

  2. 4
    Gaston
    25 de Marzo del 2008 a las 8:05 pm

    Estimado, la verdad es que estoy sorprendido por la calidad y explicación de tus tutoriales. Lamentablemente no todos somos tan buenos, ni entendemos tanto. Quería consultarte por un problema: Estoy buscando un componente/modulo para mostrar efemérides en mi sitio web. Solo encontré uno que se llama “Whats Today”, y que en teoría sirve para lo que necesito. El problemas es que no se instala en Joomla 1.5. Tienes alguna idea de dónde puedo conseguir algo de esto? O cómo modificar el que conseguí para que instale en J1.5? Un abrazo y mil gracias.
    Gastón.

  3. 5
    david
    27 de Marzo del 2008 a las 6:04 pm

    Hola gaston, probablemente el componente funciones si activas el legacy mode en Joomla! 1.5. Para activarlo ves al gestor de plugins.

    Si no funciona, lo unico que te queda es reprogramarlo con compatibilidad para 1.5…

    La nueva versión a salido hace poco y aún hay muchos componentes, módulos y plugins que no se han actualizado, es un incordio, pero en un tiempo se solucionará..

    Un saludo!!

  4. 6
    Fran
    29 de Marzo del 2008 a las 12:10 pm

    Hola David,

    Primero felicitarte por el tutorial, que está muy bien.

    Luego una crítica constructiva: vendría bien que pusieras el archivo zip del componente disponible para descargar, o los archivos por separado, en lugar de tener que copiar y pegar que ya sabes que a veces da problemas.

    Por lo demás espero que sigas adelante con ello, a mí me está resultando muy útil a la par que interesante. :-)

    Un saludo,

  5. 7
    Guillermo
    23 de Abril del 2008 a las 3:03 pm

    Hola, Muy interesante tu articulo pero sabes estoy en un pequeño aprieto, tengo un layout en Photoshop lo estoy maqueteando pero sabes no se como pasarlo a Joomla

    que seria lo que tengo que hacer

    ?
    gracias por tu valiosa ayuda

  6. 8
    david
    24 de Abril del 2008 a las 4:29 pm

    Hola Guillermo, pues en la web de leandro donofrio tienes un tutorial muy bueno sobre como hacer un template para Joomla.

    No es nada complicado, si ya lo tienes pasado a html solamente hay que añadir unas etiquetas especiales de joomla.

    Aqui lo tienes

    Un saludo

  7. 9
    jseros
    15 de Agosto del 2008 a las 1:05 pm

    Espectacular tutorial, te felicito y muchas gracias por traer esta información tan valiosa al castellano.

    Mucha Suerte.

Trackbacks

  1. Tutorial: Módulos para Joomla! 1.5 | nosoloCodigo
  2. Componentes para Joomla! 1.5 I | nosoloCodigo

Deja un Comentario

blank
[x] Cerrar
E-mail