Está en la página 1de 236

Joomla! 1.5.

CRIF Las Acacias Abril 2008 Juan Flix Mateos

Qu es Joomla!?

Un CMS (Content Managemente System) o gestor de contenidos basado en tecnologas web (como XHTML, CSS, JavaScript y PHP), vlido tanto para Internet como para intranets, de cdigo abierto (open source), y gratuito.

Para qu sirve Joomla!?

Para presentar y gestionar contenidos de diversa naturaleza a travs de la Web.


Artculos Enlaces web Contactos

Ofreciendo al destinatario final ciertas opciones de interactuacin:


Enviar sus propios artculos Participar en encuestas. Colaborar en la gestin/administracin del sitio.

Y eso es todo?

No. Las posibilidades de Joomla! son infinitas porque puede ser ampliado mediante:

Componentes Mdulos Plug-ins Plantillas Lenguajes (idiomas)

Quin debera utilizar Joomla!?

Cualquiera que desee presentar informacin a travs 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 tecnologa. Vago: Aplica como primer mandamiento la ley del mnimo esfuerzo.

En definitiva, casi cualquiera

Y si no me convence Joomla!?

Hay otros CMS Drupal Xoops http://www.opensourcecms.com/ Pero tambin hay otros sistemas de gestin de contenidos como los Blogs, sistemas de teleformacin, sistemas de documentacin, galeras multimedia, foros, comercio electrnico www.wordpress.org Moodle Wiki Gallery Simple Machines Forum osCommerce

Qu quiere decir Joomla!?

Es la trascripcin de una palabra swahili que significa "todos juntos" o "como una sola pieza".

Qu necesito para instalar Joomla!?

Un servidor Web (Apache 1.3 o superior) dotado de:


PHP (4.3.10 o superior) Servidor de bases de datos MySQL (3.23 o superior) Contratando un servicio de alojamiento (hosting), que no tiene por qu ser de pago. Instalando un servidor local en nuestro propio ordenador.

Esto puede obtenerse:

Cmo funciona Joomla!?

Programa del curso

Instalacin de Joomla!

Remoto Local Linux (Ubuntu sobre VirtualBox)

Descripcin de Joomla! Extensiones


Comentarios Foros Agendas

Desarrollo de plantillas Desarrollo de extensiones

Obtener Joomla! 1.5

www.joomla.org

Joomla_1.5.2-Stable-Full_Package.zip
Projects> Topic> Languages> Translations for Joomla!> Spanish Translation for Joomla> Ficheros

www.joomlacode.org/

es-ES_Joomla152_spanish_admin.zip es_ES_Joomla152_spanish_front.zip

Instalar Joomla! en remoto 1

Si disponemos de la opcin de descomprimir archivos en remoto subiremos directamente el archivo Joomla_1.5.2-Stable-Full_Package.zip, y lo descomprimiremos en la carpeta raz de nuestro alojamiento; en caso contrario, lo descomprimiremos en local y subiremos los archivos descomprimidos a la carpeta raz de nuestro alojamiento. http://filezilla-project.org/

Servidor: ftp.villatic.org Usuario: cursojoomla0x@villatic.org Contrasea: cursojoomla Puerto: 21

Instalar Joomla! en remoto 2


1.

2.

Seleccionar el idioma. Corregir el problema de display_errors con un archivo php.ini en las carpetas raz, administrator e installation.
<?php display_errors = 0; ?>

3.

Revisar la licencia.

Instalar Joomla! en remoto 3


4.

Introducir los datos de la base de datos (si se desea, utilizar la configuracin avanzada):

Tipo: mysql Servidor: localhost Usuario: villa29_cj0x Contrasea: cursojoomla Nombre bd: villa29_cursojoomla0x

5.

Introducir los datos de la configuracin FTP

Instalar Joomla! en remoto 4


6.

7.

Introducir el nombre del sitio, los datos del administrador e instalar los datos de ejemplo predeterminados haciendo clic sobre el botn correspondiente. Borrar la carpeta installation y acceder a la zona de portada o a la de administracin.

Instalar phpMyAdmin en remoto


1.

2.

3.

4.

Obtener los archivos de phpMyAdmin de www.phpmyadmin.net. Subir los archivos mediante FTP a una carpeta nueva llamada phpmyadmin. Renombrar el archivo config.sample.inc.php como config.inc.php. Escribir una clave secreta blowfish en la lnea 17 del archivo config.inc.php.

Instalar WAMP y configurar phpMyAdmin en local

Una vez instalado WAMP, acceder a phpMyAdmin y, mediante la opcin Privilegios, asignar la contrasea cursojoomla al usuario root, tanto del servidor localhost como del servidor 127.0.0.1. Despus, acceder al archivo C:\wamp\apps\phpmyadmin2.11.5\config.inc.php y escribir la misma contrasea en la lnea 73: $cfg['Servers'][$i]['password'] = 'cursojoomla';

Crear la base de datos para Joomla! con phpMyAdmin en local

Crear una base de datos llamada cursojoomla y con el cotejamiento utf8_unicode_ci. Crear un usuario llamado cursojoomla y con la contrasea cursojoomla y en el servidor localhost. Asignar al usuario cursojoomla todos los privilegios de la base de datos cursojoomla.

Instalar Joomla! en local

Crear una carpeta llamada cursojoomla dentro de C:\wamp\www y copiar en ella los archivos de Joomla! 1.5.2. Acceder a la pgina web http://localhost y seleccionar en ella el proyecto cursojoomla para iniciar la instalacin. 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.

Las contraseas en Joomla! 1.5

Las contraseas 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 maysculas, minsculas y nmeros). cadena2 se elige al azar. cadena1 es el hash md5 calculado sobre la cadena resultante de unir al cadena2 al final de la contrasea. http://md5-hash-online.waraxe.us/

EJERCICIO

Utilizando phpMyAdmin, cambiar la contrasea del administrador.

Cambiar el idioma
1.

2.

Subir los paquetes de idioma obtenidos de joomlaspanish.org mediante Extensiones> Instalar/Desinstalar> Subir paquete. Configurar estos nuevos paquetes como predeterminados a travs de Extensiones> Gestor de idiomas

Cambiar la zona horaria

En Sitio> Configuracin global> Servidor> Configuracin de la localizacin, seleccionar UTC +01:00 y pulsar Aplicar.

Grupos de usuarios en Joomla! 1.5

Usuarios del front-end


annimos registrados editores jefes de redaccin


gestores/managers administradores super administradores

Usuarios del back-end


Sus privilegios son incrementales en sentido descendente; por ejemplo, un gestor posee los mismos privilegios que un jefe de redaccin ms otros adicionales.

Secciones, categoras y artculos

Los contenidos de Joomla! slo admiten 2 niveles de jerarquizacin: Las secciones son el primer nivel o nivel principal Cada seccin puede contener varias categoras. Generalmente los artculos estarn asignados a una seccin y a una categora, aunque tambin se pueden crear artculos sin clasificar. Las secciones y categoras se pueden mostrar con dos formatos: Diseo estndar: listado de los ttulos de las categoras en el caso de las secciones, y de los ttulos de los artculos en el caso de las categoras. Diseo de blog: tanto para categoras como para secciones muestra los ttulos y los prembulos de las noticias.

Crear secciones y categoras


