En este tutorial vamos a aprender como podemos crear plantillas para Joomla 1.7 (también compatibles con Joomla 1.6). Conoceremos la estructura básica de archivos y carpetas que tiene una plantilla para Joomla y analizaremos las etiquetas que necesitamos incluir para que nuestra plantilla interactue con el framework de Joomla.
Estructura básica de una plantilla
Las plantillas en Joomla! las podemos encontrar en la carpeta templates. La estructura de directorios y ficheros es la siguiente:

Carpetas y archivos obligatorios
Son obligatorios, ya que si no están presentes, la plantilla no funcionará.
- Carpeta raíz: Carpeta que contiene todos los archivos y directorios necesarios de la plantilla. El nombre no debe contener espacios o caracteres especiales.
- index.php: Archivo principal de la plantilla. Será donde se llamará a los archivos CSS y JavaScript. Su contenido está formado por etiquetas HTML y PHP.
- templateDetails.xml: Archivo XML que sirve para instalar de manera automática la plantilla en Joomla! Posee el nombre de la plantilla, autor, licencia, versión, estructura de carpetas, archivos y lenguajes, nombres de las posiciones de módulos y opciones de configuración de la plantilla.
- template_preview.png: Imagen de la plantilla, que será la que saldrá en el listado de plantillas.
- template_thumbnail.png: Pequeña imagen que también actúa como vista previa al momento de seleccionar una plantilla en el panel de administración.
- index.html: Archivo HTML en blanco que nos servirá como método de seguridad en servidores que permiten explorar directorios en archivos desde el navegador.
- css: Carpeta contenedora de los estilos CSS.
Son archivos que agregan funcionalidades o características a la plantilla, pero que no es obligatorio incluirlos.
- component.php: Archivo PHP que se usa como vista previa al querer imprimir un artículo o enviarlo por correo electrónico. En caso de no existir, se utiliza el archivo component.php ubicado en la carpeta /templates/system/.
- error.php: Archivo PHP que se mostrará cuando en el CMS ocurra un error.
- favicon.ico: Imagen que se utilizará como icono de la página.
- images: Carpeta con imágenes para utilizar en la plantilla.
- js: Carpeta con archivos JavaScript para utilizar en la plantilla.
- html: Los archivos alojados en esta carpeta permiten sobrescribir la salida HTML que imprime el CMS de forma predeterminada en componentes y módulos.
- language: Contendrá archivos del idioma .ini.
Utilizar la plantilla atomic como base
A partir de la versión 1.6, Joomla incorpora una nueva plantilla llamada atomic, la cual tiene como objetivo que pueda ser utilizada como base para la creación de nuevas plantillas. Su principal característica es la utilización de Blueprint, un framework CSS que permite agilizar la creación de estilos y maquetaciones.
Por esta razón lo que haremos es copiar el directorio atomic y renombrarlo.
Lo siguiente será ir por cada uno de los archivos para modificarlos en base a las nuestras necesidades.
templateDetails.xml
Este archivo es importante ya que será el archivo que lee Joomla al momento de instalar la plantilla y mostrar su información asociada en el panel de administración.
El archivo esta compuesto del siguiente código:
<extension client="site" type="template" version="1.7">
<name>atomic</name>
<creationDate>10/10/09</creationDate>
<author>Ron Severdia</author>
<authorEmail>contact@kontentdesign.com</authorEmail>
<authorUrl>http://www.kontentdesign.com</authorUrl>
<copyright>Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<version>1.7.0</version>
<description>TPL_ATOMIC_XML_DESCRIPTION</description>
<files>
<folder>html</folder>
<folder>css</folder>
<folder>images</folder>
<folder>language</folder>
<folder>js</folder>
<filename>index.php</filename>
<filename>index.html</filename>
<filename>favicon.ico</filename>
<filename>templateDetails.xml</filename>
<filename>template_preview.png</filename>
<filename>template_thumbnail.png</filename>
<filename>component.php</filename>
<filename>error.php</filename>
</files>
<positions>
<position>atomic-bottomleft</position>
<position>atomic-bottommiddle</position>
<position>atomic-search</position>
<position>atomic-sidebar</position>
<position>atomic-topmenu</position>
<position>atomic-topquote</position>
</positions>
<!-- For core templates, we also install/uninstall the language files in the core language folders. -->
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.tpl_atomic.ini</language>
<language tag="en-GB">en-GB/en-GB.tpl_atomic.sys.ini</language>
</languages>
</extension>
]]>
Las etiquetas que modificaremos serán el nombre de la plantilla, fecha de creación, autor, correo electrónico del autor, la dirección del autor
y los nombres de los ficheros de idiomas.
Descubrir la plantilla en la administración
Antes de continuar, es importante que Joomla reconozca la plantilla realizada. Para ello nos dirigiremos en la administración de sitio web, y entramos en Extensiones > Gestor de extensiones > Descubrir > Presionamos el botón Descubrir. Debería aparecer la plantilla que hemos creado y después presionamos Instalar.

