43

Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Embed Size (px)

DESCRIPTION

Taller de desarrollo de plantillas para Joomla! 1.5 y 1.7 impartido por Sergio Iglesias en el Joomla!Day 2011 España celebrado en Zaragoza

Citation preview

Page 1: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias
Page 2: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias
Page 3: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Sergio Iglesias Sánchez

9 y 10 / Noviembre /

2011 /

Page 4: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Plantillas Joomla!

Desarrollo de plantillasJoomla! 1.5 y 1.7

9 y 10 / Noviembre /

2011 /

Page 5: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Desarrollo de Plantillas Joomla! 1.5

Plantillas Joomla!

- XHTML + CSS + PHP- Qué es una plantilla- Frameworks de desarrollo- Estructura básica de archivos- templateDetails.xml- API Joomla!- Templates Overrides- Ejemplo plantilla

· index.php + template.css + params.ini- Novedades y diferencias en Joomla! 1.7- Curiosidades

Page 6: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

xHTML + CSS + PHP

Plantillas Joomla!

XHTMLXHTML Define la estructura de la información. Extensible Hypertext Markup Language (lenguaje extensible de

marcado de hipertexto). El lenguaje HTML no cumple al 100% las reglas del estándar XML. Para

poder aprovechar las ventajas del XML, se hizo necesaria una evolución. del HTML hacia el xHTML, que no es más que una redefinición del lenguaje haciendo más estrictas algunas de sus formulaciones básicas (para que sea totalmente compatible con XML). Entre las reglas que forman parte del xHTML, pero no del HTML,

podemos citar la obligación de cerrar todas las etiquetas y el uso exclusivo de minúsculas para las palabras del lenguaje (etiquetas). Es un estándar el W3C.

Page 7: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

xHTML + CSS + PHP

Plantillas Joomla!

CSSCSS Define el diseño. Cascading Style Sheets (hojas de estilo en cascada). Tres formas de aplicar:

CSS externa → recomendada.CSS interna.CSS en línea.

Ventajas:Separa el diseño del contenido.Mejora el mantenimiento.HTML más claro de entender (e indexable).Distinto diseño para dispositivo: impresora, PDA...

Es un estándar el W3C.

Page 8: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

xHTML + CSS + PHP

Plantillas Joomla!

PHPPHP Lenguaje de programación del lado de servidor. Pre-procesador Hipertexto

(lenguaje de programación interpretado). Acceso a base de datos (MySQL). Ventajas:

Desarrollo de páginas web dinámicas.Lenguaje multiplataforma.

Cuidado con versiones PHP 5 y PHP 6. Aplicaciones creadas con PHP:

Joomla!SugarCRMFaceBookTuenti

Page 9: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Qué es una plantilla

Plantillas Joomla!

Es la base de la aplicación de entrega de contenidos. Formada por diferentes archivos que controlan la estructura y el

diseño de la página y de sus contenidos. Ventajas:

Proporciona una sepración entre la estructura (forma), contenido y estilo.

HTML/xHTML/HTML5 → estructuraDB → contenidoCSS → estilo

Page 10: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Frameworks de desarrollo

Plantillas Joomla!

Qué esQué es Estructura de software compuesta de componentes personalizables e

intercambiables para el desarrollo de una aplicación. Ventajas:

Acelerar proceso de desarrollo.Reutilizar código ya existente.Promover buenas prácticas de desarrollo (uso de patrones).

Frameworks de plantillas en Joomla!Gantry: http://www.gantry-framework.org/

Warp: http://www.yootheme.com/warp/

ZenGrid: http://www.joomlabamboo.com/blog/template-news/introducing-zen-grid-framework-2

T3: http://wiki.joomlart.com/wiki/JA_Template_Framework/Overview

YJSG: http://yjsimplegrid.com/

Page 11: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Estructura básica de archivos

Plantillas Joomla!

Page 12: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Estructura básica de archivos

Plantillas Joomla!

index.html: añade seguridad a las carpetas. Es un archivo vacío. index.php: contiene el HTML que define la estructura de la plantilla y

las llamadas PHP a la API de Joomla! (punto de entrada a la plantilla). params.ini: guarda los parámetros personalizables desde el

administrador. template_thumbnail.png: imagen en miniatura de la plantilla. template_preview.png: sólo para Joomla! 1.7 css: carpeta con archivos CSS (hojas de estilo). template.css: archivo principal con el código de estilo de la plantilla. images: carpeta con las imágenes utilizadas en la plantilla. html: contiene vistas personalizadas para distintos componentes y

