Detalle del libro
Ver Índice
Introducción
Usuario con experiencia en Joomla! pero nuevo en programación
Programador Web experimentado pero nuevo en Joomla!
Aquellos que necesitan empezar con el desarrollo de la versión 2.5
Aquellos que necesitan aprender más sobre cómo funciona Joomla! y desarrollar extensiones
Lo que no se trata en este libro
Cómo se organiza este libro
El reto del desarrollo Web: Se necesitan demasiados conocimientos
¿Qué novedades hay en la versión 2.5?
Sistema de lista de control de acceso
Niveles de categorías definidos por el usuario (ya no hay secciones)
JForm
JTableNested
JDatabaseQuery
Versión 5.2 de PHP
Versión 5.0.4 de MySQL
Formato de los archivos de idioma
Actualización automática
MVC mejorado
Compatibilidad con otras bases de datos
Búsqueda mejorada
Convenciones
Código fuente
Bienvenido al desarrollo con Joomla!
1. Qué es el desarrollo con Joomla!
Desarrollar con Joomla! no es difícil
El entorno técnico de Joomla!
Programar con Joomla!: qué tiene que saber
Ampliar Joomla!: distintas formas de hacerlo
El código abierto nos proporciona el control
Override nos permite cambiar lo que aparece en la página
Extensiones
Plugins
Módulos
Componentes
Idiomas
Plantillas
¿Qué tipo de extensión deberíamos utilizar en nuestro proyecto?
Utilizar Joomla! como plataforma o como estructura
Resumen
2. Preparar la estación de trabajo para el desarrollo con Joomla!
Requisitos para ejecutar Joomla!
Carpeta raíz para almacenar los documentos de Apache
Instrucciones actualizadas
Plataforma Windows
Nota sobre Microsoft IIS y SQL Server
Plataforma Mac OS X
Plataforma Linux
Propietario predeterminado de archivos y carpetas
Herramientas necesarias
IDE o editor de texto
Opciones IDE de código abierto
Eclipse
IDE comerciales
Elección de un editor de texto
Notepad++
Otras herramientas
Sistema de control de versiones
Software de generación automática (Ant y Phing)
Programas de prueba automáticos
Resumen
3. Cómo funciona Joomla!
Recorrido por las carpetas de Joomla!
Front-End o Back-End
Cache
CLI
Componentes
Images
Includes
Installation
Language
Libraries
Logs
Media
Modules
Plugins
Templates
Tmp
Administrator
Administrator/Cache
Administrator/Components
Administrator/Help
Administrator/Includes
Administrator/Language
Administrator/Manifests
Administrator/Modules
Administrator/Templates
Administrator/index.php
Files
Plataforma Joomla!
Programación Web o programación "normal"
Conservar el estado del programa
Controlar y comprobar las instrucciones
Anatomía de un ciclo de ejecución de Joomla!
Cargar el archivo Index.php
Comprobar el entorno de ejecución
Definir la ubicación de los archivos
Cargar la estructura de Joomla!
Empezar o continuar la sesión
Asignar una ruta a la URL
Ejecutar el componente
Interpretar la página
Resultado de la página
Resumen de la sesión de Joomla!
Convenciones de nomenclatura (¿sabiduría convencional?)
Objetos globales
Vista general de las tablas de una base de datos
Nota sobre los prefijos de las tablas
Resumen
4. Ampliar Joomla! con overrides para el diseño
Nociones básicas sobre las plantillas
Carpetas y archivos para las plantillas
Archivo index.php de una plantilla
Posiciones en las plantillas
Parámetros de las plantillas
Módulo chrome
Copiar una plantilla
Aplicar un override al diseño del módulo Últimas noticias
Configuración del módulo: loadmodule
Crear el archivo override para el diseño
Personalizar el diseño
Solucionar un problema empleando la función strip_tags
Usar el método truncate de JHtmlString
Emplear la sintaxis JHtml::_
Cambiar la apariencia de un componente: registro de usuario
Diseños alternativos
Añadir un nuevo diseño para un elemento de menú
Overrides para los parámetros
Cómo funcionan los overrides en un diseño
Overrides para otros elementos
Módulo Chrome: añadir un nuevo estilo a un módulo
Override de idioma: añadir una traducción a nuestro override
Reemplazar tablas y modelos
Resumen
5. Ampliar Joomla! con plugins
¿Qué es un plugin?
¿Cómo funcionan los plugins?
Convenciones de nomenclatura para los plugins
Tipos de plugin: ¿dónde podemos insertarlos?
Autenticación
Captcha
Contenido
Editores
Editores-xtd
Extensión
Búsqueda
Búsqueda inteligente
Sistema
Usuario
Recorrido por algunos plugins base seleccionados
Plugin del sistema: SEF
¿Dónde se activa?
Qué hace?
Plugin de autenticación: carpeta joomla
¿Cómo se ejecuta?
¿Qué hace?
Plugin de contenido: carpeta joomla
¿Cómo se ejecuta?
¿Qué hace?
onBeforeCompileHead
¿Cómo se ejecuta?
¿Qué hace?
Plugin de registro de usuario
Actualizar el archivo override para el registro con aprobación
Añadir el archivo XML
Añadir el archivo PHP al plugin
Añadir los archivos de idioma
Probar el plugin
Empaquetar el plugin
Plugin mejorado para el registro de usuario
Crear el archivo XML del plugin
Crear el archivo XML del formulario
Crear el archivo PHP del plugin
Añadir los archivos de idioma
Probar el plugin
Empaquetar el plugin
Añadir parámetros a nuestro plugin
Utilizar un plugin para modificar clases base
Cómo se importan los plugins
Cómo se cargan las clases de Joomla!
Ejemplo: Modificar la clase JTableNested
Métodos más adecuados para los plugins
Resumen
6. Ampliar Joomla! con módulos
¿Qué es un módulo?
Módulos o componentes
Recorrido por un módulo base
Archivo XML del módulo
Archivo principal del módulo
Clase helper del módulo
Archivo de diseño predeterminado
Mostrar los artículos ordenados por el autor
Estructura del módulo
Archivo XML del módulo
Archivo de entrada: mod_joompro_articles_author.php
Archivo helper
Archivo de diseño: default.php
Archivos de idioma
Validar parámetros en JForm
Comprobar los valores en helper
Tipo de número entero en JForm
Filtro de número entero en JForm
Clase personalizada JFormRule
Valida
Joomla! se ha consolidado como uno de los mejores sistemas de gestión de contenidos de código abierto del mercado. Su programación sencilla y rápida, aporta un nivel de personalización en los sitios Web que no se consigue cambiando parámetros, ni instalando extensiones de otros.
Este libro está enfocado a todos los usuarios, desde aquellos que no tienen experiencia con la aplicación hasta los programadores más expertos que buscan las novedades de las potentes versiones 1.6, 1.7 y 2.5. Está escrito por Mark Dexter y Louis Landry, arquitecto de Joomla! y diseñador de la mayor parte de su nueva estructura.
Esta es una guía de consulta que recopila instrucciones paso a paso para múltiples proyectos, desde tareas como aplicar un override a una plantilla, hasta las técnicas más innovadoras que incluyen componentes, MVC y la estructura de Joomla! Todo el código está disponible en el sitio Web del libro.