Una vez esto echo ya tenemos instalada la nueva plantilla que hemos creado.
index.php
Es el fichero más importante del directorio, por esa razón es importante entender las diferentes etiquetas que lo conforman.
El fichero index.php que hemos copiado contiene:
<?php echo '<?'; ?>xml version="1.0" encoding="<?php echo $this->_charset ?>"?>
<html xml:lang="<?php echo $this->language; ?>" xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<!-- The following JDOC Head tag loads all the header and meta information from your site config and content. -->
<jdoc:include type="head"/>
<!-- The following five lines load the Blueprint CSS Framework (http://blueprintcss.org). If you don't want to use this framework, delete these lines. -->
<link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/screen.css" media="screen, projection"/>
<link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/print.css" media="print"/>
<!--[if lt IE 8]><link rel="stylesheet" href="/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
<link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/fancy-type/screen.css" media="screen"/>
<link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/joomla-nav/screen.css" media="screen"/>
<!-- The following line loads the template CSS file located in the template folder. -->
<link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" rel="stylesheet"/>
<!-- The following four lines load the Blueprint CSS Framework and the template CSS file for right-to-left languages. If you don't want to use these, delete these lines. -->
<?php if ($this->direction == 'rtl') : ?>
<link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/rtl/screen.css" rel="stylesheet"/>
<link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template_rtl.css" rel="stylesheet"/>
<?php endif; ?>
<!-- The following line loads the template JavaScript file located in the template folder. It's blank by default. -->
<script type="text/javascript" src="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/template.js"/>
</head>
<body>
<div class="container">
<hr class="space"/>
<div class="joomla-header span-16 append-1">
<h1><?php echo $app->getCfg('sitename'); ?></h1>
</div>
<?php if ($this->countModules('atomic-search')) : ?>
<div class="joomla-search span-7 last">
<jdoc:include style="none" type="modules" name="atomic-search"/>
</div>
<?php endif; ?>
</div>
<?php if ($this->countModules('atomic-topmenu')) : ?>
<jdoc:include style="container" type="modules" name="atomic-topmenu"/>
<?php endif; ?>
<div class="container">
<div class="span-16 append-1">
<?php if ($this->countModules('atomic-topquote')) : ?>
<jdoc:include style="none" type="modules" name="atomic-topquote"/>
<?php endif; ?>
<jdoc:include type="message"/>
<jdoc:include type="component"/>
<hr/>
<?php if ($this->countModules('atomic-bottomleft')) : ?>
<div class="span-7 colborder">
<jdoc:include style="bottommodule" type="modules" name="atomic-bottomleft"/>
</div>
<?php endif; ?>
<?php if ($this->countModules('atomic-bottommiddle')) : ?>
<div class="span-7 last">
<jdoc:include style="bottommodule" type="modules" name="atomic-bottommiddle"/>
</div>
<?php endif; ?>
</div>
<?php if ($this->countModules('atomic-sidebar')) : ?>
<div class="span-7 last">
<jdoc:include style="sidebar" type="modules" name="atomic-sidebar"/>
</div>
<?php endif; ?>
<div class="joomla-footer span-16 append-1">
<hr/>
©<?php echo date('Y'); ?> <?php echo $app->getCfg('sitename'); ?>
</div>
</div>
</body>
</html>]]>
A continuación vamos a analizar fragmento a fragmento que funcionamiento tienen cada parte del código fuente de la plantilla.
Parte 1
<?php echo '<?'; ?>xml version="1.0" encoding="<?php echo $this->_charset ?>"?> <html xml:lang="<?php echo $this->language; ?>" xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
El objetivo de estas tres líneas es de declarar el documento de la plantilla, así como también la codificación, idioma y dirección de escritura (de izquierda a derecha o viceversa).
Parte 2
<jdoc:include type="head"/>
Este código crea las etiquenas necesarias para rellenar la cabecera de la plantilla. (base, meta, title, link, script, etc.)
Algunas de estas etiquetas podrán ser modificadas desde el administrador del sitio web y otras no.
Parte 3
<!-- The following five lines load the Blueprint CSS Framework (http://blueprintcss.org). If you don't want to use this framework, delete these lines. --> <link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/screen.css" media="screen, projection"/> <link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/print.css" media="print"/> <!--[if lt IE 8]><link rel="stylesheet" href="/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]--> <link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/fancy-type/screen.css" media="screen"/> <link rel="stylesheet" type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/joomla-nav/screen.css" media="screen"/> <!-- The following line loads the template CSS file located in the template folder. --> <link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" rel="stylesheet"/>
En este punto es donde se incorporan los archivos pertenecientes al framework CSS Blueprint.
Parte 4
<!-- The following four lines load the Blueprint CSS Framework and the template CSS file for right-to-left languages. If you don't want to use these, delete these lines. --> <?php if ($this->direction == 'rtl') : ?> <link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/blueprint/plugins/rtl/screen.css" rel="stylesheet"/> <link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template_rtl.css" rel="stylesheet"/> <?php endif; ?> <!-- The following five lines load the Blueprint CSS Framework (<a href="http://blueprintcss.org" >http://blueprintcss.org</a>). If you don't want to use this framework, delete these lines. -->
Esta parte tiene el objetivo de determinar la dirección de lectura.
Parte 5
<!-- The following line loads the template JavaScript file located in the template folder. It's blank by default. --> <script type="text/javascript" src="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/template.js"/>
En este punto se incorpora un archivo .js que como podemos observar está vacío. La funcionalidad de este archivo es añadir todos los scripts que queramos añadir en nuestro sitio y así facilitarnos el trabajo de incluir archivos nuevos en la plantilla.
Parte 6
<h1><?php echo $app->getCfg('sitename'); ?></h1>
Con estas líneas insertaremos en el cuerpo el nombre del sitio web que hemos introducido en la instalación del Joomla (Será insertado con una etiqueta H1).
Parte 7
<?php if ($this->countModules('atomic-search')) : ?>
<div class="joomla-search span-7 last">
<jdoc:include style="none" type="modules" name="atomic-search"/>
</div>
<?php endif; ?>
El siguiente trozo de código se repite varias veces en el cuerpo del documento, por lo tanto es importante entender su funcionamiento.
- $this->countModules(): Esta funcion lo que hace es contar la cantidad de módulos publicados en una determinada posición de la plantilla. Esto se suele hacer para que no se muestre código HTML vacío en caso que un módulo no esté publicado (como es el caso de las etiquetas <div /> en el código que se muestra.
- <jdoc:include type="modules" name="" style="" />: Representa una de las partes más importantes de la plantilla. Con esta directiva se indica la carga de un módulo en particular y de una manera específica. Esto se establecerá a partir de dos atributos:
- name: En este atributo se debe especificar el nombre de una posición determinada de la plantilla. Estas posiciones son especificadas en el archivo templateDetails.xml y su nombre debe ser único, sin espacios.
- style: En este atributo se especifica el estilo con que se quiere mostrar un módulo determinado. Dicho estilo no se refiere a CSS, si no a qué tipo de etiquetas HTML encerrarán al módulo y de que manera
Parte 8
<jdoc:include type="message"/>
Esta directiva se utiliza para mostrar diferentes mensajes del CMS.
Parte 9
©<?php echo date('Y'); ?> <?php echo $app->getCfg('sitename'); ?>
Finalmente, llegando al final del archivo, se incorpora una serie de etiquetas para mostrar el año presente y el nombre del sitio, formando un texto similar a: © 2011 Mi sitio web
El sistema de grillas de BluePrint
BluePrint es una colección de archivos .css, los cuales poseen variados estilos predefinidos para ahorrar tiempo en diferentes tareas de diseño web como maquetaciones, reseteo de estilos, diseño de formularios, tipografías, etc. Para la creación de la maquetación de la plantilla se utilizará su sistema de grillas.
Su mecanismo permite crear un máximo de 24 columnas (o grillas) las cuales se pueden combinar dependiendo de las necesidades.
La clave de su utilización es añadir una serie de clases predefinidas en los elementos del documento para poder crear las columnas y el ancho necesitado.
<div class="container">
<div class="span-12">
<!-- contingut -->
</div>
<div class="span-12 last">
<!-- contingut -->
</div>
<div>
El <div> con la clase container será el elemento que contendrá todas las columnas de la maquetación. Al agregar dicha clase, se hará que el documento tenga un ancho de 950px y aparezca centrada horizontalmente. Luego, cada <div /> con la clase span-12 especifica que ocupen el espacio de 12 grillas, o sea, la mitad del espacio disponible (recordar que como máximo se dispone de 24 grillas). De la misma forma, si se desea que cada columna ocupe un tercio del espacio, lo único que hay que hacer es cambiar la clase por span-8. Finalmente note que el último elemento (es decir, la última columna) debe tener la clase last, caso contrario la maquetación se visualizará de forma incorrecta.
Sobre el autor
Jordi Vila es Ingeniero Técnico en Informática de gestión. Forma parte del equipo de WebActualizable, empresa especializada en el desarrollo de proyectos sobre Joomla.
- Plantillas en Joomla 2.5
- Curso de VirtueMart 2.0
- Paso 3: Traducción Joomla 2.5 a español
- Paso 2: Instalación Joomla 2.5
- Instalar Joomla 2.5 en Mac OS: Instalación de MAMP
- Plantillas para Joomla 1.7
- Instalar plantillas en Joomla 1.6
- Extensiones Firefox para diseñadores web
- Joomla Day Valencia 2010: taller desarrollo plantillas de Sergio Iglesias
- Representación esquemática de una plantilla. Paso previo antes de diseñar una web
Artículos Recientes
- Migración de Joomla 1.5 a Joomla 2.5
- Joomla 2.5.4 - Actualización de seguridad
- El nuevo iPad es Joomlero
- Liberado Joomla 1.5.26
- Joomla 3.0: así será su interfaz
- ¿Tendrá Joomla 1.5 soporte hasta Septiembre de 2012?
- Gestión de extensiones en Joomla 2.5
- Plantillas en Joomla 2.5
- Plugins en Joomla 2.5
- Modulos en Joomla 2.5
Más Leidos
- Plantillas gratuitas para Joomla
- Contador de visitas para Joomla
- Plantillas tipo revista o periódico
- Insertar pdf en Joomla
- Como conocer la posición de un módulo en una plantilla
- Insertar código HTML en Joomla
- Tutorial de JoomlaPack - Realizar backups de Joomla (Parte 1)
- Galería de Imágenes para Joomla: Phoca Gallery
- Plantillas gratis para Joomla 1.7
- Crear mapa web o sitemap para Joomla con XMAP
Comentarios recientes
En el foro...
Artículos relacionados
- ¿Qué es Joomla?
- Requisitos de Joomla 1.5
- Legacy Mode en Joomla 1.5
- Permite a tus usuarios elegir su plantilla favorita con Template Chooser
- Joomla 1.6: los bloggers opinan
- Convertir templates de Joomla 1.0 a Joomla 1.5
- AJ!Toolbar. Barra de herramientas para tu navegador web
- Crea tu propio template para Joomla!
- Plantillas gratuitas para Joomla
- Joomla 1.6 Alpha saldrá el próximo 22 de Junio
- Joomla llega a los 10 millones de descargas
- Preview del gestor de menús de Joomla 1.6
- Requisitos técnicos para Joomla 1.6 Alpha
- com_helloworld para Joomla 1.6
- Joomla 1.6 Beta 1 cuenta atrás...
- 21 Set de iconos útiles para diseñadores y desarrolladores Joomla
- ¿Donde esta la Beta de Joomla 1.6?
- Todo que tienes que saber sobre Joomla
- Joomla 1.6 Alpha 2 ya esta disponible
- Se acerca Joomla 1.6 Beta
- Liberado Joomla 1.6 Beta 1
- Estilos de plantilla en Joomla 1.6
- Joomla 1.6 Beta 3
- Videotutoriales en Nosolocodigo y WebEmpresa
- Joomla 1.6 Beta 4
- Joomla 1.6 Beta 5
- Liberado Joomla 1.6 Beta 6
- ¿Qué necesitas saber sobre Joomla 1.6? Niveles de control de accesos en la ACL de Joomla 1.6
- Liberado Joomla 1.6 Beta 7
- Liberado Joomla 1.6 Beta 8
- Joomla 1.7. el futuro y el presente
- Liberado Joomla 1.6 Beta 9
- Liberado Joomla 1.6 Beta 10
- Plantillas Kunena gratis
- Joomla 1.5! Accesibility
- Liberado Joomla 1.6 Beta 12
- Liberado Joomla 1.6 Beta 11
- Tutorial galería de imágenes con Simple Image Gallery
- Molajo: una distribución basada en Joomla 1.6.
- Tutorial edición Página 404 en Joomla!
- Crear formularios con BreezingForms
- Tutorial configuración y funcionamiento componente Wrapper en Joomla!
- Liberado Joomla 1.6 Beta 13
- Liberado Joomla 1.6 Beta 14
- Liberado Joomla 1.6 Beta 15
- Joomla 1.6 RC1 ya disponible
- Crear y gestionar galerías de imágenes con el componente Phoca Gallery
- Comparte tu opinión, comparte Joomla! 1.6, ¡envía tu vídeo!
- Chat en Joomla con JPFChat
- Joomla 1.6.0 GA - Versión estable
- 10 extensiones joomla 1.6
- Migrar Joomla 1.5 a Joomla 1.6
- AdminPraise Lite - Plantilla de administración para Joomla 1.6
- Paquetes de idioma español para Joomla 1.6
- Fiesta Drupal 7 en Málaga el 14 de Enero
- 2 Plantillas Joomla 1.6 gratis
- Migración de Joomla! 1.5 a Joomla! 1.6 con jUpgrade
- Template de Joomla 1.6 ButterflyMeadow
- Instalar Joomla! 1.6 en Windows con XAMPP
- Galerías de imágenes en Joomla 1.6 con Ozio Gallery
- ¿Lo sabes todo sobre Joomla?
- Mapas de Google en Joomla 1.6 con Phoca Maps
- Tutorial Virtuemart - Crear una tienda online en Joomla
- Joomla Upgrade: ¿Qué será de mi web?
- Joomla 1.6 ó Joomla 1.5 ¿Cual uso?
- Crear una red social con Community Builder
- Flash en artículos y módulos Joomla 1.6
- Desarrollo de componentes para Joomla 1.6. Backend Básico
- Aprende a usar Joomla 1.6
- Descargas en Joomla 1.6 con Phoca Download
- Actualizar Joomla 1.6. Guía paso a paso
- Sistema de puntuación en Joomla 1.6 con Alpha User Points
- Tutorial de Sobi2 - Creación de un directorio de contenidos
- Joomla 1.6: las comunidades opinan
- K2 estará disponible para Joomla 1.6
- Mejoras SEO en Joomla 1.6
- Extensiones SEO para Joomla! 1.6
- Posiciones de los módulos en Joomla 1.6 con tp=1
- Tutorial JoomSEF. Mejorar el posicionamiento de nuestra web Joomla en los buscadores
- Multilenguaje en Joomla 1.6
- Sistemas de menú para Joomla 1.6
- 10 templates de Joomla 1.6 gratis
- Joomla 1.6: las empresas opinan
- Google Calendar en Joomla 1.6 con Gcalendar
- SQL Injection sobre Joomla 1.6.0
- Creación de plugins en Joomla 1.6
- Formularios en Joomla 1.6 con ChronoForms
- Joomla 1.6 First Look [Review]
- Añadir código en Joomla 1.6 con Jumi
- Instalar plantillas en Joomla 1.6
- Help Desk en Joomla 1.6 con RsTickets!Pro
- Creación de plantillas para Joomla 1.6
- Mandar emails a usuarios en Joomla 1.6
- Tutorial CiviCRM: CRM para Joomla 1.6
- Joomla 1.7 Alpha ya está disponible
- Instalar Joomla! 1.7 en Windows con WAMP
- Vídeos en Joomla 1.6 con AllVideosReMix
- Plantillas para Joomla 1.7
- Joomla 1.6 Guía para principiantes. Libro Joomla gratuito
- Liberado Joomla 1.6.4
- Ya está disponible Joomla 1.7 Beta 1
- Próxima review de Joomla! VirtueMart 1.1 Theme and Template Design
- Tutorial de K2 en Joomla 1.6
- Windows Live Writer en Joomla 1.6 con MovableyType XMLRPC
- Liberado Joomla 1.6.5
- Tutorial de JV Framework
- Liberado Joomla 1.7 RC1
- Ofertas de empleo en Joomla 1.6 con Job Board
- Prefijos de tablas automáticos en Joomla 1.7
- Liberado Joomla 1.7.0
- Gestión de proyectos en Joomla 1.6 con Projectfork
- Joomla! Virtuemart 1.1 Theme and Template Design
- Liberado Joomla 1.6.6. Solución a problemas de actualización a Joomla 1.7
- Nueva estrategia de desarrollo de Joomla
- Plantillas gratis para Joomla 1.7
- Tutorial de Joomfish. Multilenguaje en Joomla 1.5
- Restringir el acceso a los contenidos en Joomla 1.6
- Termina el ciclo de vida de Joomla 1.6
- Obtener los parámetros de modulos, plugins, componentes y plantillas en Joomla 1.7
- Próxima review de libro Joomla Explained
- Libro de Joomla 1.7 gratis en inglés. Joomla 1.7 Beginner's guide
- Instalar y Configurar Zoo en Joomla 1.7
- ¡6 años junto a Joomla!
- Google +1 en Joomla
- Los secretos ocultos de Joomla 1.7
- Manual de Virtuemart creado por Web Empresa
- Chat en Joomla 1.7 con AJAX Shoutbox
- Review del libro Joomla Explained
- 5 módulos Slideshows para Joomla 1.7
- Tienda online en Joomla 1.7 con JoomShopping. Empieza a vender (2/3)
- ¡Por fin! K2 disponible para Joomla 1.7
- ¿Cómo crear un Joomla User Group?
- Tienda online en Joomla 1.7 con JoomShopping. Módulos, plugins y addons (3/3)
- Tienda online en Joomla 1.7 con JoomShopping. Configuración del componente (1/3)
- Virtuemart para Joomla 1.7: Virtuemart 2.0
- Instalación y configuración de Virtuemart 2.0 para Joomla 1.7
- La ACL en Joomla 1.7 - Gestión de permisos de usuario avanzada
- Empieza a vender con Virtuemart en Joomla 1.7
- Módulos y plugins para Vituemart 2.0 en Joomla 1.7
- Video del taller la ACL en Joomla 1.7
- Calendario de eventos en Joomla 1.7 con Jevents
- Extensiones gratuitas para K2 en Joomla 1.7
- Suscripciones en Joomla 1.7 con Akeeba Subscriptions
- Pasarela de pago Pasat 4b para pagar con tarjetas de crédito en Virtuemart
- Joomla 2.5 - ¡Ya está aquí!
- Plantillas Joomla 2.5 - Business