Contenido> Gestor de secciones Contenido> Gestor de categoras En ambos casos merece destacar el hecho de que podemos configurarlas para que sean accesibles al pblico en general, a los usuarios registrados o a los usuarios especiales (que son todos aqullos 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 categoras, aunque s de las secciones a los artculos de sus categoras, y tambin de las categoras a sus artculos; por ejemplo, una seccin puede requerir acceso especial y, sin embargo, sus categoras ser de acceso pblico, de modo que los usuarios annimos/registrados (no especiales) no podran acceder a la presentacin (en lista ni en blog) de las categoras que componen la seccin, pero s a las categoras en s, mostrando el listado de artculos (en lista o en blog) que contienen, aunque sin permitir el acceso a ellos.

EJERCICIO

Crear una seccin llamada Noticias con acceso especial y, dentro de ella, una categora llamada Pgina de inicio con acceso pblico.

Crear un artculo

Contenido> Gestor de artculos> Nuevo Tambin podemos establecer un nivel de acceso (pblico, registrado o especial), independiente del que pudieran poseer la seccin y categora, aunque afectado por el de stas. Por ejemplo, si la seccin o la categora tienen acceso especial, ningn artculo perteneciente a ellas ser accesible a un usuario annimo/registrado aunque tenga nivel de acceso pblico. Periodo de publicacin (desde cundo y durante cunto tiempo). Publicar en la pgina principal o no. PRECAUCIN! Al asignar un artculo pblico a la pgina principal, pero que pertenece a una seccin o categora con acceso restringido, si sta est configurada para mostrar el blog (que es lo predeterminado), se mostrar el ttulo y el prembulo de la noticia (aunque pertenezca a una categora con acceso restringido).

EJERCICIO

Crear cinco artculos de ejemplo en la seccin/categora Noticias/Pgina de inicio con acceso pblico, y configurarlos para que se muestren en la pgina inicial. Se muestran en la pgina inicial a pesar de que pertenecen a una seccin con acceso especial? Se muestra su informacin de blog (ttulo y prembulo) pues pertenecen a una categora pblica, pero no podramos acceder a los artculos en s pues pertenecen a una seccin con acceso especial.

Artculos sin clasificar

Sirven para crear contenidos que no se adaptan a la clasificacin de secciones/categoras de nuestro sitio. Contenido> Gestor de artculos> Nuevo y seleccionar la opcin Sin seccin asignada en el cuadro de lista Seccin. Y, si no lo publicsemos en la pgina inicial, cmo accederamos a este contenido? Mediante un tem men.

Los mens

Los mens estn compuestos por items, y constituyen el sistema de navegacin fundamental para acceder a los contenidos (secciones, categoras, artculos y otros). Los mens se gestionan a travs de Mens> Administrador de mens. Al crear un men nuevo es necesario indicar tambin el nombre para un mdulo nuevo, que ser el encargado de visualizarlo. Este mdulo no se habilita automticamente, por lo que tendremos que publicarlo a travs de Extensiones> Administrador de mdulos. El ttulo que muestra el men en la portada es el del su mdulo, no el del propio men.

Los items de men

Para ver/modificar los items que contiene un men podemos hacer clic sobre el icono en el Administrador de mens, o elegir directamente el nombre del men en el men Mens (valga la redundancia). Lo primero que deberemos hacer al crear un tem nuevo es indicar a qu tipo de contenido (ms precisamente, a qu tipo de componente) va a estar vinculado (artculo, encuesta, contacto, usuario, ) Entre todos los items de todos los mens debe haber uno predeterminado, que ser el destino que se muestre al acceder a la portada de nuestro sitio Joomla!.

EJERCICIO

Crear un artculo sin clasificar. Crear un men llamado Men secundario. Publicar el men. Incluir en l un tem que enlace con el artculo sin clasificar.

La pgina inicial

La pgina 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 artculos (sea cul sea el nivel de acceso de su seccin/categora) que estn configurados para mostrarse en la pgina inicial. En cierta forma, al asignar un artculo a la pgina principal es como si estuvisemos creando un duplicado suyo en una seccin/categora pblica, de modo que la nica forma de controlar su nivel de acceso en la pgina inicial es a travs del nivel de acceso del propio artculo, sin que se vea afectado por el de la seccin/categora real a la que pertenece.

Configurar el tem de men predeterminado


Para configura el tem de men predeterminado slo hay que acceder a l a travs del men Mens, activar la casilla que hay a su izquierda, y pulsar el botn 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 ningn 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.

EJERCICIO

Establecer como predeterminado el tem de men enlazado al artculo sin clasificar. Acceder a la portada del sitio para comprobar que efectivamente se muestra el artculo sin clasificar. Volver a configurar como predeterminado el tem de men Home.

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 travs de Extensiones> Administrador de plantillas.

EJERCICIO

Asignar la plantilla beez al tem de men vinculado al artculo sin clasificar.

Posiciones de los mdulos en las plantillas

Las plantillas poseen marcadores de posicin en los que podemos mostrar los mdulos. Para ver dnde se encuentran estos marcadores de posicin, seleccionaremos la plantilla en Extensiones> Administrador de plantillas y haremos clic sobre el botn Vista previa.

EJERCICIO

Asignar el mdulo del men secundario al marcador de posicin user3 de la plantilla. Qu ocurre cuando hacemos clic sobre este tem y se muestra con la plantilla beez?

Gestin de usuarios

Los usuarios se administran a travs de Sitio> Administrador de usuarios. No obstante, muchos sitios permiten que cualquiera pueda suscribirse a ellos por s mismo a travs del mdulo mod_login (acceder). Esta posibilidad est controlada por Sitio> Configuracin global> Sistema> Permitir registro de nuevos usuarios. Para crear el mdulo mod_login tendramos que seleccionar Extensiones> Administrador de mdulos> Crear nuevo> Acceder. Si permitimos que los usuarios puedan registrarse por s mismos, recibirn un correo electrnico con un enlace sobre el que debern hacer clic para que su cuenta se habilite. De este modo nos aseguramos de que nos han proporcionado un email vlido. No obstante, podemos desactivar este sistema de email y habilitar directamente las cuentas seleccionando No en Sitio> Configuracin global> Sistema> Activacin de cuena para los nuevos usuarios.

EJERCICIO

Insertar el mdulo acceder en la pgina de inicio, pero configurando el sistema para que no permita el registro de nuevos usuarios.

Usuarios del front-end (portada)


Annimo: Slo puede ver las zonas pblicas 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 podrn ser modificados por l mismo o por un editor (o superior) y que debern ser aprobados por un jefe de redaccin (o superior) antes de su publicacin. Editor: Posee los mismos privilegios que el autor, adems de poder editar incluso los contenidos de los que no es autor; aunque no puede aprobar ningn contenido para su publicacin. Jefe de redaccin: Suma a los privilegios del editor la posibilidad de aprobar contenidos para su publicacin.

EJERCICIO

Crear los siguientes usuarios

Nombre registrado autor editor jefe

Clave registrado autor editor jefe

Tipo registrado autor editor jefe

Contribuir con artculos desde la portada

Para que los usuarios especiales puedan contribuir con artculos 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> Artculos> Artculo> Diseo para introducir artculos.

EJERCICIO

Crear en el men secundario un tem llamado Enviar artculo que sirva para contribuir con artculos. Qu pasa cuando un annimo o registrado hace clic sobre este tem? Asignar al tem el nivel de acceso especial. Enviar un artculo como autor para que se muestre en la pgina inicial. Comprobar que el editor puede verlo y modificarlo pero no publicarlo. Comprobar que el jefe de redaccin s puede publicarlo. Qu ocurre si el editor termina su sesin mientras est en la pantalla de edicin del artculo y posteriormente intenta editarlo el jefe de redaccin?

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 edicin 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.

Usuarios del back-end

Gestor/Manager: Puede crear secciones/categoras y gestionar los contenidos en general, pero no puede gestionar los usuarios, ni los mens, ni instalar extensiones. Administrador: Tiene permiso para todo excepto para crear super-administradores, instalar idiomas o plantillas, cambiar la configuracin global del sitio o enviar correos masivos. Tampoco puede cerrar la sesin que tenga iniciada otro usuario. Super administrador: Tiene el poder absoluto. Puede haber varios super-administradores en un mismo sistema.

EJERCICIO

Crear los siguientes usuarios

Nombre manager administrador omnipotente

Clave manager administrador omnipotente

Tipo manager administrador superadministrador

EJERCICIO

Intentar crear un usuarios superadministrador desde la cuenta del administrador. Es posible? Entrar en la portada como usuario registrado e intentar cerrar la sesin de este usuario desde el back-end con la cuenta del administrador es posible? y con la del omnipotente?

Administrador multimedia (1/2)

Nuestro sitio Joomla! tiene asociada una galera multimedia organizada en carpetas, y configurable a travs de las siguientes opciones de Sitio> Configuracin global> Sistema: Extensiones permitidas: No podremos subir ningn archivo cuya extensin no est incluida en esta lista (salvo que lo incluyamos expresamente en Extensiones ignoradas). Tamao mximo: El tamao mximo 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 imgenes: Es la nica ruta a la que se pueden subir archivos desde el front-end.

Administrador multimedia (2/2)

Restringir la subida de archivos: Si activamos esta opcin, los usuarios por debajo de gestor slo podrn enviar los tipos de archivos que especifiquemos en Extensiones para imgenes 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 extensin. Extensiones para imgenes autorizadas: Son las nicas extensiones que se admitirn de usuarios inferiores a manager si Restringir la subida de archivos est activada. La validez de la imagen no se asegura slo con su extensin, sino tambin comprobando el encabezado del propio archivo, de modo que slo se podrn utilizar aqu extensiones que correspondan realmente a imgenes. Extensiones ignoradas: Aqu podramos indicar alguna extensin para que jams se restrinja la subida de este tipo de archivos ni se compruebe su tipo MIME. Tipos MIME autorizados: Son los tipos que se permitirn subir. Tipo MIME no autorizado: Son los tipos que no se permitirn subir Activar el sistema Flash para subir archivos: Utiliza una pequea aplicacin Flash para mostrar grficamente el proceso de subida de los archivos.

Insertar una imagen en un artculo

Existen dos formas de insertar una imagen en un artculo:

A travs del icono de TinyMCE podemos insertar imgenes que ya estn publicadas en Internet indicando su URL. A travs del botn Imagen que hay debajo del cuadro de texto del artculo podemos elegir cualquier imagen del Administrador multimedia o subir nuevas imgenes.

Insertar un vnculo/artculo en un artculo

Basta con seleccionar el texto que queremos que acte como vnculo 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 imgenes/archivos subidos al Administrador multimedia.

EJERCICIO

Configura el sitio para que los usuarios autor, editor y jefe de redaccin puedan subir archivos PDF. Como jefe, subir un archivo PDF al Administrador multimedia aparece el archivo? Crear un vnculo al archivo PDF subido dentro del artculo funciona el vnculo?

Definir el prembulo de un artculo

Al crear el cuerpo de una noticia podemos insertar un enlace "Leer ms" pulsando el botn Leer ms que hay en la zona inferior. Este salto se simboliza en el editor de la noticia como una lnea roja. Slo puede haber un enlace de este tipo en la noticia. Todo lo que haya delante de este enlace se considerar perteneciente al prembulo, y se mostrar en la vista de Blog.

Paginar un artculo (1/2)


Podemos dividir el artculo para que se muestre en varias pginas. El lector podr pasar de pgina a travs de una tabla de contenidos o a travs de enlaces a cada una de las pginas, adems de mediante los enlaces Siguiente y Anterior. Para insertar un salto de pgina en el cuerpo de la noticia pulsaremos el botn Salto de pgina de la zona inferior. Indicaremos el nombre de la pgina y aparecer una lnea gris en la zona superior que trasladaremos (mediante cortar y pegar) a la posicin que nos interese. No conviene que haya saltos de pgina dentro del prembulo (si ste existiere), pues anularan la funcin "Leer ms". De hecho, es conveniente utilizar un prembulo, pues en caso contrario los enlaces Siguiente y Anterior pueden provocar resultados inesperados cuando la noticia se muestra como Blog.

Paginar un artculo (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 ttulos de las pginas o bien slo los nmeros de las pginas. Mostrar todo: Si se activa la tabla, esta opcin ofrece al lector la posibilidad de mostrar el artculo en una sola pgina.

EJERCICIO

Crear un artculo con un prembulo y 3 pginas. Configurarlo para que muestre y oculte la tabla de contenidos.

Metadatos de los artculos

Al crear un artculo disponemos de la seccin Informacin de metadatos, en la que podemos indicar una descripcin, palabras clave, robots y autor. Esta informacin es importante, pues pueden consultarla otros componentes/mdulos como los de bsqueda y los de banners.

Valoracin de los artculos

Joomla! permite a los usuarios valorar los artculos emitiendo un voto. Para activar esta posibilidad recurriremos a Contenidos> Administrador de artculos> Preferencias y seleccionaremos la opcin Mostrar de la seccin Calificacin/Votacin del artculo. El sistema de votacin est basado en el plug-in ContentRating que, de forma predeterminada, est activado. En la base de datos de Joomla! se almacena la direccin IP desde la que se ha producido la ltima votacin, de modo que no se podr emitir otro voto desde esa IP hasta que se registre un voto procedente de una IP diferente.

Suscripcin de noticias

Hay 2 formas de mostrar una suscripcin RSS:

Mediante el componente Suscripcin de noticias, que permite clasificar las suscripciones en categoras, pero que, por ser un componente, debe ser vinculado a travs de un tem de men. Mediante un mdulo de tipo Presentacin de la suscripcin, que, por ser un mdulo, puede mostrarse en cualquier pgina de nuestro sitio, pero que no admite categoras.

Componente Suscripcin de noticias (com_newsfeeds)


Este componente se gestiona a travs de Componentes> Suscripcin de noticias. Antes de poder crear una suscripcin es necesario configurar las categoras (Componentes> Suscripcin de noticias> Categoras> Crear). Para crear una nueva suscripcin utilizaremos Componentes> Suscripcin de noticias> Suscripciones> Crear e indicaremos el URL (enlace) del proveedor. Al crear el tem del men podremos optar entre:

Mostrar la lista de categoras. Mostrar las suscriciones de una categora concreta. Mostrar las noticias de una suscripcin concreta.

EJERCICIO

Crear una categora de suscripciones llamada Prensa. Crear una suscripcin a la pgina de deportes del ABC dentro de la categoras Prensa y asignarla el nombre Deportes. Crear un tem de men en el men secundario que permita acceder directamente a esta suscripcin.

Mdulo Presentacin de la suscripcin (mod_feed)

Este mdulo nos permite mostrar una suscripcin concreta (independiente de las del componente descrito anteriormente) en cualquier pgina de nuestro sitio. Para crear una instancia de este mdulo seleccionaremos Extensiones> Administrador de mdulos> Crear nuevo> Presentacin de la subscripcin e indicaremos el URL del alimentador.

EJERCICIO

Crear una instancia del mdulo Presentacin de la suscripcin en la pgina inicial para mostrar las noticias de economa de El Pas.

Nuestro sitio como fuente de sindicacin (mod_syndicate)

Cada pgina de nuestro sitio que muestre contenidos (artculos) puede ofrecer informacin fuente para agregadores u otros sitios con slo incluir en ella una instancia del mdulo Subscripcin de noticias. Este mdulo admite los estndares RSS y Atom y, por convenido, suele ubicarse en el marcador de posicin syndicate de la plantilla (que, por lo general, est en la zona inferior). Ntese que ese mdulo genera el feed a partir del contenido de la pgina en la que se encuentra. Por ejemplo, si la pgina muestra una categora concreta, el feed slo contendr los artculos de esa categora.

EJERCICIO

Crear 2 categoras en la seccin Noticias llamadas Cursos y Recursos. Escribir un artculo de ejemplo en cada una de ellas. Crear un tem en el men secundario para cada una de estas categoras. Incluir el mdulo Subscripcin de noticias (mod_syndicate) slo en las pginas de estas dos categoras.

Bsquedas

Disponemos de un componente y de un mdulo de bsquedas:


El componente Search El mdulo mod_search

El componente Search

El componente Search se crea directamente a travs de un tem de men, y entre sus caractersticas cabe destacar:

La posibilidad de permitir elegir al usuario dnde quiere buscar (artculos, contactos, categoras, suscripciones de noticias, ) mediante el parmetro bsico Usar las reas de bsqueda A travs de Componentes> Bsqueda podemos ver la estadstica de las bsquedas realizadas en nuestro sitio por los usuarios. Estas estadsticas se activan mediante Preferencias> Buscar las estadsticas de bsqueda. Busca dentro de los metadata de los artculos, pero no dentro de los artculos de las subscripciones de noticias.

El mdulo mod_search

El mdulo acta en realidad como un vnculo al componente, con la ventaja de que podemos mostrarlo (por ser un mdulo) en las pginas que queramos. Para crear un mdulo de este tipo recurriremos a Extensiones> Administrador de mdulos> Crear nuevo> Buscar. Por supuesto, las bsquedas realizadas a travs de este mdulo tambin se reflejan en Preferencias> Buscar las estadsticas de bsqueda.

EJERCICIO

Crear un tem de men vinculado al componente Buscar. Crear un mdulo de bsqueda que se muestre slo en algunas pginas.

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 mdulo mod_poll. Los resultados de las encuestas estn disponibles a travs del propio componente, de modo que podemos acceder a ellos a travs de un tem de men. El mdulo puede tener un nivel de acceso restringido y, sin embargo, los resultados (mostrados a travs de un tem de men) pueden ser de acceso pblico. Aunque el componente Encuestas permite establecer un Intervalo de tiempo entre votos desde un mismo ordenador, este sistema est basado en cookies y es fcilmente esquivable.

EJERCICIO

Crear dos encuestas y publicarlas slo en la pgina principal mediante sus respectivos mdulos. Configurar estos mdulos para que tengan acceso especial. Crear un tem de men que permita acceder a los resultados de las encuestas pblicamente.

Enlaces Web

Podemos incluir en nuestro sitio Joomla! una coleccin de enlaces web clasificados en categoras. Las categoras y los enlaces se administran a travs de Componentes> Enlaces web. Este componente nos permite generar tems de men para mostrar La lista de categoras Los enlaces que forman parte de una categora El formulario para proponer nuevos enlaces. Este formulario slo es accesible para los usuarios especiales (no annimos ni registrados). Los enlaces propuestos se aprueban automticamente, aunque se enva un mail al administrador para que pueda verificarlos.

EJERCICIO

Crear 2 categoras de enlaces web, una de acceso pblico y otra de acceso especial. Crear un tem de men que permita acceder a la lista de categoras. Crear 2 sub-tems de men, dentro del anterior, que permitan acceder a cada una de las categoras. Qu nivel de acceso deberan tener estos subitem? Crear un tercer sub-tem de men que permita proponer nuevos enlaces. Qu nivel de acceso debera tener este sub-item?

Contactos

Joomla! nos permite mantener una agenda de contactos clasificados en categoras. La creacin/edicin de los contactos slo es posible a travs del back-end mediante Componentes> Administrador de contactos. Las categoras y los propios contactos pueden tener su propio nivel de acceso. Mediante tems de men podemos mostrar la lista de categoras 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 tambin su informacin de contacto.

EJERCICIO

Crear 2 categoras de contactos: Amigos y Clientes. Crear varios contactos en cada una de estas categoras. Crear tems de men que permitan acceder a la lista de categoras y a un contacto concreto. Pueden crearse nuevos contactos desde el front-end?

Banners

Joomla! nos ofrece un potente gestor de anuncios basado en clientes/categoras/banners. Los banners son imgenes que debemos almacenar mediante el Administrador multimedia en /images/banners. Los banners pueden tener un nmero de impresiones concreto o ilimitado. Automticamente se mantiene un registro del nmero de impresiones y del nmero de clics. Opcionalmente, a travs 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 mdulo de tipo banner. Este mdulo puede mostrar los banners aleatoriamente, ordenadamente o segn el contenido de la propia pgina.

Banners: categoras y clientes

Cada Banner debe tener: Una categora Un cliente Una imagen Las categoras no son dependientes de los clientes ni viceversa. Las categoras nos permiten establecer niveles de acceso, pues los banners en s no ofrecen esta posibilidad. Las categoras se gestionan mediante Componentes> Banner> Categoras. Los clientes son bsicamente una base de datos de contactos para nuestro uso particular. Se gestionan mediante Componentes> Banner> Clientes.

Banners: Crear un banner

El banner en s suele ser una imagen de 468x60 pxeles 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 pgina. Los banners tienen un orden, que puede elegirse como criterio en el momento de visualizarlos en la pgina, aunque tambin se pueden mostrar aleatoriamente. Es fundamental indicar el destino del banner mediante la opcin URL al hacer clic. El nmero de impresiones del banner puede ser ilimitado o especificarse mediante Clics comprados. Al alcanzar el lmite, el banner dejar automticamente de estar publicado. Adems, los banners pueden tener asociadas etiquetas, de modo que slo se muestren cuando en la pgina que est viendo el usuario haya un artculo que contenga alguna de esas etiquetas entre sus palabras clave (no busca en la descripcin).

Banners: Mostrar los banners

La gestin de los banners se realiza a travs del componente, como hemos explicado anteriormente, pero su visualizacin est encargada al mdulo mod_banners. Algunos parmetros interesantes de este mdulo son: Destino: Dnde se mostrar la URL asociada la banner si el usuarios hiciera clic sobre l. Cantidad: Nmero de banners a mostrar; siempre aparecern en primer lugar los destacados. Clientes y Categoras: Permite filtrar los banners para que slo se muestren los de un determinado cliente o categora. Buscar por etiquetas: Slo se mostrarn los banners cuyas etiquetas coincidan con alguna de las palabras clave del artculo que contiene la pgina. Aleatorio: Dentro de los banners destacados, podemos elegir mostrarlos ordenados o aleatoriamente. Generalmente el mdulo mod_banners se configura para ser mostrado en todas las pginas, pues hay artculos que no tienen un tem de men especfico, sino que se llega a ellos a travs de categoras/secciones o bsquedas.

Banners: Registro de impresiones y clics

Mediante el botn 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 estadsticas se almacenan en la tabla jos_bannertrack.

EJERCICIO

Crear un artculo que tenga como palabra clave "joomla". Crear 2 clientes de banners llamados "Cliente 1" y "Cliente 2" Crear 2 categoras de banners llamadas "Categora 1" y "Categora 2" Crear 2 banners, uno asociado al cliente 1 y a la categora 1, y otro asociado al cliente 2 y a la categora 2. Realizar distintas pruebas con el mdulo, 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.

Mdulo Contenido archivado


Este mdulo muestra una lista con formato mes, ao que nos permite acceder a los artculos archivados. La longitud de esta lista est controlada por el parmetro Cantidad. Por supuesto, siempre se muestra del ms reciente al ms antiguo. Para archivar artculos tendramos que seleccionarlos en Contenidos> Administrador de artculos y pulsar el botn Archivar. Los artculos archivados no se pueden editar ni se incluyen en las bsquedas. Los artculos archivados se pueden restaurar con el botn Restaurar. Nota: Tambin existe el componente Lista de artculos archivados que ofrece muchos ms criterios de ordenacin.

EJERCICIO

Archivar varios artculos, modificando su fecha de creacin para que correspondan a meses diferentes. Incluir el mdulo Contenido archivado y comprobar su funcionamiento. Crear un tem de men que conduzca a una pgina de contenidos archivados.

Mdulo Ruta de acceso

Muestra el "camino de migas" (bread crumbs) a travs de los tems de mens. Puede producir resultados duplicados en caso de utilizar tems de mens anidados dentro del tem que conduce a la pgina inicial. El separados predeterminado es >>, pero podemos elegir cualquier otro. Este mdulo suele incluirse en la seccin breadcrumb de la plantilla.

Mdulo ltimas publicaciones


Muestra los ltimos artculos publicados y asignados a alguna seccin/categoras. Esta lista tiene en cuenta el nivel de acceso de la seccin/categora y del propio artculo. Algunos parmetros de inters: Cantidad: Cuntos artculos 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 artculos publicados que no son suyos. ID: Permite especificar un ID concreto de seccin y/o categora para que sean las nicas tenidas en cuenta para la elaboracin de la lista. Estos ID estn disponibles en el administrador de secciones/categoras.

EJERCICIO

Cuando un usuario inicie su sesin, redirigirlo a una pgina en la que se le ofrezca la posibilidad de modificar sus datos de usuario y adems 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> Diseo del formulario del usuario, y recurrir al parmetro URL de redireccionamiento de inicio de sesin del mdulo login para enviar al usuario a la pgina de ese men. Copie el enlace de esta pgina e intente acceder como usuario annimo. Qu problema se produce si pulsa el botn Guardar?cmo podra evitarlo?

Mdulo Destacadas

Muestra uno o ms artculos de la categora que seleccionemos. El artculo puede elegirse al azar o mostrarse todos los de la categora en horizontal o vertical. Tambin podemos limitar el nmero de artculos a mostrar. Puede resultar til tener una categora para noticias de estilo "post-it", es decir, breves pero importantes, y mostrarlas en la columna derecha de la pgina principal.

EJERCICIO

Crear una categora de artculos llamada postit e incluir en ella varias noticias breves. Configurar un mdulo para que se muestren todas estas noticias verticalmente en la columna derecha de la pgina principal, sin el ttulo del artculo, sin los ttulos enlazados, y sin la posibilidad de leer ms all del prembulo.

Mdulo 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 mdulo. Nos permite especificar el tamao mximo de las imgenes, y tambin un URL de redireccionamiento al hacer clic sobre la imagen. El URL de la carpeta es siempre relativo a la carpeta raz de Joomla!. Por ejemplo, /images/stories.

EJERCICIO

Mediante el administrador multimedia, crear una carpeta llamada MisFotos (dentro de images) e incluir en ella varias imgenes (por ejemplo, de National Geographics). Configurar el mdulo Imagen aleatoria para que muestre imgenes al azar de esta carpeta y, en caso de hacer clic sobre alguna de ellas, dirija al usuario a la pgina de National Geographics.

Mdulo Quin est en lnea

Permite mostrar el nmero de usuarios registrados y annimos que estn visitando el sitio, o slo el nombre de los usuarios registrados que estn visitando el sitio, o ambos. Si vamos a mostrar el nombre de los usuarios quizs sea aconsejable asignar a este mdulo el nivel de acceso, al menos, registrado.

EJERCICIO

Configurar un mdulo Quin est en lnea que muestre los nombres de los usuarios que estn visitando el sitio, pero slo a los usuarios con nivel registrado o superior.

Mdulo HTML personalizado

Este mdulo puede resultar til cuando queremos mostrar informacin esttica (texto e imgenes) en alguna pgina de nuestro sitio, aprovechando los elementos HTML.

Mdulo Pie de pgina

Este mdulo simplemente muestra la informacin de copyright de Joomla! junto con el nombre de nuestro sitio web.

Mdulo Contenido ms ledo

Este mdulo muestra la lista de los artculos que han tenido ms accesos. El nmero de accesos puede consultarse en la columna Clics de Administrador de contenidos. Mediante los parmetros de este mdulo podemos establecer la longitud de la lista y si queremos incluir en ella tambin los artculos configurados para mostrarse en la pgina inicial, pero lo ms importante es que podemos filtrar las secciones y categoras que se tendrn en cuenta a travs de su ID. Este ID puede consultarse Administrador de secciones y Administrador de categoras. Si desea filtrar varias secciones/categoras, escriba sus nmeros separados por comas.

EJERCICIO

Configurar un mdulo de tipo Contenido ms ledo para que muestre los ttulos de los artculos ms ledos de dos categoras (que identificaremos mediante sus ID separados por comas).

Mdulo Items relacionados

Cuando accedemos a una pgina en la que se muestra un artculo, este mdulo localiza los ttulos de todos los dems artculos que pudieran compartir alguna palabra clave (dentro de los meta datos) con l, y los muestra en una lista. El nico parmetro de este mdulo relevante es el que permite mostrar la fecha junto a los ttulos de los artculos.

EJERCICIO

Crear 3 artculos que compartan una misma palabra clave. Crear un tem de men que permita acceder a uno de estos artculos. Insertar un mdulo de tipo Items relacionados que se muestre en todas las pginas, configurado para aparecer en la posicin footer e indicando la fecha de los artculos relacionados.

Mdulo Secciones

Muestra una lista de las secciones disponibles en nuestro sitio web. Aunque existe un parmetro llamado Mostrar enlaces no autorizados que podra mostrar incluso las secciones a las que el usuario no tiene acceso por su nivel de privilegios, esta opcin an no est implementada. Podemos determinar la longitud de la lista, que aparece ordenada segn el ID de las secciones.

Mdulo Wrapper

Este mdulo crea un intraframe (iframe), es decir, un marco capaz de mostrar otra pgina web dentro de nuestro sitio. Para configurar este mdulo deberemos indicar el URL de la pgina que queremos mostrar.

EJERCICIO

Crear un mdulo de tipo Wrapper con 500 pxeles de altura y cuya URL sea www.villatic.org/carpetaJuanfe/campoMinas/ campoMinas.html

Mensajera interna del back-end

Es importante que los usuarios del back-end mantengan un vnculo estrecho entre s para facilitar las tareas de administracin, especialmente en sitios muy complejos. Con este objetivo Joomla! nos ofrece un sistema de mensajera 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 botn Crear. Los super-administradores tambin pueden acceder a este sistema mediante las opciones Leer los mensajes y Escribir un mensaje del men Herramientas. A travs de este sistema el super-administrador recibe una notificacin cada vez que algn usuario especial enva un artculo (sin embargo, las notificaciones de envo de enlaces web (que no requieren aprobacin) se notifican al administrador a travs del correo externo). Si lo deseamos, podemos solicitar tambin que se nos notifiquen por e-mail externo los mensajes que recibamos en el correo interno; para ello recurriremos al botn Preferencias.

EJERCICIO

Enviar un mensaje interno desde el manager al super-administrador y que ste lo conteste. Configurar la notificacin de mensajes internos a travs de e-mail externo para el super-administrador.

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 opcin est disponible a travs de Herramientas> Correo masivo. Suele ser aconsejable mantener activada la casilla Recipients as BCC, pues de otro modo se revelaran la direcciones de correo electrnico a todos los destinatarios.

Ampliar Joomla!

1.

2. 3.

4.

Para ampliar las posibilidades de Joomla! podemos instalar extensiones, que pueden ser de varios tipos: Componentes Mdulos 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 ZIP) de la extensin que queremos instalar. Seleccionamos Extensiones> Instalar/Desinstalar. Pulsamos el botn Examinar para seleccionar el archivo comprimido. Pulsamos el botn Subir archivo & instalar.

yvComment: Comentarios

yvComment es una extensin que permite a los usuarios comentar los artculos publicados en Joomla!, de modo que adquirimos as una de las principales caractersticas de los blogs. Esta extensin es muy interesante porque ilustra cmo pueden aprovecharse los componentes intrnsecos de Joomla! para obtener nuevas funcionalidades; en este caso, los componentes se almacenan como artculos de una seccin y categora concreta.

yvComment: Obtencin

La versin que vamos a utilizar es la 1.15, y est compuesta por un componente, un plugin 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

yvComment: Preparativos previos a la instalacin

Antes de instalar yvComment debemos crear una seccin y una categora dentro de ella para indicar al programa que almacene en ella los comentarios. Por ejemplo, crear la seccin Comentarios y, dentro de ella, la categora Comentarios. Si queremos permitir que los usuarios annimos puedan comentar noticias tendremos que crear un usuarios nuevo con nivel de autor (por ejemplo, comentarioAnonimo), que figurar como remitente de todos los comentarios annimos.

yvComment: Instalacin

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 instantneamente al castellano.

yvComment: Configuracin bsica

El componente meramente ofrece una lista de todos los comentarios. Toda la configuracin de yvComment se realiza a travs de su plug-in Extensiones> Administrador de plug-ins> yvcomment Los parmetros fundamentales que debemos configurar son:

Utilizar tabla de contenido 'Content': S Seccin para comentarios Categora para los comentarios

Adems, por supuesto, debemos activar el plug-in.

yvComment: Configurar la presentacin y el acceso a los comentarios


Usar archivo CSS influye sobre el aspecto de presentacin de los comentarios. Enlazar el texto 'Comentarios(n)' controla cmo se gestionan los comentarios en las pginas que muestran artculos en forma de blog:

No: Muestra el nmero de comentarios. Pgina de artculo con comentarios: Convierte el nmero de comentarios en un enlace, o muestra el enlace agrega tu comentario si no hay ninguno previo. Comentarios de un artculo: Igual que la opcin anterior (pero tambin afecta al primer artculo de la pgina). Ocultar: No muestra ninguna informacin referente a los enlaces.

Nombre del autor enlazable: Vincula el nombre del autor a la pgina web que tengamos registrada para l en los contactos.

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 mxima del comentarios, y el tiempo mnimo entre comentarios de un mismo usuario para cualquier artculo.

yvComment: Gestionar los comentarios annimos


Nombre de usuario de Visitante debe ser el usuario que configuramos como autor en los preparativos previos a la instalacin. La opcin Verificar nombre de visitante impide que se utilice un nombre parecido al de algn miembro registrado de Joomla! Si los comentarios no se publican automticamente, tendrn el mismo tratamiento que un artculo cualquiera, es decir, debern ser aprobados por un jefe o superior. La gestin 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, )

