Documente Academic
Documente Profesional
Documente Cultură
Una plantilla Joomla! consiste en una serie de archivos dentro del CMS Joomla! que
controlan la presentación del contenido. Una plantilla Joomla! no es un website; no se
puede considerar como un website totalmente diseñado. La plantilla son las bases
fundamentales de diseño definidos para tu sitio Joomla! Para producir el efecto de un
website “completo”, la plantilla trabaja mano a mano con el contenido albergado en la
base de datos Joomla! Un ejemplo de lo explicado lo podemos ver en la Figura 9.1.
fig. 9.1
La figura 9.1, en la parte A muestra la plantilla en uso con contenido de ejemplo. La parte
B muestra la plantilla tal y como se vería en una instalación de Joomla! con muy poco o
nada de contenido. La plantilla define una serie de estilos. Por lo tanto, cuando se inserte,
el contenido va a heredar los estilos definidos en la plantilla como, por ejemplo, los estilos
de link, menús, navegación, tamaño de texto y colores.
Es importante fijarse en que las imágenes asociadas con el contenido (las fotos de las
personas, en la figura) no son parte del template pero que la imagen de la cabecera sí que
lo es.
Usar una plantilla para un CMS como Joomla! tiene una serie de ventajas e
inconvenientes:
No hay una “forma correcta” para crear una página web. Va a depender más de la
experiencia de cada diseñador. Los más enfocados al diseño acostumbran a crear una
“imagen” del layout en un programa gráfico como GIMP o Photoshop y posteriormente
rompen la imagen para ser usada en la maquetación de la web. Los más enfocados a la
tecnología habitualmente saltan directamente al CSS y empiezan a teclear código.
Una plantilla está compuesta por varias carpetas y archivos. Estos archivos van en su
propia carpeta, dentro del ditectorio templates de Joomla!
Por ejemplo, si tenemos 2 plantillas, llamadas voodoo y elements, el directorio queda así:
Code:
/templates/element
/templates/voodoo
templateDetails.xml
Este archivo le dice a Joomla! qué otros archivos son necesarios cuando un usuario
carga una página que usa esta plantilla. (Notar la D mayúscula).
También contiene detalles sobre el autor y los derechos de autor. Su otro uso es para
instalar la plantilla desde la administración del sitio.
index.php
/element/css/template.css
CSS de la plantilla. El nombre de este archivo y la carpeta son opcionales, pero hay
que explicar dónde está ubicado en el index.php. You can call it what you like. Se
suele usar este nombre, pero veremos ventajas en tener más de un CSS.
/element/images/logo.png
Imágenes que vienen con la plantilla. Por razones de organización, muchos
diseñadores las ponen en una carpeta llamada images. Aquí pusimos una imagen
llamada logo.png como ejemplo.[/html]
templateDetails.xml
El fichero templateDetails.xml incluye todos los ficheros que forman parte de una
plantilla. Esto incluye también información como el autor y los derechos de autor
(copyright). Esta información se muestra también en la parte de administración del
sitio en la sección Administrador de Plantillas. A continuación se muestra un ejemplo
de fichero XML:
HTML Code:
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">
<name>TemplateTutorial15</name>
<creationDate>August 2007</creationDate>
<author>Barrie North</author>
<copyright>GPL</copyright>
<authorEmail> compassdesigns@gmail.comThis email address is being protected
from spam bots, you need Javascript enabled to view it </authorEmail>
<authorUrl>www.compassdesigns.net</authorUrl>
<version>1.0</version>
<description>First example template for Chapter 9 of the Joomla
Book</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>js/somejsfile.js</filename>
<filename>images/threecol-l.gif</filename>
<filename>images/threecol-r.gif</filename>
<filename>css/customize.css</filename>
<filename>css/layout.css</filename>
<filename>css/template_css.css</filename>
</files>
<positions>
<position>user1</position>
<position>top</position>
<position>left</position>
<position>banner</position>
<position>right</position>
<position>footer</position>
</positions>
<params>
<param name="colorVariation" type="list" default="white" label="Color Variation"
description="Color variation to use">
<option value="blue">Blue</option>
<option value="red">Red</option>
</param>
</params>
</install>
HTML Code:
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>js/somejsfile.js</filename>
<filename>images/threecol-l.gif</filename>
<filename>images/threecol-r.gif</filename>
<filename>css/customize.css</filename>
<filename>css/layout.css</filename>
<filename>css/template_css.css</filename>
</files>
• La sección “ficheros (files)” contiene todos los ficheros genéricos como el código
fuente PHP para la plantilla o la miniatura de la plantilla para su previsualización.
Cada fichero listado en esta sección se encuentra encerrado por las etiquetas
<filename> </filename>. También incluye cualquier fichero adicional; aquí en el
ejemplo se invoca un un fichero javascript que es requerido por la plantilla.
• Todos los ficheros de imágenes que la plantilla utiliza son listados en la sección
<files>. Cada fichero listado se encuentra definido por las etiquetas <filename>
</filename>. La información de la ruta donde se encuentran los ficheros, es relative
al directorio raíz de la plantilla. Por ejemplo, si la plantilla está en el directorio
llamado ‘Tuplantilla’ (YourTemplate), y todas las imágenes se encuentran en el
directorio ‘imágenes (images)’, dentro de ‘Tuplantilla (YourTemplate), la dirección
correcta de la ubicación es: <filename>images/my_image.jpg</filename>
• Por ultimo ninguna plantilla de estilo (stylesheets) es listada en la sección
ficheros.. <positions></positions>.Las posiciones de los módulos disponibles en la
plantilla.
• <params></params>. Esto describe parámetros que van a ser pasados, para
permitir funciones avanzadas de las plantillas, como cambiar el color de la plantilla.
index.php
Código PHP:
<?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Some say that serving XHTML as text/html is considered harmful. If you actually
understand that statement you are well ahead of the game and beyond this guide.
You can read more at hixie.ch/advocacy/xhtml.
NOTA
Haciendo una página web que cumple los estándar, podrás mostrar un botón “xhtml válido” en la página, esto
no tiene ninguna dificultad en la codificación, o incompresibles etiquetas. Esto significa que el código que
haces utilizando DOCTYPE dice lo que quieres, ¡nada más!
Diseñando tu sitio con estándares puedes reducir un nivel lo que muestras y cómo
quieres mostrarlo.
Aquí tienes algunos prácticos enlaces, que te pueden ayudar a comprender el
DOCTYPE y el modo chapuzas:
• www.quirksmode.org/css/quirksmode.html
• www.alistapart.com/stories/doctype
• www.w3.org/QA/2002/04/Web-Quality
• http://forum.joomla.org/index.php/topic,7537.0.html
http://forum.joomla.org/index.php/topic,6048.0.html
Lo siguiente:
Code:
<?php echo $this->language; ?>
trae el idioma marcado en la configuración global del sitio.
Code:
<jdoc:include type="head" />
En una instalación por defecto esa información para el cabezal traída de la
configuración global incluye:
Código PHP:
Code:
<title>Welcome to the Frontpage</title>
<meta name="description" content="Joomla! - the dynamic portal engine and
content management system" />
<meta name="generator" content="Joomla! 1.5 - Open Source Content
Management" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="joomla, Joomla" />
<link href="http://www.compassdesigns.net/content/frontpage/feed/1/rss/"
rel="alternate" type="application/rss+xml" title="RSS 2.0" />
<link href="http://www.compassdesigns.net/content/frontpage/feed/1/atom/"
rel="alternate" type="application/atom+xml" title="Atom 1.0" />
<script type="text/javascript" src="http://localhost/Joomla-1.5RC2/media/
system/js/mootools.js"></script>
<script type="text/javascript" src="http://localhost/Joomla-1.5RC2/media/
system/js/caption.js"></script>
Code:
<link rel="stylesheet" href="templates/system/css/system.css" type="text/
css" />
<link rel="stylesheet" href="templates/system/css/general.css"
type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/
template.css" type="text/css" />
Los primeros dos archivos, system.css y general.css contienen estilos genéricos de
Joomla. el tercer archivo es todo el CSS específico de la plantilla, en este caso
llamado template.css.
El siguiente trozo:
Code:
<?php echo $this->template ?>
devuelve el nombre de la plantilla actual. Podríamos escribir el nombre
directamente, pero de esta forma el código es más genérico, y al escribir una
plantilla nueva podríamos copiar esto junto con todo el código del cabezal sin tener
que cambiar nada.
El CSS puede estar compuesto por cualquier número de archivos, por ejemplo CSS
condicionales para diferentes navegadores. El que ponemos a continuación
solamente se utilizaría con Internet Explorer 6:
Code:
<!--[if lte IE 6]>
<link href="templates/<?php echo $this->template ?>/css/ieonly.css"
rel="stylesheet" type="text/css" />
<![endif]-->
Este otro es una técnica para usar parámetros en una plantilla:
Code:
<link rel="stylesheet" href="templates/<?php echo $this->template ?
>/css/<?php echo $this->params->get('colorVariation'); ?>.css" type="text/
css"
Cuerpo de plantilla en blanco para Joomla 1.5
¡La creación de nuestra primera plantilla será muy muy fácil! ¿Listos?
Todo lo que necesitamos hacer es usar una declaración Joomla que inserta el
contenido de los módulos y el mainbody.
HTML Code:
<body>
<?php echo $mainframe->getCfg('sitename');?><br />
<jdoc:include type="module" name="breadcrumbs" />
<jdoc:include type="modules" name="top" />
<jdoc:include type="modules" name="left" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="right" />
</body>
En este punto (si hace un preview), nuestro sitio no se ve muy impresionante.
El objetivo es tratar de entrar lo más cerca posible del atributo semántico como sea
posible. Desde un punto de vista Web, significa que una página puede ser leída por
cualquier persona [md] un navegador, un spider, o un screen reader. El diseño semántico
es la piedra angular de la accesibilidad.
NOTA
Lo que tenemos aquí es en realidad sólo el potencial de diseño semántico. Si tuviéramos que ir adelante y poner al
azar módulos en lugares aleatorios, tendríamos un lío. Una consideración importante para sitios CMS es que la
plantilla es tan buena como la totalidad de su contenido. Esto es lo que a menudo saltan los diseñadores cuando se
trata de validar sus sitios.
Notará que hemos utilizado la primera de una serie de comandos específicos para Joomla
para crear este producto:
Código PHP:
<?php echo $mainframe->getCfg('sitename');?><br />
<jdoc:include type="module" name="breadcrumbs" />
<jdoc:include type="modules" name="top" />
<jdoc:include type="modules" name="left" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="right" />
La declaración PHP eco simplemente produce un string desde el archivo configuration.php.
En este caso, estamos usando el nombre del sitio; Podríamos fácilmente haber tenido lo
siguiente:
Código PHP:
The name of this site is <?php echo $mainframe->getCfg('sitename');?
><br />
The administrator email is <?php echo $mainframe->getCfg('mailfrom');?
><br />
This template is in the <?php echo $this->template?> directory<br />
NOTA
Curiosamente, parece ser que se pueden tener múltiples instancias de componentes de salida. No estoy seguro de
para qué las quieres, ¡pero creo que tenía que hacertelo saber! Podría ser un bug (error).
Esta línea inserta la salida para la instalación de un módulo:
Código PHP:
<jdoc:include type="modules" name="right" />
La sintaxis completa es realmente
Código PHP:
<jdoc:include type="modules" name="LOCATION" style="OPTION" />
Nos fijamos en las diversas opciones de estilos en la sección sobre los módulos más
adelante en este capítulo.
CSSTemplateTutorial Paso 1
En este momento tenemos una plantilla muy vacía. He creado una plantilla instalable que
se encuentra disponible en Compass library::: CSSTemplateTutorialStep1.zip.
Esto instalará una plantilla que sólo tiene dos archivos, el index.php y
templateDetails.xml. He eliminado las referencias a otros archivos para dar una estructura
vacía de salida sin CSS. Esta es en realidad una utilidad de diagnóstico de plantilla; Puede
instalar y realizar el seguimiento de los errores que se están produciendo con un
componente o módulo.
Utilizaremos el CSS puro para hacer una disposición de 3 columnas para la plantilla de
Joomla!. También haremos una disposición "fluida". Hay dos tipos principales de
disposición del diseño: fijo y fluido, y ambos se refieren a "cómo se controla el ancho de la
página".
Incluso las compañías grandes caen a veces en la trampa de usar tablas según lo que
hemos podido ver por una controversia reciente sobre la nueva web inglesa de Disney:
disney.co.uk:
Hay un par de problemas más relacionados con el uso de tablas para definir la
maquetación del diseño.
• Son difíciles de mantener. Para cambiar algo tienes que calcular lo que están
haciendo todas las etiquetas de la tabla como td/tr. Con el CSS hay a penas algunas
líneas a examinar.
• El contenido no se puede ordenar. Muchas personas usuarios de Internet no ven las
páginas en un navegador, sino que usan navegadores textuales o navegadores de
voz que examinan el contenido de la pantalla de izquierda-arriba a derecha-abajo.
Esto significa que primero ven todo lo que hay en la cabecera y en la columna
izquierda (para una disposición de 3 columnas) antes de llegar a ver el contenido de
la columna central, que seguramente es la que tiene el contenido importante. Un
diseño que usa CSS lleva el contenido ordenado dentro del código fuente de manera
que puede ser reorganizado, piensa que tal vez tú visitante más importante sea
Google, y éste usa un programa lector de pantalla a la hora de interpretar el
contenido de tu página.
Es interesante que conozcas bien como funcionan las hojas de estilo en cascada (CSS) ya
que con ellas puedes colocar los elementos de contenido de varias maneras. Para una
introducción rápida, una buena fuente es: “Brainjar's CSS Positioning” (posicionamiento
con CSS, por Brainjar)..
Aunque, si eres nuevo en el CSS, sería bueno que leyeras una guía del iniciación. Aquí
tienes algunas sugerencias:
• Kevin Hale's An Overview of Current CSS Layout Techniques
http://particletree.com/features/an-...ut-techniques/
• htmldog's CSS Beginner's Guide
www.htmldog.com/guides/cssbeginner/
• yourhtmlsource.com
www.yourhtmlsource.com/stylesheets/
Los diseños web actuales usan CSS en vez de tablas para posicionar elementos. Es difícil
de aprender a usar pero es una inversión que merece la pena. Hay muchos recursos (no-
Joomla!) disponibles para ayudarte.
Los estilos del CSS están definidos aquí, dentro del tag <head></head> del archivo para
mostrar su funcionamiento, pero en realidad deberían estar definidos dentro del archivo
template.css.
Todo queda dentro de un elemento llamado #wrap, que tiene un ancho fluido (variable)
que puede ir desde los 760px a los 960px.
En la figura 9,4, las columnas izquierda, media y derecha poseen cada una su propio
elemento. Las 3 están flotadas a la izquierda, y tiene asignado un porcentaje del ancho
total. Si sumamos esos 3 porcentajes asignados, obtenemos 100%.
El estilo "clear:both" en el pie indica al navegador que "detenga la flotación" y asigne al
pie el ancho total sumado de las 3 columnas. Esto también se puede hacer con técnicas
más avanzadas que veremos al construir nuestra segunda plantilla.
Entre las columnas es normal dejar cierto espacio o "canal", que podríamos lograr
marcando un "padding"en el estilo de las columnas. Pero esto fallaría en Internet Explorer
por una falla de interpretación del CSS para el cálculo de los anchos, Evitamos este
problema no utilizando "padding" y en vez de eso agregando otro elemento <div> dentro
de cada columna.
Añadimos al CSS:
Code:
.inside {padding:10px;}
#content {
float:left;
width:60%;
overflow:hidden;
}
#footer {
clear:both;
}
.inside {
padding:10px;
}
#sidebar,#sidebar-2 {
float:left;
width:20%;
overflow:hidden;
}
Truco: Acortando el código CSS
Podemos usar estilos "taquigráficos " en cada definición de estilo. Después de crear los estilos,
reemplazamos el código largo por el código corto. La sintaxis es:
font: font-size |font-style | font-variant | font-weight | line-height | font-family
font-size:1em;
font-family:Arial,Helvetica,sans-serif;
font-style:italic;
font-weight:bold;
line-height:1.3em;
por esto:
Code:
Esta plantilla simple demuestra dos de las ventajas de las disposiciones con CSS
sobre las basadas en tablas: es menos código y es más fácil mantener. Su limitación
es que no ordena el código fuente por importancia, y de esta forma los motores de
búsqueda no leen primero los datos más importantes (en Joomla! los datos
importantes provienen de los componentes). Para mejorar eso usamos una técnica
más avanzada llamada flotador jerarquizado.
#wrap {
min-width:760px;
max-width:960px;
width:auto !important;
text-align:left;
margin:0 auto;
}
#content {
float:left;
width:60%;
overflow:hidden;
}
#footer {
clear:both;
}
.inside {
padding:10px;
}
#sidebar,#sidebar-2 {
float:left;
width:20%;
overflow:hidden;
}
Lo primero que hicimos fue centrar la página. Para navegadores que siguen los
estándares, basta con poner margin:0 10% para centrar la página, pero IE no lo
entiende, entonces centramos el texto de toda la página y dentro de cada columna
lo volvemos a alinear a la izquierda.
Incluimos un ancho mínimo y máximo que es soportado por IE7 pero no por IE6.
Para IE6 hicimos un truco: va a ignorar la declaración !important y mostrar un ancho
plano antiguo de 960 px.
NOTA
Parece raro que las columnas tengan ancho definido en porcentaje pero estén contenidas en un <div> que es
fijo. La explicación es:
* este modo hace muy flexible a nuestra plantilla. Si queremos poner botones de cambio de ancho,
solamente deberemos cambiar un valor.
* el ancho máximo evita que los usuarios que tienen monitores demasiado grandes reciban tipografías tan
gruesas que pierdan legibilidad por su propio tamaño exagerado (más de 900 px es incómodo).
También agregamos una norma de estilo a las columnas: overflow:hidden. Esto hace
que la página se "quiebre" con más uniformidad si reducimos el ancho.
Code:
* {
margin:0;
padding:0;
}
h1,h2,h3,h4,h5,h6,p,blockquote,form,label,ul,ol,dl,fieldset,address {
margin:0.5em 0;
}
li,dd {
margin-left:1em;
}
fieldset {
padding:.5em;
}
body {
font-size:76%;
font-family:Verdana, Arial, Helvetica, sans-serif;
line-height:1.3;
}
Le damos a todo margen y padding cero, y un margen inferior. Esto le da
consistencia a lo que el navegador vaya a mostrar. Más datos sobre este tema (en
inglés): http://clagnut.com/blog/1287/
Ponemos el tamaño de fuente en 76%. Esto es para tener mayor consistencia del
tamaño de letra en los distintos navegadores. Después marcamos todos los tamaños
de letra en em. Con line-height:1.3 aumentamos la legibilidad. Con esto, el usuario
va a poder reasignar los tamaños de letra desde su propio navegador. (más datos en
este libro: ( Owen Briggs)
Es frecuente encontrar en una plantilla Joomla! algunas reglas más específicas que
sobreescriben a otras, en particular si la clase está en una tabla:
Code:
.moduletable
table.moduletable
moduletable es el nombre del <div> que contiene un módulo.
table.moduletable aplica el estilo solamente a tablas con la definición
"class=moduletable ".
Code:
a.contentpagetitle:link
.contentpagetitle a:link
a.contentpagetitle:link se aplicará a cualquier etiqueta con clase .contentpagetitle
que contenga un hipervínculo.
.contentpagetitle a:link se aplica a cualquier elemento dentro de un .contentpagetitle
que sea un hipervínculo.
La especificidad no es fácil de entender; suele ser más fácil comenzar con estilos
muy generales y afinarlos después
Todavía nuestra plantilla está utilizando muchas tablas. Para reducir su cantidad
vamos a usar parámetros de estilo en los jdoc:include.
Code:
OPTION="horz"
hace que el módulo aparezca horizontalmente. Cada módulo es mostrado es una
celda de una tabla. Ejemplo:
Code:
<table cellspacing="1" cellpadding="0" border="0" width="100%">
<tr>
<td valign="top">
<?php modChrome_table($module, $params, $attribs); ?>
</td>
</tr>
</table>
Code:
OPTION="xhtml"
hace que el módulo se muestre en un elemento div simple. Ejemplo:
Code:
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
Code:
OPTION="rounded"
Hace que el módulo aparezca en un formato que permite, por ejemplo, esquinas
redondeadas. Si usamos este estilo la clase del <div> cambia de moduletable a
module. Ejemplo de la salida:
Code:
div class="module<?php echo $params->get('moduleclass_sfx'); ?>">
<div>
<div>
<div>
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
</div>
</div>
</div>
Code:
OPTION="none"
el módulo aparece como una salida cruda sin elementos ni título. Ejemplo:
Code:
echo $module->content;
Las opciones que usan CSS (xhtml y rounded) crean un código más corto. No se
recomienda usar table (defecto) o horz si no es necesario.
El archivo modules.php contiene varias opciones para presentar los módulos, pero es
podemos añadir opciones propias.
En nuestra plantilla vamos a ponerle estilo "xhtml" a todos nuestros módulos:
Code:
<body>
<div id="wrap">
<div id="header">
<div class="inside">
<h1><?php echo $mainframe->getCfg('sitename');?></h1>
<jdoc:include type="modules" name="top" style="xhtml" />
</div>
</div>
<div id="sidebar">
<div class="inside">
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
</div>
<div id="content">
<div class="inside">
<jdoc:include type="module" name="breadcrumbs" style="none" />
<jdoc:include type="component" /> </div>
</div>
<div id="sidebar-2">
<div class="inside">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>
</div>
<div id="footer">
<div class="inside">
<jdoc:include type="modules" name="footer" style="xhtml" />
</div>
</div>
<!--end of wrap-->
</body>
No marcamos el estilo de módulo en <jdoc:include type="component" /> porque no
es un módulo.
El mínimo que hay que saber
En 1.5 la presentación de los módulos puede ser completamente personalizada, o podemos usar alguna salida
predistribuida. Todas estas opciones son llamadas chrome del módulo.
Pusimos el título del sitio entre etiquetas <H1> . Esto es semánticamente correcto y
ayuda a los SEO. También quitaremos los colores de fondo de los <div>
Agregaremos CSS para darle estilo a los módulos y ponerle color de fondo y borde a
los títulos de los módulos.
El CSS va quedando así:
Code:
* {
margin:0;
padding:0;
}
h1,h2,h3,h4,h5,h6,p,blockquote,form,label,ul,ol,dl,fieldset,address {
margin:0.5em 0;
}
li,dd {
margin-left:1em;
}
fieldset {
padding:.5em;
}
body {
font-size:76%;
font-family:Verdana, Arial, Helvetica, sans-serif;
line-height:1.3;
margin:1em 0;
}
#wrap {
border:1px solid #999;
}
#header {
border-bottom:1px solid #999;
}
#footer {
border-top:1px solid #999;
}
a {
text-decoration:none;
}
a:hover {
text-decoration:underline;
}
h1,.componentheading {
font-size:1.7em;
}
h2,.contentheading {
font-size:1.5em;
}
h3 {
font-size:1.3em;
}
h4 {
font-size:1.2em;
}
h5 {
font-size:1.1em;
}
h6 {
font-size:1em;
font-weight:700;
}
#footer,.small,.createdate,.modifydate,.mosimage_caption {
font:0.8em Arial,Helvetica,sans-serif;
color:#999;
}
.moduletable {
margin-bottom:1em;
border:1px #CCC solid;
padding:0 10px;
}
.moduletable h3 {
background:#666;
color:#fff;
text-align:center;
font-size:1.1em;
margin:0 -10px 0.5em;
padding:0.25em 0;
}
Nota
Algunos menús en la instalación por defecto tienen un sufijo de menú en las propiedades de módulo de _menu.
Hemos quitado ese parámetro.
fig. 9.6 Plantilla básica con estilo para los títulos de los módulos
Otra ventaja de las listas es que los navegadores de modo texto, lectores de
pantalla, navegadores que no soportan CSS o lo tienen desactivado y robots de
búsqueda podrán acceden con más facilidad a nuestro sitio.
Si usamos menús con CSS encontraremos mucho código para reutilizar en sitios de
desarrolladores CSS. http://css.maxdesign.com.au/listamatic/ es uno de estos sitios,
allí tenemos muchas listas distintas con el código para utilizarlas. Vamos a hacer un
cambio en el código sugerido allí para adaptar esos menús a Joomla!
Maxdesign usa:
Code:
<div id="navcontainer">
<ul id="navlist">
<li id="active"><a href=" #" id="current">Item one</a></li>
<li><a href="http://www.compassdesigns.net/tutorials/joomla-
tutorials/joomla-1.5-template-tutorial_4.html">Item two</a></li>
<li><a xhref="http://www.compassdesigns.net/tutorials/joomla-
tutorials/joomla-1.5-template-tutorial_4.html">Item three</a></li>
<li><a href="http://www.compassdesigns.net/tutorials/joomla-
tutorials/joomla-1.5-template-tutorial_4.html">Item four</a></li>
<li><a href="http://www.compassdesigns.net/tutorials/joomla-
tutorials/joomla-1.5-template-tutorial_4.html">Item five</a></li>
</ul>
</div>
Vemos que hay un <div> contenedor llamado navcontainer, y el <ul> tiene "navlist"
como id. Para reproducir esto en Joomla! vamos a cambiarle algo al <div>.
.moduletablemenu {
color:#333;
margin-bottom:1em;
padding:0;
}
.moduletablemenu h3 {
background:#666;
color:#fff;
text-align:center;
font-size:1.1em;
border-bottom:1px solid #fff;
margin:0;
padding:0.25em 0;
}
.moduletablemenu ul {
list-style:none;
margin:0;
padding:0;
}
.moduletablemenu li {
border-bottom:1px solid #ccc;
margin:0;
}
.moduletablemenu li a {
display:block;
border-left:10px solid #333;
border-right:10px solid #9D9D9D;
background-color:#666;
color:#fff;
text-decoration:none;
padding:3px 5px 3px 0.5em;
}
html>body .moduletablemenu li a {
width:auto;
}
.moduletablemenu li a:hover,a#active_menu:link,a#active_menu:visited {
border-left:10px solid #1c64d1;
border-right:10px solid #5ba3e0;
background-color:#2586d7;
color:#fff;
}
Agregaremos el sufijo menu (en este caso no separado por guión) a todos los
módulos a los que les queremos dar estilo. Esto produce un menú como el de la
figura 9.7.
fig. 9.7