módulos (técnica template overrides). templateDetails.xml: contiene información necesaria para la correcta

instalación de la plantilla. Define los parámetros personalizables.

Page 13: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

Plantillas Joomla!

Imprescindible para que la plantilla sea reconocida por el administrador.

Se utiliza como instalador de la plantillaTodo lo que no esté definido en él, no se instala.

Datos divididos en 4 partes:Datos.Archivos.Posiciones.Parámetros.

Los datos de los parámetros podrán ser utilizados desde el back para cambiar la visualización.

Page 14: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

• Datos específicos de la plantilla: versión, autor, email, página web, año, licencia y descripción.

• Cambios en Joomla! 1.7

Plantillas Joomla!

Page 15: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

• Especificación de los archivos utilizados en el diseño.

• Para incluir una carpeta entera utilizar:

<folder>nombre_carpeta</folder>

Plantillas Joomla!

Page 16: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

• Qué y cuántas posiciones tendremos en nuestro sitio (para mostrar contenido en la plantilla.

Page 17: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

• Parámetros: para ser manejados desde el back. Hace que una plantilla sea más versátil.

• Este apartado está íntimamente ligado al archivo params.ini• Cambios en Joomla! 1.7

Plantillas Joomla!

Page 18: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

templateDetails.xml

Plantillas Joomla!

Page 19: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

API Joomla! – Directivas JDoc

Plantillas Joomla!

<jdoc:include type=”head”/>Va dentro de la cabecera HTML (head).Muestra el title, metatags, feed y js (MooTools).

$this->templateObtenemos el nombre de la carpeta que contiene nuestra plantilla.Uso: para cargar css, favicon y cualquier otro archivo.

$mainframe→getCfg('sitename')Obtenemos el nombre del sitio.

<jdoc:include type=”modules” name=”posicion” style=”estilo”/>Indica la carga de un módulo en particular y de una manera específica (parámetros name y style).

name: posiciones cargadas en el fichero templateDetails.xmlstyle: table (tabla vertical = columna), horz (tabla horizontal = fila), xhtml (divs), rounde (divs anidados), raw (sin contenedor).

Page 20: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

API Joomla! – Directivas JDoc

Plantillas Joomla!

<jdoc:include type=”component”/>Cargamos contenido principal del sitio: artículos, secciones, categorías, componentes...

if($this->countModules('nombre_posicion')){}Condicional para saber si hay algún módulo en una posición determinada.

$this->baseurlContiene la dirección base de nuestro sitio

$this->languageContiene el idioma en el que se encuentra nuestro sitio (es-ES, en-GB...).

Page 21: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Templates Overrides

Plantillas Joomla!

Técnica para redefinir la presentación por pantalla de un componente o módulo de Joomla!

“Clonación” de la vista de la extensión. Se incluye a partir de la versión 1.5. Ventajas:

Personalizar el portal sin preocuparse de actualizaciones de extensiones.Validación de estándares propuestos por el W3C.Conseguir un nivel adecuado de accesibilidad (algunas extensiones, inclusos las propias, no cumplen accesibilidad).

Page 22: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Templates Overrides

Plantillas Joomla!

USOUSO Crear una carpeta llamada html dentro de nuestra plantilla

templates/plantilla/html/ Dentro de esta carpeta meter las carpetas de los componentes y/o

módulos que queramos redefinir o “clonar”. Copiar el contenido de la carpeta tmpl (vistas) y realizar en ellos las

modificaciones/adaptaciones necesarias. Joomla!, al generar la página web, mira si hay en la plantilla una

redefinición o “clon”. Si la encuentra, la utiliza.

Page 23: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – index.php

Plantillas Joomla!

Page 24: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – index.php

Plantillas Joomla!

Page 25: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – index.php

Plantillas Joomla!

Page 26: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Insertar estilos para la maquetación de la plantilla. Conocer clases que Joomla! carga por defecto:

componentheading: muestra título del componente.contentheading: muestra título de los artículos.buttonheading: muestra iconos PDF, imptimir y enviar amigo.small: utilizado en varios elementos (como autor de artículo).createdate: muestra fecha creación artículo.readon: utilizada por el link de “leer más...”.article_separator: utilizada por etiqueta <span> que separa artículos entre sí.moduletable(+ sufijo): carga los div (y sufijo que se da desde back).h3: títulos de los módulos que se cargan con esta etiqueta.active: para item del menú activo.item: cada elemento del menú (+ su ID).parent: cuando hay sub-items (para elemento padre).

Page 27: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Otras clases:button: asociada a elementos tipo botón.inputbox: asociada a elementos text-input.pagenav: asociada a paginación de artículos.moditydate: asociada a fecha de modificación de artículos.sectiontableentre1/sectiointableentry2: asociada a datos en tablas.

Page 28: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Page 29: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Page 30: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Page 31: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Page 32: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – template.css

Plantillas Joomla!

Page 33: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – params.ini

Plantillas Joomla!

Íntimamente ligada a templateDetails.xmlSus parámetros se ponen en este fichero

Declaración:nombre_del_parametro_1=valor_1nombre_del_parametro_2=valor_2nombre_del_parametro_3=valor_3

Llamada desde PHP:<?php echo $this->params->get('nombre_del_parametro'); ?>

Añadir estilos asociados en template.css

Page 34: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Ejemplo plantilla – params.ini

Plantillas Joomla!

Page 35: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Novedades y diferencias en Joomla! 1.7

Plantillas Joomla!

Algunas novedadesAlgunas novedades Salida de contenido sin tablas: todos los archivos de salida están

escritos en XHTML 1.0 Strict. Template styles (estilos de plantilla): creación de variaciones en la

plantilla para una o varias páginas que pueden ser asignadas de forma específica.

Page 36: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Novedades y diferencias en Joomla! 1.7

Plantillas Joomla!

templateDetails.xmltemplateDetails.xml

Page 37: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Novedades y diferencias en Joomla! 1.7

Plantillas Joomla!

templateDetails.xml (en Joomla! 1.5)templateDetails.xml (en Joomla! 1.5)

Page 38: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Novedades y diferencias en Joomla! 1.7

Plantillas Joomla!

templateDetails.xml (en Joomla! 1.7)templateDetails.xml (en Joomla! 1.7)

Page 39: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Novedades y diferencias en Joomla! 1.7

Plantillas Joomla!

index.phpindex.php En Joomla! 1.5 definíamos la variable mainframe así:

global $mainframe;

En Joomla! 1.6 y 1.7:$mainframe = JFactory::getApplication();

Page 40: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Curiosidades

Plantillas Joomla!

Algunas curiosidades y pequeños tipsAlgunas curiosidades y pequeños tips Posible rediseño de joomla.org

https://plus.google.com/photos/108983221798389280265/albums/5643812923156404913

Posible rediseño del administradorhttps://plus.google.com/photos/108983221798389280265/albums/5625370216902790289

Plantillas para administrador: no solo hay plantillas para la parte fronthttp://www.sergioiglesias.net/blog/joomla/119-plantillas-gratis-para-adminitrador-de-joomla-15-y-16

Mostrar posiciones en plantillahttp://www.sergioiglesias.net/blog/joomla/90-visualizacion-de-posiciones-en-plantillas-16-con-tp1

Añadir teclas de acceso rápido: accesskeyhttp://www.sergioiglesias.net/blog/joomla/89-anadir-etiquetas-accesskey-en-joomla-16

Ordenar módulos y artículos Definición propia de módulos en template

<jdoc:include type="modules" name="blog" style="blog" />Ver html/modules.php

Page 41: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Publicidad

Plantillas Joomla!

Libro Joomla! 1.6 – Guía de referencia en españolLibro Joomla! 1.6 – Guía de referencia en español Guía de referencia en español Minitutoriales

Introducción Novedades en Joomla! 1.6 Enlaces de interés Joomla! Acceso al panel de control Sitio Usuarios Menús Contenido Componentes Extensiones Ayuda

Instalar XAMPP Instalar Joomla! 1.6 Gestionar permisos Crear un artículo Crear un contacto Integrar noticias Añadir un módulo submenú Habilitar la vista de módulos Añadir accesskey Integrar DNI electrónico Enlaces de interés

www.librojoomla16.comwww.librojoomla16.com

Page 42: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Publicidad

Plantillas Joomla!

Sergio IglesiasSergio Iglesias www.sergioiglesias.net twitter.com/sergiois

Page 43: Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Iglesias

Curso “Nombre del Curso”. Ciudad.

Fin del taller

Plantillas Joomla!

Gracias por vuestra atenciónGracias por vuestra atención