yvComment: Combatir el spam

yvComment nos permite solicitar una cadena de caracteres inaccesible a los robots antes de admitir los comentarios procedentes de usuarios annimos. No obstante, esta funcionalidad se apoya en un plug-in llamado Bigo Captcha, que deberemos instalar y activar. Su nico parmetro de configuracin es la longitud de la cadena de seguridad.

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 parmetro Enable Smiley replacement for the whole page y desactivando su parmetro Enable Smileys for the texto of articles.

yvComment: Notificacin 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 artculos (inferiores a jefes). La lista de usuarios debe separarse mediante comas.

yvComment: Vistas de comentarios

El componente yvComment nos ofrece dos vistas para items de mens:

Comentarios de un artculo: Muestra todos los comentarios de un artculo y permite aadir nuevos, pero no editar los existentes. Lista de comentarios: Muestra los comentarios de una seccin y/o categora permitiendo a los usuarios con privilegios suficientes modificarlos.

Attachments: Adjuntar archivos a los artculos


Esta extensin permite adjuntar archivos a los artculos. 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.

Attachments: Configuracin

La configuracin de esta extensin se realiza a travs de Componentes> Archivos adjuntos> Preferencias: Podemos decidir quin puede ver y quin puede agregar archivos adjuntos. Generalmente slo interesa que el propio autor pueda adjuntar nuevos archivos. Podemos configurar que los archivos adjuntos se publiquen automticamente, si no debern ser aprobados desde el backend. Podemos elegir la carpeta en la que se almacenarn los archivos adjuntos, y solicitar que se almacenen con un prefijo que coincida con el id del artculo. Existe un modo de descarga segura que impide accesos directos a los archivos; slo se podr acceder a travs de nuestro sitio una vez indicadas las credenciales. Podemos ocultar los archivos adjuntos de ciertas secciones/categoras con el formato (idSeccin/idCategora) y separados por comas.

