1. Joomla! 1.5.x
CRIF Las Acacias
Noviembre 2008
Juan Félix Mateos
2. ¿Qué es Joomla!?
Un CMS (Content Managemente System) o
gestor de contenidos basado en
tecnologías web (como XHTML, CSS,
JavaScript y PHP), válido tanto para Internet
como para intranets, de código abierto
(open source), y gratuito.
3. ¿Para qué sirve Joomla!?
Para presentar y gestionar contenidos de
diversa naturaleza a través de la Web.
Artículos
Enlaces web
Contactos
Ofreciendo al destinatario final ciertas
opciones de interactuación:
Enviar sus propios artículos
Participar en encuestas.
Colaborar en la gestión/administración del sitio.
4. ¿Y eso es todo?
No. Las posibilidades de Joomla! son infinitas
porque puede ser ampliado mediante:
Componentes
Módulos
Plug-ins
Plantillas
Lenguajes (idiomas)
5. ¿Quién debería utilizar Joomla!?
Cualquiera que desee presentar información a
través de la Web y se reconozca en alguno de los
siguientes perfiles:
Ignorante: No tiene conocimientos para programar un sitio
web por sí mismo.
Estresado: Carece de tiempo para programar un sitio web
por sí mismo.
Interesado: Quiere aprovecharse del trabajo ya
desarrollado por otros.
Cotilla: Le gusta estar a la última en tecnología.
Vago: Aplica como primer mandamiento la ley del mínimo
esfuerzo.
En definitiva, casi cualquiera…
6. ¿Y si no me convence Joomla!?
Hay otros CMS
Drupal
Xoops
http://www.opensourcecms.com/
Pero también hay otros sistemas de gestión de contenidos como los
Blogs, sistemas de teleformación, sistemas de documentación,
galerías multimedia, foros, comercio electrónico, groupware, …
www.wordpress.org
Moodle
Wiki
Gallery
Simple Machines Forum
osCommerce
aTutor
7. ¿Qué quiere decir Joomla!?
Es la trascripción de una palabra swahili que
significa quot;todos juntosquot; o quot;como una sola
piezaquot;.
8. ¿Qué necesito para instalar Joomla!?
Un servidor Web (Apache 1.3 o superior –
Recomendado 2.x) dotado de:
PHP (4.3.10 o superior) - Recomendado 5.2
Servidor de bases de datos MySQL (3.23 o
superior) – Recomendado 4.1.x
Esto puede obtenerse:
Contratando un servicio de alojamiento (hosting),
que no tiene por qué ser de pago.
Instalando un servidor local en nuestro propio
ordenador.
10. Programa del curso
Instalación de Joomla!
Remoto
Local
¿Linux (Ubuntu sobre VirtualBox)?
Descripción de Joomla!
Extensiones
Comentarios
Foros
Agendas
…
Desarrollo de plantillas
Desarrollo de extensiones
12. Instalar Joomla! en remoto 1
Si disponemos de la opción de descomprimir
archivos en remoto subiremos directamente el
archivo Joomla_1.5.8-Stable-Full_Package.zip, y lo
descomprimiremos en la carpeta raíz de nuestro
alojamiento; en caso contrario, lo
descomprimiremos en local y subiremos los
archivos descomprimidos a la carpeta raíz de
nuestro alojamiento.
http://filezilla-project.org/
Servidor: ftp.villatic.org
Usuario: crifjoomlaxx@villatic.org
Contraseña: crifjoomla
Puerto: 21
13. Instalar Joomla! en remoto 2
Seleccionar el idioma.
1.
Corregir el problema de display_errors con
2.
un archivo php.ini en las carpetas raíz,
administrator e installation.
<?php
display_errors = 0;
?>
Revisar la licencia.
3.
14. Instalar Joomla! en remoto 3
Introducir los datos de la base de datos (si
4.
se desea, utilizar la configuración
avanzada):
Tipo: mysql
Servidor: localhost
Usuario: villa29_cjxx
Contraseña: crifjoomla
Nombre bd: villa29_crifjoomlaxx
Introducir los datos de la configuración FTP
5.
15. Instalar Joomla! en remoto 4
Introducir el nombre del sitio, los datos del
6.
administrador e instalar los datos de
ejemplo predeterminados haciendo clic
sobre el botón correspondiente.
Borrar la carpeta installation y acceder a la
7.
zona de portada o a la de administración.
16. Instalar phpMyAdmin en remoto
Obtener los archivos de phpMyAdmin de
1.
www.phpmyadmin.net.
Subir los archivos mediante FTP a una
2.
carpeta nueva llamada phpmyadmin.
Renombrar el archivo config.sample.inc.php
3.
como config.inc.php.
Escribir una clave secreta blowfish en la
4.
línea 17 del archivo config.inc.php.
17. Instalar WAMP y configurar
phpMyAdmin en local
Una vez instalado WAMP, acceder a phpMyAdmin
y, mediante la opción Privilegios, asignar la
contraseña crifjoomla al usuario root, tanto del
servidor localhost como del servidor 127.0.0.1.
Después, acceder al archivo
C:wampappsphpmyadmin2.11.5config.inc.php y
escribir la misma contraseña en la línea 73:
$cfg['Servers'][$i]['password'] = 'crifjoomla';
18. Crear la base de datos para Joomla! con
phpMyAdmin en local
Crear una base de datos llamada crifjoomla y con
el cotejamiento
utf8_general_ci: No reconoce la ñ ni las letras
acentuadas pero es una de las más rápidas.
utf8_spanish_ci: Español moderno; reconoce la ñ pero
no la ll ni la ch.
utf8_general2_ci: Español tradicional; reconoce la ñ, la ll
y la ch, pero es más lento.
Crear un usuario llamado crifjoomla y con la
contraseña crifjoomla y en el servidor localhost.
Asignar al usuario crifjoomla todos los privilegios
de la base de datos crifjoomla.
19. Instalar Joomla! en local
Crear una carpeta llamada cursojoomla dentro de
C:wampwww y copiar en ella los archivos de
Joomla! 1.5.8.
Acceder a la página web http://localhost y
seleccionar en ella el proyecto cursojoomla para
iniciar la instalación.
En este caso, por tratarse del servidor de desarrollo,
conviene dejar activada la directiva display_errors.
Repetir los mismos pasos que en el caso remoto,
pero sin instalar los datos de ejemplo.
20. Las contraseñas en Joomla! 1.5
Las contraseñas de Joomla! 1.5 se almacenan en
la tabla jos_users.
Su formato es cadena1:cadena2, en el que
cadena1 y cadena2 son 32 caracteres (letras
mayúsculas, minúsculas y números).
cadena2 se elige al azar.
cadena1 es el hash md5 calculado sobre la
cadena resultante de unir cadena2 al final de la
contraseña elegida.
http://md5-hash-online.waraxe.us/
22. Cambiar el idioma
Subir los paquetes de idioma obtenidos de
1.
joomlaspanish.org mediante Extensiones>
Instalar/Desinstalar> Subir paquete.
Configurar estos nuevos paquetes como
2.
predeterminados a través de Extensiones>
Gestor de idiomas
23. Cambiar la zona horaria
En Sitio> Configuración global> Servidor>
Configuración de la localización,
seleccionar UTC +01:00 y pulsar Aplicar.
24. Grupos de usuarios en Joomla! 1.5
Usuarios del front-end
anónimos
registrados
autores (de aquí en adelante, se consideran usuarios especiales)
editores
jefes de redacción
Usuarios del back-end
gestores/managers
administradores
super administradores
Sus privilegios son incrementales en sentido descendente; por
ejemplo, un gestor posee los mismos privilegios que un jefe de
redacción más otros adicionales.
25. Secciones, categorías y artículos
Los contenidos de Joomla! sólo admiten 2 niveles de
jerarquización:
Las secciones son el primer nivel o nivel principal
Cada sección puede contener varias categorías, pero una
misma categoría no puede pertenecer a más de una sección.
Generalmente los artículos estarán asignados a una sección y a
una categoría, aunque también se pueden crear artículos sin
clasificar.
Las secciones y categorías se pueden mostrar con dos formatos:
Diseño estándar: listado de los títulos de las categorías en el
caso de las secciones, y de los títulos de los artículos en el caso
de las categorías.
Diseño de blog: tanto para categorías como para secciones
muestra los títulos y los preámbulos de las noticias.
26. Crear secciones y categorías
Contenido> Gestor de secciones
Contenido> Gestor de categorías
En ambos casos merece destacar el hecho de que podemos
configurarlas para que sean accesibles al público en general, a los
usuarios registrados o a los usuarios especiales (que son todos
aquéllos con un nivel igual o superior al de autor).
No obstante, el nivel de acceso no se aplica de modo descendente o
heredado desde las secciones a las categorías, aunque sí de las
secciones a los artículos de sus categorías, y también de las
categorías a sus artículos; por ejemplo, una sección puede requerir
acceso especial y, sin embargo, sus categorías ser de acceso público,
de modo que los usuarios anónimos/registrados (no especiales) no
podrían acceder a la presentación (en lista ni en blog) de las categorías
que componen la sección, pero sí a las categorías en sí, mostrando el
listado de artículos (en lista o en blog) que contienen, aunque sin
permitir el acceso a ellos.
27. EJERCICIO
Crear una sección llamada Noticias con
acceso especial y, dentro de ella, una
categoría llamada Página de inicio con
acceso público.
28. Crear un artículo
Contenido> Gestor de artículos> Nuevo
También podemos establecer un nivel de acceso (público,
registrado o especial), independiente del que pudieran poseer la
sección y categoría, aunque afectado por el de éstas. Por
ejemplo, si la sección o la categoría tienen acceso especial,
ningún artículo perteneciente a ellas será accesible a un usuario
anónimo/registrado aunque tenga nivel de acceso público.
Periodo de publicación (desde cuándo y durante cuánto tiempo).
Publicar en la página principal o no. ¡PRECAUCIÓN! Al asignar
un artículo público a la página principal, pero que pertenece a
una sección o categoría con acceso restringido, si ésta está
configurada para mostrar el blog (que es lo predeterminado), se
mostrará el título y el preámbulo de la noticia (aunque
pertenezca a una categoría con acceso restringido).
29. EJERCICIO
Crear cinco artículos de ejemplo en la
sección/categoría Noticias/Página de inicio con
acceso público, y configurarlos para que se
muestren en la página inicial.
¿Se muestran en la página inicial a pesar de que
pertenecen a una sección con acceso especial? Se
muestra su información de blog (título y preámbulo)
pues pertenecen a una categoría pública, pero no
podríamos acceder a los artículos en sí pues
pertenecen a una sección con acceso especial.
30. Artículos sin clasificar
Sirven para crear contenidos que no se adaptan a la
clasificación de secciones/categorías de nuestro
sitio.
Contenido> Gestor de artículos> Nuevo y
seleccionar la opción Sin sección asignada en el
cuadro de lista Sección.
Y, si no lo publicásemos en la página inicial, ¿cómo
accederíamos a este contenido? Mediante un ítem
menú.
31. Los menús
Los menús están compuestos por items, y constituyen el sistema
de navegación fundamental para acceder a los contenidos
(secciones, categorías, artículos y otros).
Los menús se gestionan a través de Menús> Administrador de
menús.
Al crear un menú nuevo es necesario indicar también el nombre
para un módulo nuevo, que será el encargado de visualizarlo.
Este módulo no se habilita automáticamente, por lo que
tendremos que publicarlo a través de Extensiones>
Administrador de módulos.
El título que muestra el menú en la portada es el de su módulo,
no el del propio menú.
32. Los items de menú
Para ver/modificar los items que contiene un menú
podemos hacer clic sobre el icono en el
Administrador de menús, o elegir directamente el
nombre del menú en el menú Menús (valga la
redundancia).
Lo primero que deberemos hacer al crear un ítem
nuevo es indicar a qué tipo de contenido (más
precisamente, a qué tipo de componente) va a estar
vinculado (artículo, encuesta, contacto, usuario, …)
Entre todos los items de todos los menús debe
haber uno predeterminado, que será el destino que
se muestre al acceder a la portada de nuestro sitio
Joomla!.
33. EJERCICIO
Crear un artículo sin clasificar.
Crear un menú llamado Menú secundario.
Publicar el menú.
Incluir en él un ítem que enlace con el
artículo sin clasificar.
34. La página inicial
La página inicial muestra el destino del ítem de menú
predeterminado.
Por defecto, el ítem predeterminado Home está enlazado al
componente de contenidos (com_content) para mostrar en modo
Blog todos los artículos (sea cuál sea el nivel de acceso de su
sección/categoría) que estén configurados para mostrarse en la
página inicial.
En cierta forma, al asignar un artículo a la página principal es
como si estuviésemos creando un duplicado suyo en una
sección/categoría pública, de modo que la única forma de
controlar su nivel de acceso en la página inicial es a través del
nivel de acceso del propio artículo, sin que se vea afectado por
el de la sección/categoría real a la que pertenece.
35. Configurar el ítem de menú
predeterminado
Para configura el ítem de menú predeterminado sólo hay que
acceder a él a través del menú Menús, activar la casilla que hay
a su izquierda, y pulsar el botón Predet.
Recuerde que el destino del ítem predeterminado será el que se
muestre al acceder a la portada de nuestro sitio Joomla!
Si no tiene ningún ítem predeterminado, al acceder a la portada
de su sitio Joomla! se mostrará un error 404.
Curiosamente Joomla! no permite borrar el ítem de menú
predeterminado directamente, aunque sí el menú al que
pertenece.
36. EJERCICIO
Establecer como predeterminado el ítem de
menú enlazado al artículo sin clasificar.
Acceder a la portada del sitio para comprobar
que efectivamente se muestra el artículo sin
clasificar.
Volver a configurar como predeterminado el
ítem de menú Home.
37. Las plantillas
El aspecto (tanto su estructura como su
formato) de nuestro sitio Joomla! está
determinado por la plantilla predeterminada.
No obstante, el destino de cada ítem de
menú puede utilizar una plantilla diferente.
Las plantillas se gestionan a través de
Extensiones> Administrador de plantillas.
38. EJERCICIO
Asignar la plantilla beez al ítem de menú
vinculado al artículo sin clasificar.
39. Posiciones de los módulos en las plantillas
Las plantillas poseen marcadores de posición
en los que podemos mostrar los módulos.
Para ver dónde se encuentran estos
marcadores de posición, seleccionaremos la
plantilla en Extensiones> Administrador de
plantillas y haremos clic sobre el botón
Vista previa.
40. EJERCICIO
Asignar el módulo del menú secundario al
marcador de posición user3 de la plantilla.
¿Qué ocurre cuando hacemos clic sobre este
ítem y se muestra con la plantilla beez?
41. Gestión de usuarios
Los usuarios se administran a través de Sitio> Administrador de
usuarios.
No obstante, muchos sitios permiten que cualquiera pueda suscribirse a
ellos por sí mismo a través del módulo mod_login (acceder). Esta
posibilidad está controlada por Sitio> Configuración global> Sistema>
Permitir registro de nuevos usuarios.
Para crear el módulo mod_login tendríamos que seleccionar Extensiones>
Administrador de módulos> Crear nuevo> Acceder.
Si permitimos que los usuarios puedan registrarse por sí mismos, recibirán
un correo electrónico con un enlace sobre el que deberán hacer clic para
que su cuenta se habilite. De este modo nos aseguramos de que nos han
proporcionado un email válido. No obstante, podemos desactivar este
sistema de email y habilitar directamente las cuentas seleccionando No en
Sitio> Configuración global> Sistema> Activación de cuena para los
nuevos usuarios.
42. EJERCICIO
Insertar el módulo acceder en la página de
inicio, pero configurando el sistema para que
no permita el registro de nuevos usuarios.
43. Usuarios del front-end (portada)
Anónimo: Sólo puede ver las zonas públicas del front-end.
Registrado: Tiene acceso a zonas privadas del front-end pero
no puede contribuir con contenidos. No es considerado como
usuario especial.
Autor: Puede contribuir con contenidos desde el front-end, que
podrán ser modificados por él mismo o por un editor (o superior)
y que deberán ser aprobados por un jefe de redacción (o
superior) antes de su publicación.
Editor: Posee los mismos privilegios que el autor, además de
poder editar incluso los contenidos de los que no es autor;
aunque no puede aprobar ningún contenido para su publicación.
Jefe de redacción: Suma a los privilegios del editor la
posibilidad de aprobar contenidos para su publicación.
44. EJERCICIO
Crear los siguientes usuarios
Nombre Clave Tipo
registrado registrado registrado
autor autor autor
editor editor editor
jefe jefe jefe
45. Contribuir con artículos desde la portada
Para que los usuarios especiales puedan
contribuir con artículos desde la portada
tendremos que proporcionarles un ítem de
menú vinculado al formulario del componente
de contenidos, es decir, elegiremos como
tipo del ítem del menú Enlace interno>
Artículos> Artículo> Diseño para
introducir artículos.
46. EJERCICIO
Crear en el menú secundario un ítem llamado Enviar artículo
que sirva para contribuir con artículos.
¿Qué pasa cuando un anónimo o registrado hace clic sobre este
ítem?
Asignar al ítem el nivel de acceso especial.
Enviar un artículo como autor para que se muestre en la página
inicial.
Comprobar que el editor puede verlo y modificarlo pero no
publicarlo.
Comprobar que el jefe de redacción sí puede publicarlo.
¿Qué ocurre si el editor termina su sesión mientras está en la
pantalla de edición del artículo y posteriormente intenta editarlo
el jefe de redacción?
47. Desbloqueo global
Cuando un usuario está modificando un contenido, Joomla!
bloquea ese contenido para evitar que pueda ser alterado por
otros usuarios.
Sin embargo, si el usuario inicial no guarda o cancela la edición
del contenido, éste permanecerá bloqueado.
Para anular este bloqueo hay que seleccionar Herramientas>
Desbloqueo global desde el back-end, pero no todos los
usuarios con acceso al back-end tienen acceso a este comando.
48. Usuarios del back-end
Gestor/Manager: Puede crear secciones/categorías
y gestionar los contenidos en general, pero no
puede gestionar los usuarios, ni los menús, ni
instalar extensiones.
Administrador: Tiene permiso para todo excepto
para crear super-administradores, instalar idiomas o
plantillas, cambiar la configuración global del sitio o
enviar correos masivos. Tampoco puede cerrar la
sesión que tenga iniciada otro usuario.
Super administrador: Tiene el poder absoluto.
Puede haber varios super-administradores en un
mismo sistema.
49. EJERCICIO
Crear los siguientes usuarios
Nombre Clave Tipo
manager manager manager
administrador administrador administrador
omnipotente omnipotente super-
administrador
50. EJERCICIO
Intentar crear un usuarios super-
administrador desde la cuenta del
administrador. ¿Es posible?
Entrar en la portada como usuario registrado
e intentar cerrar la sesión de este usuario
desde el back-end con la cuenta del
administrador ¿es posible? ¿y con la del
omnipotente?
51. Administrador multimedia (1/2)
Nuestro sitio Joomla! tiene asociada una galería
multimedia organizada en carpetas, y configurable a
través de las siguientes opciones de Sitio>
Configuración global> Sistema:
Extensiones permitidas: No podremos subir ningún
archivo cuya extensión no esté incluida en esta lista
(salvo que lo incluyamos expresamente en
Extensiones ignoradas).
Tamaño máximo: El tamaño máximo de los archivos
que está permitido subir.
Ruta al directorio de archivos: Es la ruta a la que
accede el Administrador multimedia.
Ruta al directorio de imágenes: Es la única ruta a la
que se pueden subir archivos desde el front-end.
52. Administrador multimedia (2/2)
Restringir la subida de archivos: Si activamos esta opción, los usuarios por
debajo de gestor sólo podrán enviar los tipos de archivos que especifiquemos en
Extensiones para imágenes autorizadas si no se consiguen verificar los tipos
MIME.
Verificar los tipos MIME: Permite comprobar si el encabezado MIME del archivo
realmente coincide con su extensión.
Extensiones para imágenes autorizadas: Son las únicas extensiones que se
admitirán de usuarios inferiores a manager si Restringir la subida de archivos
está activada. La validez de la imagen no se asegura sólo con su extensión, sino
también comprobando el encabezado del propio archivo, de modo que sólo se
podrán utilizar aquí extensiones que correspondan realmente a imágenes.
Extensiones ignoradas: Aquí podríamos indicar alguna extensión para que
jamás se restrinja la subida de este tipo de archivos ni se compruebe su tipo
MIME.
Tipos MIME autorizados: Son los tipos que se permitirán subir.
Tipo MIME no autorizado: Son los tipos que no se permitirán subir
Activar el sistema Flash para subir archivos: Utiliza una pequeña aplicación
Flash para mostrar gráficamente el proceso de subida de los archivos.
53. Insertar una imagen en un artículo
Existen dos formas de insertar una imagen en un
artículo:
A través del icono de TinyMCE podemos insertar
imágenes que ya estén publicadas en Internet indicando
su URL.
A través del botón Imagen que hay debajo del cuadro de
texto del artículo podemos elegir cualquier imagen del
Administrador multimedia o subir nuevas imágenes.
54. Insertar un vínculo/artículo en un artículo
Basta con seleccionar el texto que queremos que
actúe como vínculo y pulsar el icono de
TinyMCE para indicar el URL de destino.
Tenga en cuenta que utilizando como URL
images/stories/ podrá acceder a las
imágenes/archivos subidos al Administrador
multimedia.
55. EJERCICIO
Configura el sitio para que los usuarios autor,
editor y jefe de redacción puedan subir
archivos PDF.
Como jefe, subir un archivo PDF al
Administrador multimedia ¿aparece el
archivo?
Crear un vínculo al archivo PDF subido
dentro del artículo ¿funciona el vínculo?
56. Definir el preámbulo de un artículo
Al crear el cuerpo de una noticia podemos
insertar un enlace quot;Leer más…quot; pulsando el
botón Leer más que hay en la zona inferior.
Este salto se simboliza en el editor de la
noticia como una línea roja.
Sólo puede haber un enlace de este tipo en
la noticia.
Todo lo que haya delante de este enlace se
considerará perteneciente al preámbulo, y se
mostrará en la vista de Blog.
57. Paginar un artículo (1/2)
Podemos dividir el artículo para que se muestre en varias
páginas.
El lector podrá pasar de página a través de una tabla de
contenidos o a través de enlaces a cada una de las páginas,
además de mediante los enlaces Siguiente y Anterior.
Para insertar un salto de página en el cuerpo de la noticia
pulsaremos el botón Salto de página de la zona inferior.
Indicaremos el nombre de la página y aparecerá una línea gris
en la zona superior que trasladaremos (mediante cortar y pegar)
a la posición que nos interese.
No conviene que haya saltos de página dentro del preámbulo (si
éste existiere), pues anularían la función quot;Leer másquot;. De hecho,
es conveniente utilizar un preámbulo, pues en caso contrario los
enlaces Siguiente y Anterior pueden provocar resultados
inesperados cuando la noticia se muestra como Blog.
58. Paginar un artículo (2/2)
Para configurar si queremos que aparezca la
tabla de contenidos o no recurriremos a
Extensiones> Administrador de plug-ins>
Content – PageBreak, donde dispondremos
de las siguientes opciones:
Tabla de contenidos: Muestra la tabla de
contenidos con los títulos de las páginas o bien
sólo los números de las páginas.
Mostrar todo: Si se activa la tabla, esta opción
ofrece al lector la posibilidad de mostrar el artículo
en una sola página.
59. EJERCICIO
Crear un artículo con un preámbulo y 3
páginas.
Configurarlo para que muestre y oculte la
tabla de contenidos.
60. Metadatos de los artículos
Al crear un artículo disponemos de la sección
Información de metadatos, en la que
podemos indicar una descripción, palabras
clave, robots y autor.
Esta información es importante, pues pueden
consultarla otros componentes/módulos
como los de búsqueda y los de banners.
61. Valoración de los artículos
Joomla! permite a los usuarios valorar los artículos emitiendo un
voto.
Para activar esta posibilidad recurriremos a Contenidos>
Administrador de artículos> Preferencias y seleccionaremos
la opción Mostrar de la sección Calificación/Votación del
artículo.
El sistema de votación está basado en el plug-in Content-
Rating que, de forma predeterminada, está activado.
En la base de datos de Joomla! se almacena la dirección IP
desde la que se ha producido la última votación, de modo que no
se podrá emitir otro voto desde esa IP hasta que se registre un
voto procedente de una IP diferente.
62. Suscripción de noticias
Hay 2 formas de mostrar una suscripción
RSS:
Mediante el componente Suscripción de
noticias, que permite clasificar las suscripciones
en categorías, pero que, por ser un componente,
debe ser vinculado a través de un ítem de menú.
Mediante un módulo de tipo Presentación de la
suscripción, que, por ser un módulo, puede
mostrarse en cualquier página de nuestro sitio,
pero que no admite categorías.
63. Componente Suscripción de noticias
(com_newsfeeds)
Este componente se gestiona a través de
Componentes> Suscripción de noticias.
Antes de poder crear una suscripción es necesario
configurar las categorías (Componentes>
Suscripción de noticias> Categorías> Crear).
Para crear una nueva suscripción utilizaremos
Componentes> Suscripción de noticias>
Suscripciones> Crear e indicaremos el URL
(enlace) del proveedor.
Al crear el ítem del menú podremos optar entre:
Mostrar la lista de categorías.
Mostrar las suscriciones de una categoría concreta.
Mostrar las noticias de una suscripción concreta.
64. EJERCICIO
Crear una categoría de suscripciones
llamada Prensa.
Crear una suscripción a la página de
deportes del ABC dentro de la categorías
Prensa y asignarla el nombre Deportes.
Crear un ítem de menú en el menú
secundario que permita acceder
directamente a esta suscripción.
65. Módulo Presentación de la suscripción
(mod_feed)
Este módulo nos permite mostrar una suscripción
concreta (independiente de las del componente
descrito anteriormente) en cualquier página de
nuestro sitio.
Para crear una instancia de este módulo
seleccionaremos Extensiones> Administrador de
módulos> Crear nuevo> Presentación de la
subscripción e indicaremos el URL del
alimentador.
66. EJERCICIO
Crear una instancia del módulo Presentación
de la suscripción en la página inicial para
mostrar las noticias de economía de El País.
67. Nuestro sitio como fuente de sindicación
(mod_syndicate)
Cada página de nuestro sitio que muestre contenidos (artículos)
puede ofrecer información fuente para agregadores u otros sitios
con sólo incluir en ella una instancia del módulo Subscripción
de noticias.
Este módulo admite los estándares RSS y Atom y, por
convenido, suele ubicarse en el marcador de posición syndicate
de la plantilla (que, por lo general, está en la zona inferior).
Nótese que ese módulo genera el feed a partir del contenido de
la página en la que se encuentra. Por ejemplo, si la página
muestra una categoría concreta, el feed sólo contendrá los
artículos de esa categoría.
68. EJERCICIO
Crear 2 categorías en la sección Noticias
llamadas Cursos y Recursos.
Escribir un artículo de ejemplo en cada una
de ellas.
Crear un ítem en el menú secundario para
cada una de estas categorías.
Incluir el módulo Subscripción de noticias
(mod_syndicate) sólo en las páginas de
estas dos categorías.
69. Búsquedas
Disponemos de un componente y de un
módulo de búsquedas:
El componente Search
El módulo mod_search
70. El componente Search
El componente Search se crea directamente a
través de un ítem de menú, y entre sus
características cabe destacar:
La posibilidad de permitir elegir al usuario dónde quiere
buscar (artículos, contactos, categorías, suscripciones de
noticias, …) mediante el parámetro básico Usar las áreas
de búsqueda
A través de Componentes> Búsqueda podemos ver la
estadística de las búsquedas realizadas en nuestro sitio
por los usuarios. Estas estadísticas se activan mediante
Preferencias> Buscar las estadísticas de búsqueda.
Busca dentro de los metadata de los artículos, pero no
dentro de los artículos de las subscripciones de noticias.
71. El módulo mod_search
El módulo actúa en realidad como un vínculo al
componente, con la ventaja de que podemos
mostrarlo (por ser un módulo) en las páginas que
queramos.
Para crear un módulo de este tipo recurriremos a
Extensiones> Administrador de módulos> Crear
nuevo> Buscar.
Por supuesto, las búsquedas realizadas a través de
este módulo también se reflejan en Preferencias>
Buscar las estadísticas de búsqueda.
72. EJERCICIO
Crear un ítem de menú vinculado al
componente Buscar.
Crear un módulo de búsqueda que se
muestre sólo en algunas páginas.
73. Encuestas
Joomla! nos permite configurar encuestas con hasta 12
opciones.
Las encuestas se crean desde el back-end mediante el menú
Componentes> Encuestas.
Una vez creada la encuesta podremos publicarla o no, y para
mostrarla necesitaremos un módulo mod_poll.
Los resultados de las encuestas están disponibles a través del
propio componente, de modo que podemos acceder a ellos a
través de un ítem de menú.
El módulo puede tener un nivel de acceso restringido y, sin
embargo, los resultados (mostrados a través de un ítem de
menú) pueden ser de acceso público.
Aunque el componente Encuestas permite establecer un
Intervalo de tiempo entre votos desde un mismo ordenador,
este sistema está basado en cookies y es fácilmente esquivable.
74. EJERCICIO
Crear dos encuestas y publicarlas sólo en la
página principal mediante sus respectivos
módulos.
Configurar estos módulos para que tengan
acceso especial.
Crear un ítem de menú que permita acceder
a los resultados de las encuestas
públicamente.
75. Enlaces Web
Podemos incluir en nuestro sitio Joomla! una colección de
enlaces web clasificados en categorías.
Las categorías y los enlaces se administran a través de
Componentes> Enlaces web.
Este componente nos permite generar ítems de menú para
mostrar
La lista de categorías
Los enlaces que forman parte de una categoría
El formulario para proponer nuevos enlaces. Este formulario sólo
es accesible para los usuarios especiales (no anónimos ni
registrados).
Los enlaces propuestos se aprueban automáticamente, aunque
se envía un mail al administrador para que pueda verificarlos.
76. EJERCICIO
Crear 2 categorías de enlaces web, una de acceso
público y otra de acceso especial.
Crear un ítem de menú que permita acceder a la
lista de categorías.
Crear 2 sub-ítems de menú, dentro del anterior, que
permitan acceder a cada una de las categorías.
¿Qué nivel de acceso deberían tener estos sub-
item?
Crear un tercer sub-ítem de menú que permita
proponer nuevos enlaces. ¿Qué nivel de acceso
debería tener este sub-item?
77. Contactos
Joomla! nos permite mantener una agenda de contactos
clasificados en categorías.
La creación/edición de los contactos sólo es posible a través del
back-end mediante Componentes> Administrador de
contactos.
Las categorías y los propios contactos pueden tener su propio
nivel de acceso.
Mediante ítems de menú podemos mostrar la lista de categorías
o un contacto concreto.
Los contactos pueden enlazarse a un usuario concreto de
nuestro sistema Joomla!, de modo que cuando accedamos a él
mediante Sitio> Administrador de usuarios podamos ver y
modificar también su información de contacto.
78. EJERCICIO
Crear 2 categorías de contactos: Amigos y
Clientes.
Crear varios contactos en cada una de estas
categorías.
Crear ítems de menú que permitan acceder a
la lista de categorías y a un contacto
concreto.
¿Pueden crearse nuevos contactos desde el
front-end?
79. Banners
Joomla! nos ofrece un potente gestor de anuncios basado en
clientes/categorías/banners.
Los banners son imágenes que debemos almacenar mediante el
Administrador multimedia en /images/banners.
Los banners pueden tener un número de impresiones concreto o
ilimitado.
Automáticamente se mantiene un registro del número de
impresiones y del número de clics.
Opcionalmente, a través de Componentes> Banner>
Banners> Preferencias, podemos mantener un registro de las
fechas en las que se producen las impresiones y/o los clics.
Para mostrar los banners es necesario un módulo de tipo
banner. Este módulo puede mostrar los banners aleatoriamente,
ordenadamente o según el contenido de la propia página.
80. Banners: categorías y clientes
Cada Banner debe tener:
Una categoría
Un cliente
Una imagen
Las categorías no son dependientes de los clientes ni viceversa.
Las categorías nos permiten establecer niveles de acceso, pues
los banners en sí no ofrecen esta posibilidad.
Las categorías se gestionan mediante Componentes> Banner>
Categorías.
Los clientes son básicamente una base de datos de contactos
para nuestro uso particular. Se gestionan mediante
Componentes> Banner> Clientes.
81. Banners: Crear un banner
El banner en sí suele ser una imagen de 468x60 píxeles almacenada en la
carpeta /images/banners, a la que podemos acceder mediante el Administrador
multimedia.
Para crear el banner recurriremos a Componentes> Banner> Banners.
Los banners pueden ser destacados o no. Los destacados siempre aparecen
en primer lugar cuando se muestran varios banners dentro de la misma página.
Los banners tienen un orden, que puede elegirse como criterio en el momento
de visualizarlos en la página, aunque también se pueden mostrar
aleatoriamente.
Es fundamental indicar el destino del banner mediante la opción URL al hacer
clic.
El número de impresiones del banner puede ser ilimitado o especificarse
mediante Clics comprados. Al alcanzar el límite, el banner dejará
automáticamente de estar publicado.
Además, los banners pueden tener asociadas etiquetas, de modo que sólo se
muestren cuando en la página que está viendo el usuario haya un artículo que
contenga alguna de esas etiquetas entre sus palabras clave (no busca en la
descripción).
82. Banners: Mostrar los banners
La gestión de los banners se realiza a través del componente, como hemos
explicado anteriormente, pero su visualización está encargada al módulo
mod_banners.
Algunos parámetros interesantes de este módulo son:
Destino: Dónde se mostrará la URL asociada la banner si el usuarios
hiciera clic sobre él.
Cantidad: Número de banners a mostrar; siempre aparecerán en primer
lugar los destacados.
Clientes y Categorías: Permite filtrar los banners para que sólo se
muestren los de un determinado cliente o categoría.
Buscar por etiquetas: Sólo se mostrarán los banners cuyas etiquetas
coincidan con alguna de las palabras clave del artículo que contiene la
página.
Aleatorio: Dentro de los banners destacados, podemos elegir
mostrarlos ordenados o aleatoriamente.
Generalmente el módulo mod_banners se configura para ser mostrado en
todas las páginas, pues hay artículos que no tienen un ítem de menú
específico, sino que se llega a ellos a través de categorías/secciones o
búsquedas.
83. Banners: Registro de impresiones y clics
Mediante el botón Preferencias de
Componentes> Banner podemos indicar
que se registren las fechas en las que se
muestran los banners y/o se hace clic sobre
ellos.
Estas estadísticas se almacenan en la tabla
jos_bannertrack.
84. EJERCICIO
Crear un artículo que tenga como palabra clave quot;joomlaquot;.
Crear 2 clientes de banners llamados quot;Cliente 1quot; y quot;Cliente 2quot;
Crear 2 categorías de banners llamadas quot;Categoría 1quot; y
quot;Categoría 2quot;
Crear 2 banners, uno asociado al cliente 1 y a la categoría 1, y
otro asociado al cliente 2 y a la categoría 2.
Realizar distintas pruebas con el módulo, para que se muestre 1
banner, los dos, ordenadamente, aleatoriamente, buscando
etiquetas, …
Activar las distintas opciones de registro y comprobar que
efectivamente se almacenan en la tabla jos_bannertrack
mediante phpMyAdmin.
85. Módulo Contenido archivado
Este módulo muestra una lista con formato mes, año que nos
permite acceder a los artículos archivados.
La longitud de esta lista está controlada por el parámetro
Cantidad. Por supuesto, siempre se muestra del más
reciente al más antiguo.
Para archivar artículos tendríamos que seleccionarlos en
Contenidos> Administrador de artículos y pulsar el botón
Archivar.
Los artículos archivados no se pueden editar ni se incluyen
en las búsquedas.
Los artículos archivados se pueden restaurar con el botón
Restaurar.
Nota: También existe el componente Lista de artículos
archivados que ofrece muchos más criterios de ordenación.
86. EJERCICIO
Archivar varios artículos, modificando su
fecha de creación para que correspondan a
meses diferentes.
Incluir el módulo Contenido archivado y
comprobar su funcionamiento.
Crear un ítem de menú que conduzca a una
página de contenidos archivados.
87. Módulo Ruta de acceso
Muestra el quot;camino de migasquot; (bread
crumbs) a través de los ítems de menús.
Puede producir resultados duplicados en
caso de utilizar ítems de menús anidados
dentro del ítem que conduce a la página
inicial.
El separados predeterminado es >>, pero
podemos elegir cualquier otro.
Este módulo suele incluirse en la sección
breadcrumb de la plantilla.
88. Módulo Últimas publicaciones
Muestra los últimos artículos publicados y asignados a alguna
sección/categorías.
Esta lista tiene en cuenta el nivel de acceso de la
sección/categoría y del propio artículo.
Algunos parámetros de interés:
Cantidad: Cuántos artículos se incluyen en la lista.
Orden: Si se muestran primero los últimos publicados o los
últimos modificados.
Autores: Permite filtrar por autores. Por ejemplo, puede ser útil
para que un usuario vea los últimos artículos publicados que no
son suyos.
ID: Permite especificar un ID concreto de sección y/o categoría
para que sean las únicas tenidas en cuenta para la elaboración
de la lista. Estos ID están disponibles en el administrador de
secciones/categorías.
89. EJERCICIO
Cuando un usuario inicie su sesión, redirigirlo a una página en la
que se le ofrezca la posibilidad de modificar sus datos de usuario
y además se muestren los últimos mensajes publicados que no
son suyos.
PISTA: Habrá que crear un ítem de menú en un menú no
publicado y cuyo tipo sea Usuario> Diseño del formulario del
usuario, y recurrir al parámetro URL de redireccionamiento de
inicio de sesión del módulo login para enviar al usuario a la
página de ese menú.
Copie el enlace de esta página e intente acceder como usuario
anónimo. ¿Qué problema se produce si pulsa el botón
Guardar?¿cómo podría evitarlo?
90. Módulo Destacadas
Muestra uno o más artículos de la categoría que
seleccionemos.
El artículo puede elegirse al azar o mostrarse todos
los de la categoría en horizontal o vertical.
También podemos limitar el número de artículos a
mostrar.
Puede resultar útil tener una categoría para noticias
de estilo quot;post-itquot;, es decir, breves pero importantes,
y mostrarlas en la columna derecha de la página
principal.
91. EJERCICIO
Crear una categoría de artículos llamada
postit e incluir en ella varias noticias breves.
Configurar un módulo para que se muestren
todas estas noticias verticalmente en la
columna derecha de la página principal, sin
el título del artículo, sin los títulos enlazados,
y sin la posibilidad de leer más allá del
preámbulo.
92. Módulo Imagen aleatoria
Elige una imagen al azar de la carpeta y con
el formato (GIF/PNG/JPG) que le
indiquemos y la muestra dentro del módulo.
Nos permite especificar el tamaño máximo
de las imágenes, y también un URL de
redireccionamiento al hacer clic sobre la
imagen.
El URL de la carpeta es siempre relativo a la
carpeta raíz de Joomla!. Por ejemplo,
/images/stories.
93. EJERCICIO
Mediante el administrador multimedia, crear
una carpeta llamada MisFotos (dentro de
images) e incluir en ella varias imágenes
(por ejemplo, de National Geographics).
Configurar el módulo Imagen aleatoria para
que muestre imágenes al azar de esta
carpeta y, en caso de hacer clic sobre alguna
de ellas, dirija al usuario a la página de
National Geographics.
94. Módulo Quién está en línea
Permite mostrar el número de usuarios
registrados y anónimos que están visitando
el sitio, o sólo el nombre de los usuarios
registrados que están visitando el sitio, o
ambos.
Si vamos a mostrar el nombre de los
usuarios quizás sea aconsejable asignar a
este módulo el nivel de acceso, al menos,
registrado.
95. EJERCICIO
Configurar un módulo Quién está en línea
que muestre los nombres de los usuarios
que están visitando el sitio, pero sólo a los
usuarios con nivel registrado o superior.
96. Módulo HTML personalizado
Este módulo puede resultar útil cuando
queremos mostrar información estática (texto
e imágenes) en alguna página de nuestro
sitio, aprovechando los elementos HTML.
97. Módulo Pie de página
Este módulo simplemente muestra la
información de copyright de Joomla! junto
con el nombre de nuestro sitio web.
98. Módulo Contenido más leído
Este módulo muestra la lista de los artículos que han tenido más
accesos.
El número de accesos puede consultarse en la columna Clics de
Administrador de contenidos.
Mediante los parámetros de este módulo podemos establecer la
longitud de la lista y si queremos incluir en ella también los
artículos configurados para mostrarse en la página inicial, pero lo
más importante es que podemos filtrar las secciones y
categorías que se tendrán en cuenta a través de su ID. Este ID
puede consultarse Administrador de secciones y
Administrador de categorías. Si desea filtrar varias
secciones/categorías, escriba sus números separados por
comas.
99. EJERCICIO
Configurar un módulo de tipo Contenido
más leído para que muestre los títulos de los
artículos más leídos de dos categorías (que
identificaremos mediante sus ID separados
por comas).
100. Módulo Items relacionados
Cuando accedemos a una página en la que
se muestra un artículo, este módulo localiza
los títulos de todos los demás artículos que
pudieran compartir alguna palabra clave
(dentro de los meta datos) con él, y los
muestra en una lista.
El único parámetro de este módulo relevante
es el que permite mostrar la fecha junto a los
títulos de los artículos.
101. EJERCICIO
Crear 3 artículos que compartan una misma
palabra clave.
Crear un ítem de menú que permita acceder
a uno de estos artículos.
Insertar un módulo de tipo Items
relacionados que se muestre en todas las
páginas, configurado para aparecer en la
posición footer e indicando la fecha de los
artículos relacionados.
102. Módulo Secciones
Muestra una lista de las secciones disponibles en
nuestro sitio web.
Aunque existe un parámetro llamado Mostrar
enlaces no autorizados que podría mostrar incluso
las secciones a las que el usuario no tiene acceso
por su nivel de privilegios, esta opción aún no está
implementada.
Podemos determinar la longitud de la lista, que
aparece ordenada según el ID de las secciones.
103. Módulo Wrapper
Este módulo crea un intraframe (iframe), es
decir, un marco capaz de mostrar otra página
web dentro de nuestro sitio.
Para configurar este módulo deberemos
indicar el URL de la página que queremos
mostrar.
104. EJERCICIO
Crear un módulo de tipo Wrapper con 500
píxeles de altura y cuya URL sea
www.villatic.org/carpetaJuanfe/campoMinas/
campoMinas.html
105. Mensajería interna del back-end
Es importante que los usuarios del back-end mantengan un vínculo
estrecho entre sí para facilitar las tareas de administración,
especialmente en sitios muy complejos. Con este objetivo Joomla!
nos ofrece un sistema de mensajería interna para el back-end, al
que se accede mediante el icono con forma de sobre que hay en la
zona superior derecha. Para enviar un mensaje hay que pulsar el
botón Crear.
Los super-administradores también pueden acceder a este sistema
mediante las opciones Leer los mensajes y Escribir un mensaje
del menú Herramientas.
A través de este sistema el super-administrador recibe una
notificación cada vez que algún usuario especial envía un artículo
(sin embargo, las notificaciones de envío de enlaces web (que no
requieren aprobación) se notifican al administrador a través del
correo externo).
Si lo deseamos, podemos solicitar también que se nos notifiquen
por e-mail externo los mensajes que recibamos en el correo interno;
para ello recurriremos al botón Preferencias.
106. EJERCICIO
Enviar un mensaje interno desde el manager
al super-administrador y que éste lo conteste.
Configurar la notificación de mensajes
internos a través de e-mail externo para el
super-administrador.
107. Correo masivo
El super-administrador tiene la posibilidad de
enviar e-mails a grupos concretos de
usuarios, o a un grupo y a todos sus
inferiores.
Esta opción está disponible a través de
Herramientas> Correo masivo.
Suele ser aconsejable mantener activada la
casilla Recipients as BCC, pues de otro
modo se revelarían la direcciones de correo
electrónico a todos los destinatarios.
108. Ampliar Joomla!
Para ampliar las posibilidades de Joomla! podemos instalar
extensiones, que pueden ser de varios tipos:
Componentes
Módulos
Plug-ins
Idiomas
Plantillas
Afortunadamente, cualquiera que sea su tipo, todas ellas se
instalan de la misma forma.
Obtenemos el archivo comprimido (generalmente en formato
1.
ZIP) de la extensión que queremos instalar.
Seleccionamos Extensiones> Instalar/Desinstalar.
2.
Pulsamos el botón Examinar para seleccionar el archivo
3.
comprimido.
Pulsamos el botón Subir archivo & instalar.
4.
109. yvComment: Comentarios
yvComment es una extensión que permite a los
usuarios comentar los artículos publicados en
Joomla!, de modo que adquirimos así una de las
principales características de los blogs.
Esta extensión es muy interesante porque ilustra
cómo pueden aprovecharse los componentes
intrínsecos de Joomla! para obtener nuevas
funcionalidades; en este caso, los comentarios se
almacenan como artículos de una sección y
categoría concreta.
110. yvComment: Obtención
La versión que vamos a utilizar es la 1.15, y
está compuesta por un componente, un plug-
in y, opcionalmente, un archivo de idioma.
Estos 3 archivos se descargan de
http://joomlacode.org/gf/project/yvcomment/frs/:
yvCommentComponent1.15.000.zip
yvCommentPlugin1.15.000.zip
yvCommentLanguagePack_es-ES_1.15.000.zip
111. yvComment: Preparativos previos a la
instalación
Antes de instalar yvComment debemos crear una
sección y una categoría dentro de ella para indicar
al programa que almacene en ella los comentarios.
Por ejemplo, crear la sección Comentarios y,
dentro de ella, la categoría Comentarios.
Si queremos permitir que los usuarios anónimos
puedan comentar noticias tendremos que crear un
usuario nuevo con nivel de autor (por ejemplo,
comentarioAnonimo), que figurará como remitente
de todos los comentarios anónimos.
112. yvComment: Instalación
Instalar los 3 archivos anteriores mediante
Extensiones> Instalar/desinstalar.
El paquete de idioma se instala como un
plug-in, pero no es necesario publicarlo;
yvComment lo detecta y se traduce
instantáneamente al castellano.
113. yvComment: Configuración básica
El componente meramente ofrece una lista de todos los
comentarios.
Toda la configuración de yvComment se realiza a través de su
plug-in Extensiones> Administrador de plug-ins> yvcomment
Los parámetros fundamentales que debemos configurar son:
Utilizar tabla de contenido 'Content': Sí
Sección para comentarios
Categoría para los comentarios
Además, por supuesto, debemos activar el plug-in.
114. yvComment: Configurar la presentación y
el acceso a los comentarios
Usar archivo CSS influye sobre el
aspecto de presentación de los
comentarios.
Enlazar el texto 'Comentarios(n)'…
controla cómo se gestionan los
comentarios en las páginas que
muestran artículos en forma de blog:
No: Muestra el número de comentarios.
Página de artículo con comentarios:
Convierte el número de comentarios en un
enlace, o muestra el enlace agrega tu
comentario si no hay ninguno previo.
Comentarios de un artículo: Igual que la
opción anterior (pero también afecta al
primer artículo de la página).
Ocultar: No muestra ninguna información
referente a los enlaces.
Nombre del autor enlazable: Vincula el
nombre del autor a la página web que
tengamos registrada para él en los
contactos.
115. yvComment: Configurar qué secciones
admiten comentarios
Podemos indicar los Ids
de las secciones que
deseemos que admitan
(o no admitan)
comentarios.
Se puede configurar la
longitud máxima del
comentarios, y el
tiempo mínimo entre
comentarios de un
mismo usuario para
cualquier artículo.
116. yvComment: Gestionar los comentarios
anónimos
Nombre de usuario de Visitante
debe ser el usuario que
configuramos como autor en los
preparativos previos a la instalación.
La opción Verificar nombre de
visitante impide que se utilice un
nombre parecido al de algún
miembro registrado de Joomla!
Si los comentarios no se publican
automáticamente, tendrán el mismo
tratamiento que un artículo
cualquiera, es decir, deberán ser
aprobados por un jefe o superior.
La gestión desde el back-end se
realiza mediante Componentes>
yvComment que, en la zona
inferior, ofrece la útil posibilidad de
filtrar los comentarios por estado
(publicados, no publicados, …)
117. yvComment: Combatir el spam
yvComment nos permite solicitar una cadena
de caracteres inaccesible a los robots antes
de admitir los comentarios procedentes de
usuarios anónimos.
No obstante, esta funcionalidad se apoya en
un plug-in llamado Bigo Captcha, que
deberemos instalar y activar. Su único
parámetro de configuración es la longitud de
la cadena de seguridad.
118. yvComment: smileys
Mediante el plug-in yvSmiley podemos
ampliar las posibilidades de yvComment.
Una vez instalado y activado este plug-in,
conviene configurarlo activando su parámetro
Enable Smiley replacement for the whole
page y desactivando su parámetro Enable
Smileys for the texto of articles.
119. yvComment: Notificación de nuevos
comentarios
Puede resultar útil notificar a ciertos usuarios
mediante e-mail la llegada de nuevos
comentarios procedentes de usuarios sin
privilegios para aprobar artículos (inferiores a
jefes).
La lista de usuarios debe separarse mediante
comas.
120. yvComment: Vistas de comentarios
El componente yvComment nos ofrece dos
vistas para items de menús:
Comentarios de un artículo: Muestra todos los
comentarios de un artículo y permite añadir
nuevos, pero no editar los existentes.
Lista de comentarios: Muestra los comentarios
de una sección y/o categoría permitiendo a los
usuarios con privilegios suficientes modificarlos.
121. Attachments: Adjuntar archivos a los
artículos
Esta extensión permite adjuntar archivos a
los artículos.
Está compuesta por un componente y dos
plug-ins que deberemos instalar en este
orden:
attachments_plugin.zip
add_attachment_btn_plugin.zip
attachments_component.zip
Una vez instalados los plug-ins, no debemos
olvidar activarlos.
122. Attachments: Configuración
La configuración de esta extensión se realiza a través de
Componentes> Archivos adjuntos> Preferencias:
Podemos decidir quién puede ver y quién puede agregar
archivos adjuntos. Generalmente sólo interesa que el propio
autor pueda adjuntar nuevos archivos.
Podemos configurar que los archivos adjuntos se publiquen
automáticamente, si no deberán ser aprobados desde el back-
end.
Podemos elegir la carpeta en la que se almacenarán los archivos
adjuntos, y solicitar que se almacenen con un prefijo que
coincida con el id del artículo.
Existe un modo de descarga segura que impide accesos directos
a los archivos; sólo se podrá acceder a través de nuestro sitio
una vez indicadas las credenciales.
Podemos ocultar los archivos adjuntos de ciertas
secciones/categorías con el formato (idSección/idCategoría) y
separados por comas.
123. Attachments: Utilización
No se pueden adjuntar archivos en el mismo
momento de la creación de un artículo; sólo
podremos hacerlo después de guardarlo
mediante dos métodos:
Editando el artículo y utilizando el botón Agregar
un archivo adjunto, que aparece junto a
Imagen, Salto de página, …
Utilizando el enlace Agregar un archivo adjunto
que se muestra al visualizar el artículo
independientemente o en formato de blog.
124. Remository: Gestor de descargas
Remository es un componente que nos permite
configurar un gestor de descargas con las
siguientes características:
Contenedores o carpetas configurables.
Edición de roles para subir/descargar/modificar descargas.
Gestor de grupos.
Filtrado de archivos para que sólo se puedan subir ciertas
extensiones.
No es necesario crear un ítem de menú, pues se
crea automáticamente durante la instalación.
125. Remository: Configuración
Componentes> Remository>
Configuration donde las fichas más
importantes son:
Permisos: Aquí podemos establecer las
extensiones de los archivos admitidos, si las
subidas se autopublicarán, …
Download text: Nos permite eliminar la
publicidad de Google.
126. Remository: Grupos/roles
Mediante Manage groups podemos
seleccionar varios usuarios de Joomla! y
asignarles un nombre de rol concreto.
Al configurar un contenedor podremos indicar
que grupo de usuarios tiene permiso para
subir/bajar/editar las descargas.
127. Remository: Contenedores
Los contenedores son una jerarquía de subcarpetas
para organizar las descargas.
Se administran mediante Manage containers.
Pueden estar publicados o no.
Los contenedores pueden anidarse unos dentro de
otros.
Al crear un contenedor podemos asignarle un nivel
de acceso (para subidas, bajadas y ediciones) y un
icono identificativo.
128. Remository: Aprobación y publicación de
descargas
Por defecto, el administrador deberá aprobar las
descargas propuestas por los usuarios a través de
Approve uploads (aunque mediante la
configuración de permisos podemos establecer que
las descargas propuestas por usuarios registrados
se aprueben y publiquen automáticamente).
Las descargas aprobadas pueden publicarse o
despublicarse mediante Manage files.
Manage files también nos permite crear
automáticamente nuevas descargas con archivos
subidos desde nuestro propio ordenador o remotos.
129. Remository: Valoración y comentarios de
descargas
Remository permite a los usuarios puntuar y
comentar las descargas (aunque puede evitarse
mediante la configuración de permisos).
Las votaciones pueden consultarse mediante
Statistics, que nos muestra las 5 descargas más
solicitadas, las 5 mejor valoradas y las 5 que más
han sido votadas (independientemente de si los
votos fueran positivos o negativos).
Los comentarios de las descargas pueden borrarse
mediante Manage files.
130. JEvents: Calendarios y eventos
JEvents es un potente gestor de
agenda/calendario/eventos.
Los eventos deben clasificarse en categorías
y disponen de múltiples opciones de
repetición.
JEvents es básicamente un componente,
aunque también ofrece módulos e incluso
plug-ins muy interesantes.
131. JEvents: Componente y módulos
Instalaremos el componente y los 4 módulos
siguientes:
mod_events_cal: Permite mostrar un calendario
mensual en miniatura.
mod_events_latest: Muestra los eventos
próximos (posteriores o anteriores, según
configuración) a la fecha actual.
mod_events_legend: Muestra la relación entre
categorías y colores.
mod_events_switchview: Permite elegir entre
varios estilos de calendario diferentes.
132. JEvents: Instalación
Tras instalar el componente y los módulos:
Crear una categoría de eventos mediante
Componentes> JEvents> Manage categories.
Obsérvese que las categorías pueden anidarse unas
dentro de otras y que admiten un color identificativo.
Publicar la categoría.
En el Cpanel de JEvents, dentro de la ficha
derecha Setup, hacer clic sobre los 2 vínculos
siguientes:
Migrate admin menus and update databases
Migrate all events to icalEvents
133. JEvents: Configuración del componente_
Component1
La configuración del componente y de
algunos aspectos de los módulos se realiza
seleccionando Configuration en el cPanel.
Email del admin en el que le serán notificados los
nuevos eventos pendientes de aprobación.
Quién tiene acceso al componente
Quién puede enviar eventos desde el front-end
Formato de la fecha: Continental en nuestro caso
134. JEvents: Configuración del componente_
Component2
Los parámetros de esta ficha controlan el
aspecto del calendario:
Años extremos (máximo y mínimo)
Vista inicial del componente (mensual, semanal,
anual, …)
La información que debe mostrarse en el detalle
de los eventos, es decir, al hacer clic sobre un
evento (número de accesos, email, …)
135. JEvents: Configuración del módulo
Calendar
El módulo Calendar muestra una vista en miniatura
del mes actual.
Este módulo puede configurarse desde el propio
Administrador de módulos (por ejemplo, aquí
podremos indicar que se muestren sólo los eventos
de ciertas categorías) o desde la ficha Calendar del
componente.
Los parámetros de configuración disponibles en el
componente permiten establecer los límites para
que se muestren los meses anteriores y posterior,
de modo que el módulo podría llegar a mostrar
hasta 3 meses.
136. JEvents: Configuración del módulo Latest
Events
Dispone de opciones de configuración en el
componente y en el módulo:
En el componente podemos establecer
principalmente el número de eventos y el modo
(si se rellenan las plazas disponibles con eventos
ya pasados, y hasta qué fecha)
Los parámetros del módulo permiten filtrar las
categorías o particularizar los parámetros
establecidos en el componente.
137. JEvents: Configuración de los tooltips
La ficha Tooltip de la configuración del
módulo ofrece parámetros sobre el aspecto
de los tooltips que aparecen al colocar el
puntero sobre una fecha que contiene
eventos.
Posición
Sombra
138. JEvents: Configuración del módulo
mod_events_legend
Este módulo sólo tiene sentido cuando se
muestra en una página asociada al
componente JEvents; en cualquier otra
página mostrará un mensaje de aviso.
139. JEvents: Gestión de eventos
En sus versiones anteriores, JEvents
utilizaba un formato propio para almacenar
los eventos; sin embargo, ahora quiere
sumarse al estándar iCalendar, de modo que
es conveniente que sólo creemos eventos de
este tipo y que los gestionemos mediante
Manage iCAL events.
Los eventos no se publican automáticamente
140. JEvents: El módulo Events View Switcher
Este módulo simplemente sirve para alterar
el aspecto visual del componente en sí, y de
todos los módulos que dependen de él.
141. SlimBox plug-in para Joomla 1.5
Este plug-in permite mostrar versiones ampliadas
de las imágenes de un modo muy atractivo.
Las versiones en miniatura y a tamaño completo de
las imágenes deberemos crearlas y subirlas
nosotros mismos.
La sintaxis es {slimbox a1;a2;a4;…} donde a1, a2,
a3, … son ternas con el formato imagen a tamaño
completo, imagen en miniatura, título. Las rutas de
las imágenes están referidas a la carpeta raíz de
Joomla!.
Para que sólo se muestre la primera miniatura
podemos utilizar {slimboxsingle …}
142. EasyTube plug-in
Este plug-in nos permite insertar fácilmente
en nuestros artículos vídeos de YouTube y
GoogleVideo.
Su sintaxis es:
[youtube:url_del_video ancho alto]
[googlevideo:url_del_video ancho alto]
143. Plantillas: Instalación y gestión
Las plantillas son las responsables del aspecto con que se
muestra nuestro sitio Joomla!
Se instalan a través de Extensiones> Instalar/Desinstalar
Se gestionan mediante Extensiones> Administrador de
plantillas
El back-end y el front-end pueden utilizar plantillas
diferentes.
Además, cada página de nuestro sitio también puede usar
un plantilla diferente.
Existe una plantilla predeterminada, que será la que se
aplique en las páginas para las que no se haya
especificado una plantilla concreta.
144. Plantillas: Edición
Al editar una plantilla podemos:
Asignársela a items de menú concretos.
Modificar sus parámetros de configuración, si los ofreciera.
Previsualizarla para ver su aspecto e identificar los
contenedores de posición para módulos y su estilo. Los
estilos determinan cómo se muestran los módulos y son:
none
outline
table
horz
rounded
xhtml
Modificar el código (HTML y CSS) de la plantilla.
145. Plantillas: EJERCICIO
Descargar una plantilla de joomlahut.com o
joomla24.com
Instalar la plantilla
Previsualizar la plantilla para conocer los
nombres de los contenedores de posición
para módulos.
146. Plantillas: Estructura de carpetas
Las plantillas del front-end se instalan dentro de una
subcarpeta de la carpeta templates (cuyo nombre
debe coincide exactamente con el de la propia
plantilla) y suelen contener la siguiente estructura
de subcarpetas:
css: Contiene los archivos css
images: Contiene las imágenes que se utilizan en los
archivos css
html: Contiene los archivos necesarios para definir estilos
de presentación de módulos personalizados.
javascript: Algunas plantillas utilizan esta carpeta para
almacenar sus guiones javaScript.
147. Plantillas: Los archivos fundamentales
templateDetails.xml: Contiene toda la información referente a la
plantilla. Esta información se utiliza, por ejemplo, durante la
instalación, para permitir al usuario seleccionar las posiciones de
los módulos o para definir los parámetros de configuración de la
propia plantilla.
index.php: Establece la estructura de la plantilla, es decir,
configura los contenedores en los que se mostrarán los
componentes y módulos.
template.css: Establece el aspecto de la plantilla.
params.ini: En este archivo se almacenan los valores
configurados para los parámetros de la plantilla.
template_thumbnail.xxx: Contiene la imagen en miniatura de la
plantilla que se muestra en el back-end cuando el usuario coloca
el puntero sobre el nombre de la plantilla.
148. Plantillas: templateDetails.xml
<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
Este archivo debe <!DOCTYPE install PUBLIC quot;-//Joomla! 1.5//DTD template 1.0//ENquot;
encontrarse en la quot;http://dev.joomla.org/xml/1.5/template-install.dtdquot;>
<install version=quot;1.5quot; type=quot;templatequot;>
carpeta raíz de la <name>rhuk_milkyway</name>
plantilla y el valor de <creationDate>11/20/06</creationDate>
<author>Andy Miller</author>
name se utiliza para <authorEmail>rhuk@rockettheme.com.com</authorEmail>
<authorUrl>http://www.rockettheme.com</authorUrl>
crear la carpeta de la <copyright></copyright>
plantilla durante la <license>GNU/GPL</license>
<version>1.0.2</version>
instalación. <description>Descripción</description>
Sus secciones <files>
principales son: </files>
files <positions>
</positions>
positions
<params>
params </params>
</install>
149. Plantillas: templateDetails.xml, la sección
<files>
<files>
En esta sección <filename>index.php</filename>
deberemos <filename>templateDetails.xml</filename>
<filename>template_thumbnail.png</filename>
referenciar todos los <filename>params.ini</filename>
archivos de los que <filename>images/arrow.png</filename>
<filename>images/indent1.png</filename>
hace uso la plantilla,
incluido el propio
templateDetails.xml,
añadiendo sus rutas
de acceso relativas.
150. Plantillas: templateDetails.xml, la sección
<positions>
<positions>
En esta sección se recogen los
<position>breadcrumb</position>
nombres de los contenedores
de posición entre los que podrá <position>left</position>
elegir el usuario para colocar <position>right</position>
sus módulos. <position>top</position>
Estos nombres deben coincidir <position>user1</position>
exactamente con los que se
<position>user2</position>
crearán en el archivo index.php
<position>user3</position>
de la plantilla.
<position>user4</position>
Si el archivo index.php
<position>footer</position>
contiene posiciones no
<position>debug</position>
incluidas en esta sección, el
<position>syndicate</position>
usuario no podrá elegirlas en el
</positions>
cuadro de lista desplegable de
posicionamiento de los
módulos y tendrá que escribir
su nombre manualmente.
151. Plantillas: templateDetails.xml, la sección
<params>
En esta sección podemos definir parámetros de configuración de la plantilla. Estos
parámetros serán configurables por el usuario a través de Administrador de plantillas,
y nosotros podremos acceder a los valores configurados desde el archivo index.php de
la plantilla mediante this->params->get('nombreDelParametro').
La configuración establecida por el usuario se almacena en el archivo params.ini dentro
de la carpeta raíz de la plantilla. Este archivo debemos crearlo manualmente y
referenciarlo en la sección <files>
<params>
<param name=quot;colorVariationquot; type=quot;listquot; default=quot;whitequot; label=quot;Color
Variationquot; description=quot;Color variation to usequot;>
<option value=quot;bluequot;>Blue</option>
<option value=quot;redquot;>Red</option>
<option value=quot;greenquot;>Green</option>
<option value=quot;orangequot;>Orange</option>
<option value=quot;blackquot;>Black</option>
<option value=quot;whitequot;>White</option>
</param>
</params>
152. Plantillas: index.php
En este archivo se establece la relación jerárquica
(en otras palabras, de dependencia) entre las
distintas secciones de la plantilla.
Generalmente se utilizan elementos <div>, aunque
a veces sigue recurriéndose a elementos <table>
por su mejor compatibilidad con navegadores
antiguos a la hora de colocar elementos con
precisión.
Para incluir un módulo se utiliza:
<jdoc:include type=quot;modulesquot; name=quot;posiciónquot; style=quot;estiloquot;
/>
Y para incluir el componente se utiliza:
<jdoc:include type=quot;componentquot; />
153. Plantillas: template.css
En este archivo se determina la posición y el aspecto de las
distintas secciones que componen la plantilla utilizando estilos
CSS.
Cada uno de estos estilos está compuesto por:
un selector: define a quién se aplica el estilo
una o más declaraciones: definen el aspecto del estilo. Cada
declaración está compuesta por:
una propiedad
un valor
body {
font-family: Helvetica,Arial,sans-serif;
line-height: 1.3em;
margin: 0px 0px 0px 0px;
font-size: 12px;
color: #333;
}
154. Plantillas: Tipos de selectores CSS
De elemento: utiliza el nombre del elemento
De id: #id
De clase: .clase
pseudoclase (:hover, :active, …)
pseudoelemento (:first-letter, :before, …)
Relativos
Descendiente: div p (cualquier párrafo anidado
directamente dentro de div)
Descendiente directo: div>p (cualquier párrafo anidado
inmediatamente dentro de un div)
Adyacente: div+p (cualquier párrafo posterior a un div)
Grupo: div, p (cualquier div y cualquier párrafo)
156. Una plantilla básica
Vamos a crear una plantilla muy sencilla
llamada plantilla_basica.
Cree la siguiente jerarquía de carpetas:
plantilla_basica dentro de templates
images dentro de plantilla_basica
css dentro de plantilla_basica
157. Una plantilla básica: index.php (I)
Cree un archivo llamado index.php dentro de la carpeta
plantilla_basica con el siguiente contenido:
<?php
defined( '_JEXEC' ) or die( 'No eres bien recibido' );
?>
<html>
<head>
</head>
<body>
</body>
</html>
158. Una plantilla básica: templateDetails.xml
(I)
Cree un archivo llamado templateDetails.xml dentro de la carpeta
plantilla_basica con el siguiente contenido:
<install version=quot;1.5quot; type=quot;templatequot;>
<name>plantilla_basica</name>
<creationDate>22/04/08</creationDate>
<author>Juanfe</author>
<version>1.0</version>
<description>Mi primera plantilla</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
</files>
</install>
159. Una plantilla básica: index.php (II)
<?php
defined( '_JEXEC' ) or die( 'No eres bien
recibido' );
?>
<html>
<head>
<jdoc:include type=quot;headquot; />
</head>
<body>
</body>
</html>
160. Una plantilla básica: EJERCICIO
Comprobar que la plantilla se muestra en
Administrador de plantillas
Asignar la plantilla a un ítem de menú cuyo destino
sea un artículo concreto
Especificar los metadatos del artículo
Acceder al artículo. Aparentemente la página está
en blanco.
Acceder al código fuente de la página: Se
mostrarán los metadatos del artículo junto con otra
información.
161. Una plantilla básica: jdoc:include
jdoc:include es una directiva que Joomla! sustituye
por el contenido que le indiquemos mediante el
atributo type y aplicando el formato que
especifiquemos mediante style. Los valores
posibles de type son:
component: incluye el componente
head: incluye la información de cabecera (metadatos)
message: incluye mensajes del sistema y de error
module: incluye un módulo concreto al que identificaremos
por su nombre mediante el atributo adicional name
modules: incluye todos los módulos que estén asignados
a la posición que especifiquemos mediante el atributo
adicional name
162. Una plantilla básica: index.php (III)
Compruebe que al introducir la siguiente modificación sí
aparece el componente:
<?php
defined( '_JEXEC' ) or die( 'No eres bien recibido' );
?>
<html>
<head>
<jdoc:include type=quot;headquot; />
</head>
<body>
<jdoc:include type=quot;componentquot; />
</body>
</html>
163. Una plantilla básica: index.php (IV)
Compruebe que al introducir la siguiente modificación
aparecen los módulos debajo del componente; recuerde que el
archivo index.php establece la jerarquía, mientras que el
archivo template.css establece la posición/aspecto:
…
<body>
<div id=quot;logoquot;></div>
<div id=quot;col_principalquot;>
<jdoc:include type=quot;componentquot; />
</div>
<div id=quot;col_izquierdaquot;>
<jdoc:include type=quot;modulesquot; name=quot;leftquot; />
</div>
</body>
…
164. Una plantilla básica: template.css (I)
Cree un archivo llamado template.css dentro de la carpeta css
con el siguiente contenido y compruebe que no afecta a la
página ¿por qué?...
#col_principal{
width: 60%;
float: right;
border: solid black 2px;
}
#col_izquierda{
width: 35%;
float: right;
}
165. Una plantilla básica: index.php (V)
… porque debemos vincular la hoja de estilos css con
el archivo de la plantilla index.php
…
<head>
<jdoc:include type=quot;headquot; />
<link rel=quot;stylesheetquot; href=quot;<?php echo $this-
>baseurl ?>/templates/<?php echo $this-
>template; ?>/css/template.cssquot; type=quot;text/cssquot; />
</head>
…
166. Una plantilla básica: $this
$this es una variable que hace referencia a
la página en sí, es decir, al objeto jdocument.
Algunas de sus propiedades, a las que se
puede acceder con el operador ->, son:
template: Nombre de la plantilla asignada a la
página
title: Título de la página (no de la plantilla)
description: Descripción de la página
language: Idioma de la página
baseurl: URL de la página.
167. Una plantilla básica: template.css (II)
Para insertar la imagen del logotipo recurrimos a la hoja de
estilos. Previamente cree una imagen en la carpeta images
llamada logo.png de 200x100 píxeles:
#logo{
width: 100%;
height: 100px;
background: url(../images/logo.png) center top no-repeat;
}
#col_principal{
width: 60%;
float: right;
border: solid black 2px;
}
…
168. Una plantilla básica: estilos estándar para
los módulos (I)
none: No crea ningún contenedor. No muestra el título de los
módulos nunca.
table: Presenta el módulo dentro de un table de clase
.moduletable, e incluye su título en un elemento th.
horz: Igual que table, pero anidado a su vez en otro table con
width=100%
xhtml: Presenta el módulo dentro de un div de clase
.moduletable, e incluye su título en un elemento h3.
rounded: El contenido del módulo se anida sucesivamente en 4
elementos div para permitir insertar las imágenes de las
esquinas. El div más externo usa module como nombre de clase.
El título se incluye en un elemento h3.
outline: Sólo se utiliza para previsualizar la información de los
contenedores de posición.
169. Una plantilla básica: estilos estándar para
los módulos (II)
Cambie en index.php el estilo de la columna izquierda a xhtml:
<div id=quot;col_izquierdaquot;>
<jdoc:include type=quot;modulesquot; name=quot;leftquot; style=quot;xhtmlquot;/>
</div>
Introduzca los siguientes estilos en template.css.
div.moduletable{ div.moduletable h3{
font-weight: bold;
border: 2px black solid;
font-family:
background: #cccccc;
Helvetica,Arial,sans-serif;
padding: 5px;
margin: 2px; font-size: 20px;
} text-align: center;
color: blue;
background: white;
border: 2px #999999 dotted;
margin: 5px;
}
170. Una plantilla básica: Sufijo de clase del
módulo (I)
Entre los parámetros avanzados de los
módulos contamos con Sufijo de clase del
módulo. Este sufijo se añade al nombre de
la clase utilizado por el estilo de presentación
del contenedor del módulo. Por ejemplo, si
utilizamos el estilo xhtml para mostrar un
módulo que usa el sufijo _menu, el nombre
de clase del div no será simplemente
moduletable, sino moduletable_menu
171. Una plantilla básica: Sufijo de clase del
módulo (II)
Configure alguno de los módulos de la columna
izquierda para que use como sufijo _menu,
modifique el estilo que teníamos del h3 para que
aplique también a los h3 de esta nueva clase, e
incluya en tempalte.css el siguiente estilo:
div.moduletable_menu{
border: 2px #008826 solid;
background: #aaffc2;
padding: 5px;
margin: 2px;
}
172. Una plantilla básica: EJERCICIO
Averigüe cómo se muestran los menús.
Cree un estilo que elimine el boliche de los
menús.
Cree un estilo que muestre cada ítem de
menú en color rojo, con un fondo blanco, un
borde negro y sin subrayar.
Cree un estilo que cambie el fondo de los
ítems de menús a amarillo cuando se
coloque el puntero del ratón sobre ellos.
174. Una plantilla básica: menús redondeados
(I)
Configuramos la columna izquierda para que use el estilo rounded en lugar de xhtml.
<div id=quot;col_izquierdaquot;>
<jdoc:include type=quot;modulesquot; name=quot;leftquot; style=quot;roundedquot;/>
</div>
Incluimos el selector div.module en el estilo que ya teníamos de div.moduletable y
también en el de los encabezados h3
div.moduletable, div.module{
border: 2px black solid;
background: #cccccc;
padding: 5px;
margin: 2px;
}
div.moduletable h3, div.moduletable_menu h3, div.module h3,
div.module_menu h3{
font-weight: bold;
175. Una plantilla básica: menús redondeados
(II)
Creamos los estilos correspondientes a los cuatro div de module_menu,
teniendo en cuenta el solapamiento de las imágenes
div.module_menu{
background: url(../images/redAbaDer.png) 100%
100% no-repeat;
margin-bottom: 5px;
}
div.module_menu div{
background: url(../images/redAbaIzq.png) 0
100% no-repeat}
div.module_menu div div{
background: url(../images/redArrDer.png) 100% 0
no-repeat;
}
div.module_menu div div div{
background: url(../images/redArrIzq.png) 0 0 no-
repeat;
}
176. Una plantilla básica: Favicon
Crear una imagen de 16x16 píxeles, convertirla a
formato ico con alguna herramienta online, como
www.favicongenerator.com o
http://tools.dynamicdrive.com/favicon/ y almacenarla
con el nombre favicon.ico en la carpeta images.
Referenciar en el archivo index.php de la plantilla el
nuevo favicon:
<jdoc:include type=quot;headquot; />
<link rel=quot;shortcut iconquot; href=quot;<?php echo $this-
>baseurl ?>/templates/<?php echo $this-
>template; ?>/images/favicon.icoquot; />
177. Una plantilla básica: un menú de lengüetas
(I)
Empezaremos creando una nueva sección entre el logo y las
columnas
<div id=quot;logoquot;></div>
<div id=quot;user3quot;>
<jdoc:include type=quot;modulesquot; name=quot;user3quot;/>
</div>
y definimos su estilo para que se muestre centrado
#user3{
width: 650px;
position: relative;
left: 50%;
margin-left: -325px;
}
178. Una plantilla básica: un menú de lengüetas
(II)
Definimos estilos específicos para los elementos de lista de esta nueva
posición. La imagen de la lengüeta mide 100x30 píxeles
#user3 ul{
text-align: center;
}
#user3 li{
float: left;
width: 100px;
height: 30px;
background: url(../images/lengueta.png) no-repeat;
padding-top: 5px;
}
179. Una plantilla básica: un menú de lengüetas
(III)
#user3 li a{
color: blue;
background: transparent;
height: 30px;
border: 0px;
}
#user3 li a:hover{
color: navy;
}
180. Una plantilla básica: un menú de lengüetas
(IV)
Y creamos una división bajo el
menú que no admita elementos
flotantes a ninguno de sus lados
<div id=quot;user3quot;>
<jdoc:include type=quot;modulesquot; name=quot;user3quot;/>
</div>
<div class=quot;separadorHorizontalquot;></div>
con su correspondiente estilo:
.separadorHorizontal{
clear: both;
width: 100%;
}
181. Una plantilla básica: Tercera columna
opcional (I)
Supongamos que queremos disponer de una
columna 'right' pero que sólo se muestre
cuando realmente tenga módulos asignados.
En caso de mostrarse tendríamos que
reconfigurar los anchos de las 3 columnas,
por ejemplo:
col_izquierda: 20%
col_principal: 55%
col_derecha: 20%
182. Una plantilla básica: Tercera columna
opcional (II)
Recurriremos al método $this-
>countModules('right') para saber si hay módulos
a la derecha o no, mostrando la columna sólo
cuando sea necesario.
<div class=quot;separadorHorizontalquot;></div>
<?php if($this->countModules('right')): ?>
<div id=quot;col_derechaquot;>
<jdoc:include type=quot;modulesquot; name=quot;rightquot;
style=quot;xhtmlquot;/>
</div>
<?php endif; ?>
<div id=quot;col_principalquot;>
183. Una plantilla básica: Tercera columna
opcional (III)
Para poder modificar el ancho de las columnas originales cuando sea
necesario, les asignamos nombres de clase alternativos
<?php if($this->countModules('right')): ?>
<div id=quot;col_principal_reducidaquot;>
<?php else: ?>
<div id=quot;col_principalquot;>
<?php endif; ?>
<jdoc:include type=quot;componentquot; />
</div>
<?php if($this->countModules('right')): ?>
<div id=quot;col_izquierda_reducidaquot;>
<?php else: ?>
<div id=quot;col_izquierdaquot;>
<?php endif; ?>
<jdoc:include type=quot;modulesquot; name=quot;leftquot; style=quot;roundedquot;/>
184. Una plantilla básica: Tercera columna
opcional (IV)
Creamos el estilo de la 3ª columna:
#col_derecha{
width:20%;
float: right;
margin: 0;
padding: 0;
max-width: 400px;
}
186. Una plantilla básica: Parámetros de
plantilla (I)
Vamos a permitir que el color de fondo del logo se elija mediante un parámetro de la
plantilla, pero previamente actualizaremos en el archivo templateDetails.xml todo el trabajo
atrasado
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>css/template.css</filename>
<filename>images/logo.png</filename>
<filename>images/favicon.ico</filename>
<filename>images/lengueta.png</filename>
<filename>images/redAbaDer.png</filename>
<filename>images/redAbaIzq.png</filename>
<filename>images/redArrIzq.png</filename>
<filename>images/redArrDer.png</filename>
</files>
<positions>
<position>left</position>
<position>right</position>
<position>user3</position>
</positions>
187. Una plantilla básica: Parámetros de
plantilla (II)
La definición del parámetro en el archivo
templateDetails.xml es la siguiente:
<params>
<param name=quot;colorFondoquot; type=quot;listquot;
default=quot;azulquot; label=quot;Color de fondoquot;
description=quot;Elija un color para el fondo del
logotipoquot;>
<option value=quot;azulquot;>Azul</option>
<option value=quot;rojoquot;>Rojo</option>
<option value=quot;verdequot;>Verde</option>
</param>
</params>
188. Una plantilla básica: Parámetros de
plantilla (III)
Para que se puedan almacenar los valores de los
parámetros configurados por el usuario debemos
crear en la raíz de la plantilla un archivo llamado
params.ini, e incluirlo en la sección files de
templateDetails.xml
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>params.ini</filename>
<filename>css/template.css</filename>
189. Una plantilla básica: Parámetros de
plantilla (IV)
Modificamos el archivo index.php para que
se añada un sufijo a la clase del logo en
función del color elegido
<body>
<div id=quot;logo_<?php echo $this-
>params->get('colorFondo'); ?>quot;></div>
<div id=quot;user3quot;>
190. Una plantilla básica: Parámetros de
plantilla (V)
Y, por último, creamos los estilos necesarios:
#logo_azul{
width: 100%;
height: 100px;
background: blue url(../images/logo.png) center top no-repeat;
}
#logo_verde{
width: 100%;
height: 100px;
background: green url(../images/logo.png) center top no-repeat;
}
#logo_rojo{
width: 100%;
height: 100px;
background: red url(../images/logo.png) center top no-repeat;
}
191. Clonar un sitio Joomla! (I)
La necesidad de clonar un sitio Joomla!
puede suscitarse por causas muy diversas:
El sitio Joomla! original se ha corrompido y
queremos restituirlo a partir de una copia de
seguridad
Deseamos cambiar el servidor en el que tenemos
alojado Joomla!
Queremos crear muchos sitios Joomla! con una
misma configuración inicial de una forma sencilla
y rápida
192. Clonar un sitio Joomla! (II)
El procedimiento general a seguir sería:
Poner en modo Offline el sitio original para impedir que
1.
puedan introducirse modificaciones desde el front-end en
la bases de datos (por ejemplo, nuevos artículos).
Realizar una copia de seguridad de la base de datos.
2.
Trasladar todos los archivos del sitio Joomla! original a su
3.
nueva ubicación, preferiblemente mediante FTP.
Restaurar la copia de seguridad de la base de datos en el
4.
nuevo servidor.
Introducir las modificaciones necesarias en el archivo
5.
configuration.php
Verificar ciertos aspectos dependientes del servidor,
6.
como las funciones de correo
193. Crear una copia de seguridad de la base de
datos de Joomla!
El modo más sencillo de crear una copia de
seguridad de una base de datos es a través
de la función de exportación de
phpMyAdmin.
No obstante, para el caso concreto de
Joomla! existe una extensión que realiza
copias de seguridad diarias de forma
automática (con la posibilidad incluso de
enviárnoslas por correo electrónico). Su
nombre es LazyBackup.
194. LazyBackup
No olvidar activar el plug-in.
LazyBackup crea automáticamente
una copia de seguridad de la base
de datos de Joomla! y la almacena
en la carpeta media. El archivo de
seguridad tiene la extensión sql o
gz, según qué valor asignemos al
parámetro Compress backup file.
Su ejecución se produce cuando
alguien accede a nuestra página
web, bien desde el front-end o bien
desde el back-end (si no accede
nadie no se crea copia de seguridad
ese día).
Para que sólo se cree una copia de
seguridad diaria (aunque accedan
más personas a nuestro sitio ese
mismo día) es fundamental asignar
el valor No al parámetro Testing de
ese plug-in.
195. Restaurar una copia de seguridad de la
base de datos
Aunque phpMyAdmin ofrece la posibilidad de
importar (restaurar) bases de datos, puede generar
problemas cuando se trata de archivos muy grandes
(generalmente por encima de 2 MB).
Lo ideal sería realizar la restauración a través de
una conexión telnet con el servidor de base de
datos, pero no todos los ISP ofrecen esta
posibilidad.
La alternativa es recurrir a un script llamado
bigdump.php.
196. bigdump.php (I)
Antes de subir bigdump.php a nuestro servidor de
destino deberemos abrirlo con un editor de textos
(por ejemplo, scite) y configurar los siguientes
valores :
// Database configuration
$db_server = 'localhost';
$db_name = '';
$db_username = '';
$db_password = '';
$db_connection_charset = 'utf8'; //IMPORTANTE
PARA NO PERDER LOS ACENTOS
197. bigdump.php (II)
A continuación subiremos bigdump.php
mediante FTP a una carpeta del servidor de
destino, preferiblemente a la carpeta media
de Joomla, pues en esta misma carpeta se
encontrarán ya las copias de seguridad
realizadas con LazyBackup anteriormente.
198. bigdump.php (III)
A continuación subiremos
bigdump.php mediante FTP a
una carpeta del servidor de
destino, preferiblemente a la
carpeta media de Joomla, pues
en esta misma carpeta se
encontrarán ya las copias de
seguridad realizadas con
LazyBackup anteriormente.
Al acceder al script se mostrará
la lista de los archivos de copia
de seguridad existentes, y
podremos hacer clic sobre el
enlace Start Import de aquél
que queramos restaurar.
Si la importación es correcta,
aparecerá una pantalla similar a
ésta indicándolo.
199. Adaptar el archivo configuration.php (I)
El archivo configuration.php de Joomla! debe
conocer la información de acceso a la base de
datos y las rutas absolutas a las carpetas de
archivos temporales (tmp) y de informes (log).
Para conocer la ruta absoluta de nuestro sitio
Joomla! colocaremos un archivo php con el
siguiente contenido en la carpeta raíz y
accederemos a él mediante el navegador.
<?php echo __FILE__; ?>
200. Adaptar el archivo configuration.php (II)
Concretamente, las líneas a configurar serán las siguientes:
var $dbtype = 'mysql'; //Tipo de base de datos
var $host = 'localhost'; //Nombre del servidor; generalmente
localhost
var $user = 'villa29_replica'; //usuario de la base de datos
var $password = 'laquesea'; //contraseña del usuario
var $db = 'villa29_replica'; //nombre de la base de datos
var $dbprefix = 'jos_'; //prefijo de las tablas de Joomla!
var $log_path = '/home/villa29/public_html/replica/logs'; //ruta
absoluta a la carpeta de informes
var $tmp_path = '/home/villa29/public_html/replica/tmp'; //ruta
absoluta a la carpeta temporal
201. Verificar la réplica
Debe prestarse especial atención a la
verificación de las funciones de correo, la
configuración de la capa FTP, y el
funcionamiento de las extensiones que
requieran gestión de archivos (remository,
attachments, …)
Por cuestiones de seguridad, no olvide borrar
el archivo bigdump.php y el archivo que
utilizó para averiguar la ruta global.
202. Crear un componente básico
Joomla 1.5! recomienda utilizar el esquema de
desarrollo MVC (Model View Controller) en el que:
Model: Los modelos se encargan de preparar los distintos
conjuntos de datos necesarios para el componente.
View: Las vistas se encargan de presentar los datos.
Controller: Los controladores se encargan de la lógica de
la aplicación, decidiendo cuándo se debe recurrir a cada
vista y a cada modelo.
Sin embargo, en este ejemplo adoptaremos un
sistema más básico, en el que simplemente
aislaremos la presentación del resto (la preparación
de los datos y la lógica de la aplicación).