Attachments: Utilizacin

No se pueden adjuntar archivos en el mismo momento de la creacin de un artculo; slo podremos hacerlo despus de guardarlo mediante dos mtodos:

Editando el artculo y utilizando el botn Agregar un archivo adjunto, que aparece junto a Imagen, Salto de pgina, Utilizando el enlace Agregar un archivo adjunto que se muestra al visualizar el artculo independientemente o en formato de blog.

Remository: Gestor de descargas

Remository es un componente que nos permite configurar un gestor de descargas con las siguientes caractersticas:

Contenedores o carpetas configurables. Edicin de roles para subir/descargar/modificar descargas. Gestor de grupos. Filtrado de archivos para que slo se puedan subir ciertas extensiones.

No es necesario crear un tem de men, pues se crea automticamente durante la instalacin.

Remository: Configuracin

Componentes> Remository> Configuration donde las fichas ms importantes son:

Permisos: Aqu podemos establecer las extensiones de los archivos admitidos, si las subidas se autopublicarn, Download text: Nos permite eliminar la publicidad de Google.

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.

Remository: Contenedores

Los contenedores son una jerarqua 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.

Remository: Aprobacin y publicacin de descargas

Por defecto, el administrador deber aprobar las descargas propuestas por los usuarios a travs de Approve uploads (aunque mediante la configuracin de permisos podemos establecer que las descargas propuestas por usuarios registrados se aprueben y publiquen automticamente). Las descargas aprobadas pueden publicarse o despublicarse mediante Manage files. Manage files tambin nos permite crear automticamente nuevas descargas con archivos subidos desde nuestro propio ordenador o remotos.

Remository: Valoracin y comentarios de descargas

Remository permite a los usuarios puntuar y comentar las descargas (aunque puede evitarse mediante la configuracin de permisos). Las votaciones pueden consultarse mediante Statistics, que nos muestra las 5 descargas ms solicitadas, las 5 mejor valoradas y las 5 que ms han sido votadas (independientemente de si los votos fueran positivos o negativos). Los comentarios de las descargas pueden borrarse mediante Manage files.

JEvents: Calendarios y eventos

JEvents es un potente gestor de agenda/calendario/eventos. Los eventos deben clasificarse en categoras y disponen de mltiples opciones de repeticin. JEvents es bsicamente un componente, aunque tambin ofrece mdulos e incluso plug-ins muy interesantes.

JEvents: Componente y mdulos

Instalaremos el componente y los 4 mdulos siguientes:

mod_events_cal: Permite mostrar un calendario mensual en miniatura. mod_events_latest: Muestra los eventos prximos (posteriores o anteriores, segn configuracin) a la fecha actual. mod_events_legend: Muestra la relacin entre categoras y colores. mod_events_switchview: Permite elegir entre varios estilos de calendario diferentes.

JEvents: Instalacin

Tras instalar el componente y los mdulos:

Crear una categora de eventos mediante Componentes> JEvents> Manage categories.

Obsrvese que las categoras pueden anidarse unas dentro de otras y que admiten un color identificativo.

Publicar la categora. En el Cpanel de JEvents, dentro de la ficha derecha Setup, hacer clic sobre los 2 vnculos siguientes:

Migrate admin menus and update databases Migrate all events to icalEvents

JEvents: Configuracin del componente_ Component1

La configuracin del componente y de algunos aspectos de los mdulos se realiza seleccionando Configuration en el cPanel.

Email del admin en el que le sern notificados los nuevos eventos pendientes de aprobacin. Quin tiene acceso al componente Quin puede enviar eventos desde el front-end Formato de la fecha: Continental en nuestro caso

JEvents: Configuracin del componente_ Component2

Los parmetros de esta ficha controlan el aspecto del calendario:


Aos extremos (mximo y mnimo) Vista inicial del componente (mensual, semanal, anual, ) La informacin que debe mostrarse en el detalle de los eventos, es decir, al hacer clic sobre un evento (nmero de accesos, email, )

JEvents: Configuracin del mdulo Calendar


El mdulo Calendar muestra una vista en miniatura del mes actual. Este mdulo puede configurarse desde el propio Administrador de mdulos (por ejemplo, aqu podremos indicar que se muestren slo los eventos de ciertas categoras) o desde la ficha Calendar del componente. Los parmetros de configuracin disponibles en el componente permiten establecer los lmites para que se muestren los meses anteriores y posterior, de modo que el mdulo podra llegar a mostrar hasta 3 meses.

JEvents: Configuracin del mdulo Latest Events

Dispone de opciones de configuracin en el componente y en el mdulo:

En el componente podemos establecer principalmente el nmero de eventos y el modo (si se rellenan las plazas disponibles con eventos ya pasados, y hasta qu fecha) Los parmetros del mdulo permiten filtrar las categoras o particularizar los parmetros establecidos en el componente.

JEvents: Configuracin de los tooltips

La ficha Tooltip de la configuracin del mdulo ofrece parmetros sobre el aspecto de los tooltips que aparecen al colocar el puntero sobre una fecha que contiene eventos.

Posicin Sombra

JEvents: Configuracin del mdulo mod_events_legend

Este mdulo slo tiene sentido cuando se muestra en una pgina asociada al componente JEvents; en cualquier otra pgina mostrar un mensaje de aviso.

JEvents: Gestin de eventos

En sus versiones anteriores, JEvents utilizaba un formato propio para almacenar los eventos; sin embargo, ahora quiere sumarse al estndar iCalendar, de modo que es conveniente que slo creemos eventos de este tipo y que los gestionemos mediante Manage iCAL events. Los eventos no se publican automticamente

JEvents: El mdulo Events View Switcher

Este mdulo simplemente sirve para alterar el aspecto visual del componente en s, y de todos los mdulos que dependen de l.

SlimBox plug-in para Joomla 1.5


Este plug-in permite mostrar versiones ampliadas de las imgenes de un modo muy atractivo. Las versiones en miniatura y a tamao completo de las imgenes deberemos crearlas y subirlas nosotros mismos. La sintaxis es {slimbox a1;a2;a4;} donde a1, a2, a3, son ternas con el formato imagen a tamao completo, imagen en miniatura, ttulo. Las rutas de las imgenes estn referidas a la carpeta raz de Joomla!. Para que slo se muestre la primera miniatura podemos utilizar {slimboxsingle }

EasyTube plug-in

Este plug-in nos permite insertar fcilmente en nuestros artculos vdeos de YouTube y GoogleVideo. Su sintaxis es:

[youtube:url_del_video ancho alto] [googlevideo:url_del_video ancho alto]

Plantillas: Instalacin y gestin

Las plantillas son las responsables del aspecto con que se muestra nuestro sitio Joomla! Se instalan a travs de Extensiones> Instalar/Desinstalar Se gestionan mediante Extensiones> Administrador de plantillas El back-end y el front-end pueden utilizar plantillas diferentes. Adems, cada pgina de nuestro sitio tambin puede usar un pgina diferente. Existe una plantilla predeterminada, que ser la que se aplique en las pginas para las que no se haya especificado una plantilla concreta.

Plantillas: Edicin

Al editar una plantilla podemos:


Asignrsela a items de men concretos. Modificar sus parmetros de configuracin, si los ofreciera. Previsualizarla para ver su aspecto e identificar los contenedores de posicin para mdulos y su estilo. Los estilos determinan cmo se muestran los mdulos y son:

none outline table horz rounded xhtml

Modificar el cdigo (HTML y CSS) de la plantilla.

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 posicin para mdulos.

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 imgenes que se utilizan en los archivos css html: Contiene los archivos necesarios para definir estilos de presentacin de mdulos personalizados. javascript: Algunas plantillas utilizan esta carpeta para almacenar sus guiones javaScript.

Plantillas: Los archivos fundamentales

templateDetails.xml: Contiene toda la informacin referente a la plantilla. Esta informacin se utiliza, por ejemplo, durante la instalacin, para permitir al usuario seleccionar las posiciones de los mdulos o para definir los parmetros de configuracin de la propia plantilla. index.php: Establece la estructura de la plantilla, es decir, configura los contenedores en los que se mostrarn los componentes y mdulos. template.css: Establece el aspecto de la plantilla. params.ini: En este archivo se almacenan los valores configurados para los parmetros 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.

Plantillas: templateDetails.xml
Este archivo debe encontrarse en la carpeta raz de la plantilla y el valor de name se utiliza para crear la carpeta de la plantilla durante la instalacin. Sus secciones principales son: files positions params
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://dev.joomla.org/xml/1.5/template-install.dtd"> <install version="1.5" type="template"> <name>rhuk_milkyway</name> <creationDate>11/20/06</creationDate> <author>Andy Miller</author> <authorEmail>rhuk@rockettheme.com.com</authorEmail> <authorUrl>http://www.rockettheme.com</authorUrl> <copyright></copyright> <license>GNU/GPL</license> <version>1.0.2</version> <description>Descripcin</description> <files> </files> <positions> </positions> <params> </params> </install>

Plantillas: templateDetails.xml, la seccin <files>


En esta seccin deberemos referenciar todos los archivos de los que hace uso la plantilla, incluido el propio templateDetails.xml, aadiendo sus rutas de acceso relativas.
<files> <filename>index.php</filename> <filename>templateDetails.xml</filename> <filename>template_thumbnail.png</filename> <filename>params.ini</filename> <filename>images/arrow.png</filename> <filename>images/indent1.png</filename>

Plantillas: templateDetails.xml, la seccin <positions>


En esta seccin se recogen los nombres de los contenedores de posicin entre los que podr elegir el usuario para colocar sus mdulos. Estos nombres deben coincidir exactamente con los que se crearn en el archivo index.php de la plantilla. Si el archivo index.php contiene posiciones no incluidas en esta seccin, el usuario no podr elegirlas en el cuadro de lista desplegable de posicionamiento de los mdulos y tendr que escribir su nombre manualmente.

<positions> <position>breadcrumb</position> <position>left</position> <position>right</position> <position>top</position> <position>user1</position> <position>user2</position> <position>user3</position> <position>user4</position> <position>footer</position> <position>debug</position> <position>syndicate</position> </positions>

Plantillas: templateDetails.xml, la seccin <params>


En esta seccin podemos definir parmetros de configuracin de la plantilla. Estos parmetros sern configurables por el usuario a travs 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 configuracin establecida por el usuario se almacena en el archivo params.ini dentro de la carpeta raz de la plantilla. Este archivo debemos crearlo manualmente y referenciarlo en la seccin <files>

<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> <option value="green">Green</option> <option value="orange">Orange</option> <option value="black">Black</option> <option value="white">White</option> </param> </params>

Plantillas: index.php

En este archivo se establece la relacin jerrquica (en otras palabras, de dependencia) entre las distintas secciones de la plantilla. Generalmente se utilizan elementos <div>, aunque a veces sigue recurrindose a elementos <table> por su mejor compatibilidad con navegadores antiguos a la hora de colocar elementos con precisin. Para incluir un mdulo se utiliza:
<jdoc:include type="modules" name="posicin" style="estilo" />

Y para incluir el componente se utiliza:


<jdoc:include type="component" />

Plantillas: template.css

En este archivo se determina la posicin 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 quin se aplica el estilo una o ms declaraciones: definen el aspecto del estilo. Cada declaracin 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; }

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 prrafo anidado directamente dentro de div) Descendiente directo: div>p (cualquier prrafo anidado inmediatamente dentro de un div) Adyacente: div+p (cualquier prrafo posterior a un div) Grupo: div, p (cualquier div y cualquier prrafo)

Plantillas: El modelo de caja

Una plantilla bsica

Vamos a crear una plantilla muy sencilla llamada plantilla_basica. Cree la siguiente jerarqua de carpetas:

plantilla_basica dentro de templates images dentro de plantilla_basica css dentro de plantilla_basica

Una plantilla bsica: 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>

Una plantilla bsica: templateDetails.xml (I)

Cree un archivo llamado templateDetails.xml dentro de la carpeta plantilla_basica con el siguiente contenido:

<install version="1.5" type="template"> <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>

Una plantilla bsica: index.php (II)


<?php defined( '_JEXEC' ) or die( 'No eres bien recibido' ); ?> <html> <head> <jdoc:include type="head" /> </head> <body> </body> </html>

Una plantilla bsica: EJERCICIO

Comprobar que la plantilla se muestra en Administrador de plantillas Asignar la plantilla a un tem de men cuyo destino sea un artculo concreto Especificar los metadatos del artculo Acceder al artculo. Aparentemente la pgina est en blanco. Acceder al cdigo fuente de la pgina: Se mostrarn los metadatos del artculo junto con otra informacin.

Una plantilla bsica: 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 informacin de cabecera (metadatos) message: incluye mensajes del sistema y de error module: incluye un mdulo concreto al que identificaremos por su nombre mediante el atributo adicional name modules: incluye todos los mdulos que estn asignados a la posicin que especifiquemos mediante el atributo adicional name

Una plantilla bsica: index.php (III)


Compruebe

que al introducir la siguiente modificacin s aparece el componente:

<?php defined( '_JEXEC' ) or die( 'No eres bien recibido' ); ?> <html> <head> <jdoc:include type="head" /> </head> <body> <jdoc:include type="component" /> </body> </html>

Una plantilla bsica: index.php (IV)


Compruebe

que al introducir la siguiente modificacin aparecen los mdulos debajo del componente; recuerde que el archivo index.php establece la jerarqua, mientras que el archivo template.css establece la posicin/aspecto:

<body> <div id="logo"></div> <div id="col_principal"> <jdoc:include type="component" /> </div> <div id="col_izquierda"> <jdoc:include type="modules" name="left" /> </div> </body>

Una plantilla bsica: 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 pgina por qu?...

#col_principal{ width: 60%; float: right; border: solid black 2px; } #col_izquierda{ width: 35%; float: right; }

Una plantilla bsica: index.php (V)

porque debemos vincular la hoja de estilos css con el archivo de la plantilla index.php

<head> <jdoc:include type="head" /> <link rel="stylesheet" href="<?php echo $this>baseurl ?>/templates/<?php echo $this>template; ?>/css/template.css" type="text/css" /> </head>

Una plantilla bsica: $this

$this es una variable que hace referencia a la pgina 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 pgina title: Ttulo de la pgina (no de la plantilla) description: Descripcin de la pgina language: Idioma de la pgina baseurl: URL de la pgina.

Una plantilla bsica: 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 pxeles:

#logo{ width: 100%; height: 100px; background: url(../images/logo.png) center top no-repeat; } #col_principal{ width: 60%; float: right; border: solid black 2px; }

Una plantilla bsica: estilos estndar para los mdulos (I)


none: No crea ningn contenedor. No muestra el ttulo de los mdulos nunca. table: Presenta el mdulo dentro de un table de clase .moduletable, e incluye su ttulo en un elemento th. horz: Igual que table, pero anidado a su vez en otro table con width=100% xhtml: Presenta el mdulo dentro de un div de clase .moduletable, e incluye su ttulo en un elemento h3. rounded: El contenido del mdulo se anida sucesivamente en 4 elementos div para permitir insertar las imgenes de las esquinas. El div ms externo usa module como nombre de clase. El ttulo se incluye en un elemento h3. outline: Slo se utiliza para previsualizar la informacin de los contenedores de posicin.

Una plantilla bsica: estilos estndar para los mdulos (II)


Cambie en index.php el estilo de la columna izquierda a xhtml: <div id="col_izquierda"> <jdoc:include type="modules" name="left" style="xhtml"/> </div> Introduzca los siguientes estilos en template.css. div.moduletable{ div.moduletable h3{ border: 2px black solid; font-weight: bold; background: #cccccc; font-family: padding: 5px; Helvetica,Arial,sans-serif; margin: 2px; font-size: 20px; } text-align: center; color: blue; background: white; border: 2px #999999 dotted; margin: 5px; }

Una plantilla bsica: Sufijo de clase del mdulo (I)

Entre los parmetros avanzados de los mdulos contamos con Sufijo de clase del mdulo. Este sufijo se aade al nombre de la clase utilizado por el estilo de presentacin del contenedor del mdulo. Por ejemplo, si utilizamos el estilo xhtml para mostrar un mdulo que usa el sufijo _menu, el nombre de clase del div no ser simplemente moduletable, sino moduletable_menu

Una plantilla bsica: Sufijo de clase del mdulo (II)


Configure alguno de los mdulos de la columna izquierda para que use como sufijo _menu, modifique el estilo que tenamos del h3 para que aplique tambin 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; }

Una plantilla bsica: EJERCICIO

Averige cmo se muestran los mens. Cree un estilo que elimine el boliche de los mens. 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 mens a amarillo cuando se coloque el puntero del ratn sobre ellos.

Una plantilla bsica: SOLUCIN EJERCICIO


ul.menu, ul.menu ul{ list-style-type: none; } ul.menu li a{ display: block; color: red; background: white; border: 1px solid black; text-decoration: none; } ul.menu li a:hover{ background: yellow; }

Una plantilla bsica: mens redondeados (I)

Configuramos la columna izquierda para que use el estilo rounded en lugar de xhtml.

<div id="col_izquierda"> <jdoc:include type="modules" name="left" style="rounded"/> </div>

Incluimos el selector div.module en el estilo que ya tenamos de div.moduletable y tambin 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;

Una plantilla bsica: mens redondeados (II)

Creamos los estilos correspondientes a los cuatro div de module_menu, teniendo en cuenta el solapamiento de las imgenes

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 norepeat; }

Una plantilla bsica: Favicon


Crear una imagen de 16x16 pxeles, 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="head" /> <link rel="shortcut icon" href="<?php echo $this>baseurl ?>/templates/<?php echo $this>template; ?>/images/favicon.ico" />

Una plantilla bsica: un men de lengetas (I)


Empezaremos creando una nueva seccin entre el logo y las columnas <div id="logo"></div> <div id="user3"> <jdoc:include type="modules" name="user3"/> </div> y definimos su estilo para que se muestre centrado #user3{ width: 650px; position: relative; left: 50%; margin-left: -325px; }

Una plantilla bsica: un men de lengetas (II)

Definimos estilos especficos para los elementos de lista de esta nueva posicin. La imagen de la lengeta mide 100x30 pxeles

#user3 ul{ text-align: center; } #user3 li{ float: left; width: 100px; height: 30px; background: url(../images/lengueta.png) no-repeat; padding-top: 5px; }

Una plantilla bsica: un men de lengetas (III)


#user3 li a{ color: blue; background: transparent; height: 30px; border: 0px; } #user3 li a:hover{ color: navy; }

Una plantilla bsica: un men de lengetas (IV) Y creamos una divisin bajo el men que no admita elementos flotantes a ninguno de sus lados
<div id="user3"> <jdoc:include type="modules" name="user3"/> </div> <div class="separadorHorizontal"></div> con su correspondiente estilo: .separadorHorizontal{ clear: both; width: 100%; }

Una plantilla bsica: Tercera columna opcional (I)

Supongamos que queremos disponer de una columna 'right' pero que slo se muestre cuando realmente tenga mdulos asignados. En caso de mostrarse tendramos que reconfigurar los anchos de las 3 columnas, por ejemplo:

col_izquierda: 20% col_principal: 55% col_derecha: 20%

Una plantilla bsica: Tercera columna opcional (II)


Recurriremos al mtodo $this>countModules('right') para saber si hay mdulos a la derecha o no, mostrando la columna slo cuando sea necesario. <div class="separadorHorizontal"></div> <?php if($this->countModules('right')): ?> <div id="col_derecha"> <jdoc:include type="modules" name="right" style="xhtml"/> </div> <?php endif; ?> <div id="col_principal">

Una plantilla bsica: 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="col_principal_reducida"> <?php else: ?> <div id="col_principal"> <?php endif; ?> <jdoc:include type="component" /> </div> <?php if($this->countModules('right')): ?> <div id="col_izquierda_reducida"> <?php else: ?> <div id="col_izquierda"> <?php endif; ?> <jdoc:include type="modules" name="left" style="rounded"/>

Una plantilla bsica: Tercera columna opcional (IV)


Creamos el estilo de la 3 columna: #col_derecha{ width:20%; float: right; margin: 0; padding: 0; max-width: 400px; }

Una plantilla bsica: Tercera columna opcional (V)


#col_principal_reducida{ width: 55%; float: right; border: solid black 2px; margin: 0; padding: 0; } #col_izquierda_reducida{ width: 20%; float: right; margin: 0; padding: 0; max-width: 400px; }

Una plantilla bsica: Parmetros de plantilla (I)


Vamos a permitir que el color de fondo del logo se elija mediante un parmetro 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>

Una plantilla bsica: Parmetros de plantilla (II)


La definicin del parmetro en el archivo templateDetails.xml es la siguiente: <params> <param name="colorFondo" type="list" default="azul" label="Color de fondo" description="Elija un color para el fondo del logotipo"> <option value="azul">Azul</option> <option value="rojo">Rojo</option> <option value="verde">Verde</option> </param> </params>

Una plantilla bsica: Parmetros de plantilla (III)


Para que se puedan almacenar los valores de los parmetros configurados por el usuario debemos crear en la raz de la plantilla un archivo llamado params.ini, e incluirlo en la seccin files de templateDetails.xml <filename>index.php</filename> <filename>templateDetails.xml</filename> <filename>params.ini</filename> <filename>css/template.css</filename>

Una plantilla bsica: Parmetros de plantilla (IV)


Modificamos el archivo index.php para que se aada un sufijo a la clase del logo en funcin del color elegido <body> <div id="logo_<?php echo $this>params->get('colorFondo'); ?>"></div> <div id="user3">

Una plantilla bsica: Parmetros 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; }

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 configuracin inicial de una forma sencilla y rpida

Clonar un sitio Joomla! (II)

1.

El procedimiento general a seguir sera:


Poner en modo Offline el sitio original para impedir que puedan introducirse modificaciones desde el front-end en la bases de datos (por ejemplo, nuevos artculos). Realizar una copia de seguridad de la base de datos. Trasladar todos los archivos del sitio Joomla! original a su nueva ubicacin, preferiblemente mediante FTP. Restaurar la copia de seguridad de la base de datos en el nuevo servidor. Introducir las modificaciones necesarias en el archivo configuration.php Verificar ciertos aspectos dependientes del servidor, como las funciones de correo

2. 3.

4.

5.

6.

Crear una copia de seguridad de la base de datos de Joomla!

El modo ms sencillo de crear una copia de seguridad de una base de datos es a travs de la funcin de exportacin de phpMyAdmin. No obstante, para el caso concreto de Joomla! existe una extensin que realiza copias de seguridad diarias de forma automtica (con la posibilidad incluso de envirnoslas por correo electrnico). Su nombre es LazyBackup.

LazyBackup

No olvidar activar el plug-in. LazyBackup crea automticamente una copia de seguridad de la base de datos de Joomla! y la almacena en la carpeta media. El archivo de seguridad tiene la extensin sql o gz, segn qu valor asignemos al parmetro Compress backup file. Su ejecucin se produce cuando alguien accede a nuestra pgina web, bien desde el front-end o bien desde el back-end (si no accede nadie no se crea copia de seguridad ese da). Para que slo se cree una copia de seguridad diaria (aunque accedan ms personas a nuestro sitio ese mismo da) es fundamental asignar el valor No al parmetro Testing de ese plug-in.

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 sera realizar la restauracin a travs de una conexin 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.

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

bigdump.php (II)

A continuacin 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 encontrarn ya las copias de seguridad realizadas con LazyBackup anteriormente.

bigdump.php (III)

A continuacin 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 encontrarn 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 aqul que queramos restaurar. Si la importacin es correcta, aparecer una pantalla similar a sta indicndolo.

Adaptar el archivo configuration.php (I)

El archivo configuration.php de Joomla! debe conocer la informacin 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 raz y accederemos a l mediante el navegador.

<?php echo __FILE__; ?>

Adaptar el archivo configuration.php (II)


Concretamente, las lneas a configurar sern 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'; //contrasea 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

Verificar la rplica

Debe prestarse especial atencin a la verificacin de las funciones de correo, la configuracin de la capa FTP, y el funcionamiento de las extensiones que requieran gestin 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.

Crear un componente bsico

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 lgica de la aplicacin, decidiendo cundo se debe recurrir a cada vista y a cada modelo.

Sin embargo, en este ejemplo adoptaremos un sistema ms bsico, en el que simplemente aislaremos la presentacin del resto (la preparacin de los datos y la lgica de la aplicacin).

Crear un componente bsico

Nuestro componente permitir mostrar las calificaciones de los alumnos, pero slo a sus respectivos padres. Cree una subcarpeta llamada com_calificaciones en cada una de las siguientes carpetas:

components administrator/components

Crear un componente bsico


Dentro de la carpeta /components/com_calificaciones, cree un archivo llamado calificaciones.php con el siguiente contenido: <?php defined('_JEXEC') or die ('No eres bien recibido'); echo '<div class="componentheading">Calificaciones</div>'; ?> Acceda al componente desde el front-end escribiendo en el navegador la ruta de su sitio seguida de index.php?option=com_calificaciones

Crear un componente bsico


Dentro de la carpeta /administrator/components/com_calificaciones, cree un archivo llamado admin.calificaciones.php con el siguiente contenido: <?php defined('_JEXEC') or die ('No eres bien recibido'); echo 'Calificaciones'; ?> Acceda al componente desde el back-end escribiendo en el navegador la ruta de su sitio seguida de /administrator/index.php?option=com_calificaciones

Crear un componente bsico

Para que Joomla! reconozca el componente debemos registrarlo en su tabla jos_components. Acceda a esta tabla mediante phpMyAdmin e inserte en ella un nuevo registro configurado del modo indicado. Compruebe que ahora s puede crear un tem de men para acceder al componente desde el frontend.

Crear un componente bsico

En el back-end, nuestro componente permitir mostrar la lista completa de alumnos y acceder a alumnos concretos. Necesitaremos 2 barras de herramientas:

Una para la lista completa que permita publicar/despublicar/modificar/crear alumnos. Una para los modos de modificacin y creacin de alumnos que permita aplicar/guardar/cancelar los cambios.

Crear un componente bsico

En el back-end, nuestro componente permitir mostrar la lista completa de alumnos o acceder a alumnos concretos. Necesitaremos 2 barras de herramientas:

Una para la lista completa que permita publicar/despublicar/modificar/crear alumnos. Una para los modos de modificacin y creacin de alumnos que permita aplicar/guardar/cancelar los cambios.

Crear un componente bsico


Empezaremos creando el archivo responsable de la presentacin de las barras de herramientas. Dentro de la carpeta /administrator/com ponents/com_califi caciones, cree un archivo llamado toolbar.calificaci ones.html.php con el contenido indicado
<?php defined('_JEXEC') or die ('No eres bien recibido'); class TOOLBAR_calificaciones{ function _NEW(){ JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel(); } function _DEFAULT(){ JToolBarHelper::title(JText::_('Calificaciones'), 'generic.png'); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::editList(); JToolBarHelper::deleteList(); JToolBarHelper::addNew(); } } ?>

Crear un componente bsico


Y ahora creamos el archivo responsable del funcionamiento de las barras de herramientas. Dentro de la carpeta /administrator/comp onents/com_calificac iones, cree un archivo llamado toolbar.calificacion es.php con el contenido indicado. Compruebe que se presenta la barra de herramientas predeterminada pero que sus botones an no funcionan. <?php defined('_JEXEC') or die ('No eres bien recibido'); require_once(JApplicationHelper::getPath('toolbar_h tml')); switch($task){ case 'edit': case 'add': TOOLBAR_calificaciones::_NEW(); break; default: TOOLBAR_calificaciones::_DEFAULT(); break; } ?>

Crear un componente bsico


Para que los botones de las barras de herramientas funciones, necesitamos una fuente de datos, es decir una tabla en la base de datos. Mediante phpMyAdmin, cree una tabla llamada jos_calificaciones dentro de la base de datos Joomla! con 7 campos configurados del modo indicado.

Crear un componente bsico


<?php Para aprovechar las funciones de gestin defined('_JEXEC') or die ('No eres bien recibido'); de tablas ya implementadas en la class TableCalificaciones extends JTable{ clase Jtable de var $id=null; Joomla! crearemos var $Nombre=null; una clase propia que la var $idAutorizado=null; extienda. var $calificacion1=null; Dentro de var $calificacion2=null; /administrator/com_cali var $calificacion3=null; ficaciones, cree una var $publicado=null; subcarpeta llamada function __construct(&$db){ tables y, dentro de ella, un archivo parent::__construct('#__calificaciones','id',$db); llamado } calificaciones.php con el contenido } indicado. ?>

Crear un componente bsico


Necesitamos un formulario para introducir/editar las calificaciones de los usuarios. Empezaremos definiendo su lgica, para lo que recurriremos al archivo admin.calificaciones. php.
<?php defined('_JEXEC') or die ('No eres bien recibido'); echo 'Calificaciones'; require_once(JApplicationHelper::getPath('admin_htm l')); JTABLE::addIncludePath(JPATH_COMPONENT.DS.' tables'); switch($task){ case 'add': editarCalificacion($option); break; } function editarCalificacion($option){ $fila =& JTable::getInstance('Calificaciones','Table'); $campoPublicado=JHTML::_('select.booleanlist','publi cado','class=inputbox',$fila->publicado); HTML_calificaciones::editarCalificacion($fila,$campoP ublicado,$option); } ?>

Crear un componente bsico


Para definir el aspecto del formulario, creamos un nuevo archivo en /administrator/components/com_calificaciones llamado admin.calificaciones.html.php con el contenido indicado

<?php defined('_JEXEC') or die ('No eres bien recibido'); class HTML_calificaciones{ function editarCalificacion($fila,$campoPublicado,$option){ ?> <form action="index.php" method="post" name="formularioAdministracion" id="adminForm">

Crear un componente bsico


<fieldset class="adminForm"> <legend>Calificaciones de alumno</legend> <table class="admintable"> <tr> <td width='80' align='right' class='key'> Nombre: </td> <td> <input class='text_area' type='text' name='Nombre' id='Nombre' size='50' maxlength='255' value="<?php echo $fila->Nombre;?>" /> </td> </tr> <tr> <td width='80' align='right' class='key'> idAutorizado: </td> <td> <input class='text_area' type='text' name='idAutorizado' id='idAutorizado' size='50' maxlength='11' value="<?php echo $fila->idAutorizado;?>" /> </td>

Crear un componente bsico


</tr> <?php for($i=1;$i<=3;$i++){ $valorCalificacion='calificacion'.$i; ?> <tr> <td width='80' align='right' class='key'> Calificacion<?php echo $i; ?>: </td> <td> <input class='text_area' type='text' name='calificacion<?php echo $i; ?>' id='calificacion<?php echo $i; ?>' size='50' maxlength='255' value="<?php echo $fila->$valorCalificacion; ?>" /> </td> </tr> <?php } ?>

Crear un componente bsico


<tr>

<td width='80' align='right' class='key'> Publicado: </td> <td> <?php echo $campoPublicado; ?> </td> </tr> </table> </fieldset>

Crear un componente bsico


<input type='hidden' name='id' value="<?php echo $fila->id; ?>" /> <input type='hidden' name='option' value="<?php echo $option; ?>" /> <input type='hidden' name='task' value="" /> </form> <?php } } ?>

Crear un componente bsico

Ahora aadimos en admin.calificaciones.php la funcin que se encargar de recibir los datos de este formulario y almacenarlos en la base de datos

function guardarCalificacion($option){ global $mainframe; echo $option; $fila =& JTable::getInstance('Calificaciones','Table'); $fila->bind(JRequest::get('post')); $fila->store(); $mainframe->redirect('index.php?option=com_calificaciones', 'Calificacion guardada'); }

Crear un componente bsico

Pero para que admin.calificaciones.php sepa que debe ejecutar la funcin anterior debemos aadir el caso add en el switch de $task switch($task){ case 'add': editarCalificacion($option); break; case 'save': guardarCalificacion($option); break; }

Crear un componente bsico

Vamos a comprobar que todo funciona correctamente:

Acceda con su navegador a /administrator/index.php?option=com_calificacion es&task=add Escriba unos datos de ejemplo y pulse el botn Guardar. Verifique con phpMyAdmin que los datos se han almacenado en la tabla jos_calificaciones

Crear un componente bsico

Inserte en admin.calificaciones.php esta funcin para gestionar la lgica que permitir mostrar un listado de todas las calificaciones.

function mostrarCalificaciones($option){ $db =& JFactory::getDBO(); $consulta="SELECT * FROM #__calificaciones"; $db->setQuery ($consulta); $filas= $db->loadObjectList(); HTML_calificaciones::mostrarCalificaciones($option, $filas); }

Crear un componente bsico

Aprovechando que estamos en admin.calificaciones.php cree el caso default en el switch para que, en ausencia de un $task concreto, se muestre el listado de calificaciones:

switch($task){ case 'add': editarCalificacion($option); break; case 'save': guardarCalificacion($option); break; default: mostrarCalificaciones($option); break; }

Crear un componente bsico

En el archivo admin.calificaciones.html.php, insertamos la funcin mostrarClasificaciones, cuyo cdigo es el siguiente: function mostrarCalificaciones($option,$filas){ ?> <form action="index.php" method="post" name="adminForm"> <table class="adminlist"> <thead> <tr> <th width='20'> <input type="checkbox" name="activar" value="" onclick="checkAll(<?php echo count($filas); ?>" /> </th>

Crear un componente bsico


<th>Nombre</th> <th width="10%">idAutorizado</th> <th width="15%">Calificacion1</th> <th width="15%">Calificacion2</th> <th width="15%">Calificacion3</th> <th width="5%" nowrap="nowrap">Publicado</th> </tr> </thead> <?php $alternar=0; $total=count($filas);

Crear un componente bsico


for($i=0;$i<$total;$i++){ $fila= &$filas[$i]; $seleccionado=JHTML::_('grid.id',$i,$fila->id); $publicado=JHTML::_('grid.published',$fila,$i); ?> <tr class="<?php echo "row$activado"; ?>"> <td> <?php echo $seleccionado; ?> </td> <td> <?php echo $fila->Nombre; ?> </td>

Crear un componente bsico


<td> <?php echo $fila->idAutorizado; ?> </td> <td> <?php echo $fila->calificacion1; ?> </td> <td> <?php echo $fila->calificacion2; ?> </td> <td> <?php echo $fila->calificacion3; ?> </td>

Crear un componente bsico


<td align="center"> <?php echo $publicado; ?> </td> </tr> <?php $alternar=!$alternar;

} ?> </table> <input type="hidden" name="option" value="<?php echo $option; ?>" /> <input type="hidden" name="task" value="" /> <input type="hidden" name="boxchecked" value="0" /> </form>

Crear un componente bsico

Comprobamos que todo funciona correctamente ejecutando desde el back-end Componentes>Calificaciones

Crear un componente bsico

Para que los administradores puedan editar las calificaciones aprovecharemos la funcin que ya tenemos para introducir nuevas calificaciones: editarCalificacion. Introduzca en ella el siguiente cdigo: $fila =& JTable::getInstance('Calificaciones','Table'); $cid=JRequest::getVar('cid',array(0),'','array'); $id=$cid[0]; $fila->load($id);

Crear un componente bsico


En el switch de $task introducimos la modificacin necesaria para que edit y add conduzcan a la funcin editarCalificacion switch($task){ case 'edit': case 'add': editarCalificacion($option); break;

Crear un componente bsico

El funcin Aplicar funciona exactamente igual que Guardar, salvo porque nos mantiene en la misma pgina, es decir mantiene el $task. En admin.calificaciones.php, inclusa su caso en el switch de $task indicando que tambin desea enviar a la funcin el propio valor de $task case 'apply': case 'save': guardarCalificacion($option,$task); break;

Crear un componente bsico


De modo que en la funcin guardarCalificacion de admin.calificacion.ph p slo tendremos que incluir este nuevo parmetro y sustituir la ltima lnea por un cdigo que discrimine si estamos guardando o simplemente aplicando los cambios. Comprueba que funciona correctamente aadiendo y aplicando cambios.
function guardarCalificacion($option,$task){ global $mainframe; $fila =& JTable::getInstance('Calificaciones','Table'); $fila->bind(JRequest::get('post')); $fila->store(); switch($task){ case 'apply': $mensaje="Se han aplicado los cambios"; $destino='index.php?option='.$option.'&task=edit&cid[]='. $fila->id; break; case 'save': default: $mensaje="Se han guardado los cambios"; $destino='index.php?option='.$option; break; } $mainframe->redirect($destino,$mensaje); }

Crear un componente bsico


Volvemos ahora nuestra mirada al front-end, donde ampliaremos el cdigo de /components/calificaciones.php para mostrar las calificaciones de los alumnos para los que el usuario est autorizado: <?php defined('_JEXEC') or die ('No eres bien recibido'); echo '<div class="componentheading">Calificaciones</div>'; jimport('joomla.application.helper'); require_once(JApplicationHelper::getPath('html')); JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'comp onents'.DS.$option.DS.'tables');

Crear un componente bsico


switch($task){ default: mostrarCalificacionAutorizado($option); break; } function mostrarCalificacionAutorizado($option){ $usuario=& JFactory::getUser(); $db=& JFactory::getDBO(); $consulta="SELECT * FROM #__calificaciones WHERE idAutorizado='$usuario->id' AND publicado='1'"; $db->setQuery($consulta); $filas=$db->loadObjectList(); HTML_calificaciones::mostrarCalificacionAutorizado($filas,$option); } ?>

Crear un componente bsico


Y, por ltimo, creamos en /components/com_calificaciones el archivo calificaciones.html.php con el siguiente contenido:
<?php defined('_JEXEC') or die ('No eres bien recibido'); class HTML_calificaciones{ function mostrarCalificacionAutorizado($filas,$option ){ ?> <table> <?php foreach($filas as $fila){ echo "<tr> <td> $fila->Nombre </td> <td> $fila->calificacion1 </td> <td> $fila->calificacion2 </td> <td> $fila->calificacion3 </td> </tr>"; }?> </table> <?php } } ?>