La muchos de los principiantes en Joomla piensan que este CMS solamente sirve para publicar noticias o artículos que deban tener una cierta vigencia, y luego pasen a ser reemplazados por otros. Esto no es así, si bien los CMS son programados para lograr una amplia flexibilidad a la hora de crear portales de Internet del tipo "diarios digitales", blogs, comunidades en constante movimiento, y otros sitios en los cuales "todos los días tienen una portada distinta", lo cierto es que con Joomla pueden crearse sitios web que no se parezcan en nada a este tipo mencionado de portales web.
Hay muchísima información sobre cómo instalar, cómo configurar, luego para qué sirve el administrador, cómo se instalan módulos o componentes, de dónde bajar y luego cómo editar templates para cambiar la apariencia estética de Joomla, pero la mayoría de la documentación que anda por ahí circulando no hace especial hincapié en lo fundamental: la GESTIÓN DE CONTENIDOS!
Contenidos y contenedores:
1) Sección --> Categoría --> ítem de contenido
La sección contiene categorías y cada categoría contiene documentos. Diríamos entonces que las secciones y categorías son los contenedores y los ítems de contenidos son, valga la redundancia, los contenidos.
Puede haber una sola sección o muchas secciones, que CONTIENEN cada una de ellas a una o muchas categorías, que a la vez CONTIENEN uno o varios ítems de contenido o documentos.
A partir de ahora vamos a suponer que:
ítem de contenido = documento web = artículo = noticia (quitemos el factor temporal, olvidémonos que una noticia es algo vigente solo por un momento)
2) contenido estático: son ítems que no pertenecen a ninguna categoría ni sección.
Sobre los documentos o ítems de contenido en Joomla
Cada documento tiene diferentes ESTADOS DE SITUACIÓN: puede estar publicado, no publicado, archivado o eliminado (en el basurero)
A la vez hay ESTADOS TEMPORALES en la publicación: un documento puede estar "pendiente de públicación" (tiene una fecha programada a partir de la cual comenzará a publicarse), puede estar "publicado en vigencia" (se encuentra en publicación actualmente, hasta el momento en que esté programada su "despublicación automática", o hasta siempre en el caso de que no haya fecha estipulada de despublicación automática). También el documento puede estar "publicado pero expirado", es decir estuvo publicado hasta la fecha donde caducó su vigencia, esto es al momento en que se despublicó automáticamente.
Cada documento o item posee un NIVEL DE ACCESO desde el punto de vista de su mera visualización: "public" (todo el mundo puede verlo), "registered" (solo pueden verlo los usuarios registrados), y "special" (accesible a usuarios especiales de mayor rango que los simples registrados: autores, editores, publishers, etc)
Cada documento posee un NIVEL DE ACCESO desde el punto de vista de su EDICIÓN: Solo los usuarios administradores pueden editar o borrar un documento o ítem.
Los documentos publicados por Joomla son formateados y preparados para su muestra por un componente llamado com_content.
Dentro de la administración hay varios componentes involucrados en la creación, edición, organización, y eliminación o archivado de documentos: com_content, com_typedcontent, com_trash, com_archive, com_sections, com_categories
La base de datos guarda TODOS los ítems de contenido en la tabla jos_content independientemente de si estos contenidos están archivados, publicados, eliminados, etc. La tabla jos_content se relaciona con jos_content_frontpage, con jos_sections (que a su vez se relaciona con jos_categories), y con jos_content_rating
Dónde se cargan los contenidos en el plano del layout?
El template (o plantilla, o layout, o theme) es un sistema que genera formato visual del sitio y establece el espacio y la distribución donde se cargarán los contenidos. Dentro del template se cargan:
En la perisferia: los módulos (columnas izquierda, derecha, top y bottom), y otros elementos (header, footer)
En el centro: el "mainbody" (cuerpo principal), se genera la "salida" (output) de los componentes, de los documentos (o ítems, o artículos, que también son mostrados gracias a un componente), y de los mambots.
Estos contenidos que se generan en el cuerpo principal pueden ser:
- La Frontpage, o 'página principal', o 'página de inicio', o 'home' (que es generada por el componente com_Frontpage) - Elementos estáticos (Static Content) - Items de contenido ordinarios que pertenecen a una categoría y sección (Content Item) - Elementos o interfaces visuales interactivas que pertenecen a los componentes (Components o Components Items): datos de salida, formularios de filtrado o ingreso de datos, enlaces o botones que ejecutan ciertas acciones, etc. - Categorías pertenecientes a diversos componentes (Ej: Table Contact Category, Table Newsfeed Category, Table Weblink Category). El componente de "enlaces" permite crear categorías, por ejemplo: "categoría de los enlaces a sitios amigos", "categoría de los enlaces a sitios de interés", etc. - Tablas de sección (Table Content Section): pantallas con listas de las categorías contenidas en cada seccion en cuestión - Tablas de categoría (Table Content Category): pantallas con listas de items de contenidos dentro de cada categorías en cuestión - Contenidos de sección en blog (Blog Content Section) - Contenidos de categoría en blog (Blog Content Category) - Contenidos archivados (Blog Content Section Archive o Blog Content Category Archive) - Marcos internos que muestran otras páginas web (Wrappers) dentro del mismo sitio o páginas de otros dominios
Qué es el modo "blog" de publicación de contenidos?
El modo blog es la típica manera de publicar contenidos que vemos en "blogs" o "weblogs", tan de moda actualmente en el mundo de las páginas web. Se caracterizan por ser un conjunto (generalmente ordenado por fecha, o por otro criterio), donde las noticias o artículos se muestran unos abajo de otros en forma de:
Un título del artículo (normalmente con la fecha de creación y el nombre del autor)
Una pequeña introducción de un párrafo (que corresponde al primer párrafo del desarrollo completo del artículo)
Una imagen pequeña (o sin imagen)
Un botón "ver más" o "leer más"
Cuando se pulsa en el enlace de "ver más", se puede leer el artículo completo. Siempre al entrar en un blog veremos las noticias más recientes bajo la cabecera "arriba del todo", y a medida que bajamos vamos viendo noticias de fechas anteriores, hasta que llegamos abajo donde generalmente hay una especie de navegación del estilo:
<< inicio fin >>
Esto es un Weblog o Blog en la terminología internetera, Joomla posee todas estas características, por ende:
Joomla puede usarse como un perfecto Blog o Weblog (ideal para portales de noticias)...
... sin la necesidad de instalar programas adicionales!!! Esto se logra:
Utilizando la configuración de frontpage (en el menú principal >> home >> "parámetros"), o
Utilizando los enlaces de menú definidos como Blog Content Section o Blog Content Category
Para saber mejor cómo funciona esto, debes tener una o varias categorías y secciones, con muchos (o varios, los suficientes) artículos o noticias. Pero antes hay que ver de qué manera se crean los contenidos.
Dónde y cómo se crean estos contenidos?
Estos contenidos se crean directamente desde el administrador de Joomla. Pero antes de crear tus contenidos debes pensar bien el tamaño, la funcionalidad, y la forma de navegabilidad o la manera de acceder a los contenidos que tendrán los propios usuarios o navegantes del sitio.
Contenidos para sitios pequeños
Si su sitio es pequeño o muy pequeño:
podés crear solo una sección y dentro de ella una sola categoría que va a contener a todos los documentos web, o
podés crear solamente items de contenido estático (sin sección ni categoría) y luego linkearlos desde el menú
Contenidos para sitios medianos o grandes
Si el sitio a realizar con Joomla es grande, primero piensa bién cómo organizarás la información y la agruparás teniendo en cuenta:
La facilidad o dificultad que ofrezcas a los usuarios de encontrar la información ordenada y rápidamente localizable
La facilidad de administración (para encontrar y reconocer fácilmente los items, para no perderte cuando haya muchos, etc)
El uso de las distintas maneras de publicar la información categorizada que te ofrece Joomla: (navegable por secciones, por categorías, por blogs, por menues personalizados, etc)
Con esto, puedes hacerte algunas secciones y varias categorías dentro de ellas. Allí colocarás y organizarás toda la información.
Contenidos para sitios muy grandes
Hay algo muy importante: Una cosa es cómo organizas tus secciones y/o categorías, y otra cosa es qué ordenación, estructura, o forma de acceso le das a los contenidos desde el/los menú/es para que los navegantes/usuarios puedan acceder a ellos. Joomla brinda infinitas posibilidades a la hora de hacer esto. Un modelo con el cual puede resolverse el trabajo cuando se tienen tantos y tan diversos contenidos, la organización de estos se estructura (en el siguiente ejemplo) en por lo menos 4 niveles de anidación, o "profundidad".
Supongamos que tenemos que hacer la web de una gran empresa distribuidora de alimentos. Esta empresa comercializa una gran cantidad y variedad de productos que están categorizados en rubros, sub-rubros y sub-sub-rubros (por llamarlo de alguna forma)...
Ejemplo de categorización de un ítem cualquiera de contenido:
Sección / Subsección (sección de Joomla) >> Categoría /Subcategoría (categoría de Joomla) >> Item de contenido
En qué orden se crean los contenidos? Cómo empezar? y cómo seguir?
Una vez que ya está tu Joomla instalado, configurado y funcionando, debes comenzar por órden de importancia a:
Definir y crear los "contenedores" de primer orden (los que engloban todo): las Secciones
Crear los "contenedores" de segundo orden (que pertenecen a las secciones): las Categorías
Cargar la información pertenecientes a sus propias secciones/categorías. Si hay algo que no "cuadra" en la definición de ninguna sección/categoría en particular puede crearse en items de contenido estático.
Definir y crear la navegabilidad o "menues" (los accesos que van a tener los navegantes/usuarios a esos documentos web publicados)
Los puntos 3 y 4 (incluso los puntos 1, 2, 3, y 4) pueden ir alternándose. Pero muchos principiantes tratan de crear los menues o los enlaces primero, y luego los contenidos. No tardan en darse cuenta que "no saben cómo hacer". Esto es un error, el orden correcto es así:
creación y publicación de sección >> creación y publicación de categoría >> creación y publicación de los documentos >> armado del menú de navegación
Creando los items del menú (enlaces) y administrando menues
Los menúes son módulos, hay distintos tipos de menú y pueden ser creados con Joomla todos los menúes que necesitemos. Inclusive pueden mostrarse distintos menúes dependiendo de la sección o página por la que navegue el visitante. Los menues que vienen por defecto en Joomla son:
Mainmenu: es el menú principal del sitio y el más importante. Lo que se encuentre como primer elemento de este menú es lo que se mostrará en la página principal
Topmenu: este es el menú horizontal que aparece sobre (o debajo) de la cabecera del sitio
Usermenu: menú de usuario (solo aparece cuando un usuario se registra e ingresa en el sistema)
Othermenu: es simplemente "otro menú" cualquiera.
Administrar menues
El administrador de menú está en Menu >> Menu Manager
Este administrador permite crear, borrar o editar menues. Ojo: no borrar nunca el MAINMENU!!!. Lo único que podés hacer es renombrar este menú (ponerle por ejemplo menuprincipal, en lugar de mainmenu), pero te recomiendo que no lo hagas. Si aún lo haces, ponle un nombre sin espacios de por medio y sin caracteres extraños.
Cada menú "tiene" un módulo asociado a él. Este módulo permite configurar la forma en que se publica (o si no debe publicarse) el menú en cuestión. Para ver o cambiar esta configuración vas a Modules >> Site modules y luego buscas el módulo del menú (que lleva el mismo nombre) y lo abres.
Creación de items de menú
Para crear un ítem en el menú, es decir un enlace hacia un documento, o hacia toda una sección/categoría, o a un componente, vamos a:
Menu >> Mainmenu (suponiendo que creamos el enlace en el menú principal)
y luego debemos hacer click en el ícono "nuevo". La forma actual de crear items de menú en Joomla es como lo hace un "asistente" o "wizzard" para la configuración o instalación de un software: paso a paso.
En el primer paso veremos algo así:
Aquí es donde tenemos que elegir el "tipo" de enlace o acceso que queremos crear. Hay que elegir bién el tipo de elemento, si no, no podremos continuar y deberemos volver hacia atrás. Explico a continuación qué es cada elemento:
- Link - Static Content - Esto definirá el enlace hacia un elemento estático - Link - Content Item- Esto hará que el enlace se defina hacia un Item de contenido ordinarios (que pertenece a una categoría y sección) - Components o Components Items - Enlace hacia una interface principal de un componente - Table Contact Category, Table Newsfeed Category, Table Weblink Category. - Enlace hacia categorías pertenecientes a estos 3 componentes, respectivamente. - Table Content Section - Enlace hacia una sección donde se mostrará una lista de sus categorías contenidas en ella. - Table Content Category - Enlace hacia una categoría donde se mostrará una lista de sus items de contenido pertenecientes a ella. - Blog Content Section y Blog Content Category - Enlaces hacia una sección/categoría que mostrará sus elementos en forma de blog (ver arriba) - Blog Content Section Archive o Blog Content Category Archive - Enlace hacia una sección/categoría que mostrará sus elementos archivados en forma de blog. - Wrappers - Enlace hacia una URL (dentro del mismo sitio o a una página de otro dominio) que se mostrará en una ventana interior del sitio nuestro. - Submit - Content - Enlace hacia un formulario que permitirá enviar artículos/novedades al administrador para que este los publique - Link - Url - Enlace donde podremos tipear manualmente la URL del link. - Separator - PlaceHolder - Separador entre un enlace y otro
Luego de este paso, y dependiendo la opción de tipo de enlace que queremos colocar en el menú, se nos llevará a un último paso donde se debe poner el nombre del enlace (el texto), también se selecciona el elemento a linkear, por ejemplo:
Component Item: Components:
... y tendrás para configurar otros parámetros más que determinarán:
si el enlace es un item o un subitem de otro elemento de menú (Parent Item)
el orden en que aparece, con respecto a los otros elementos de menú (Ordering)
el nivel de acceso de los usuarios a ese item (Access Level)
el estado de publicación (Published)
Es muy importante configurar los parámetros del panel de la derecha de manera adecuada cuando mostramos contenidos en blog. Esto puede hacerse alta pero altamente personalizado.
Parameters
Menu Image
Page Class Suffix
Back Button
Page Title
Page Title
# Leading
# Intro
Columns
# Links
Category Order
Primary Order
Pagination
Pagination Results
MOSImages
Description
Description Image
Category Name
Category Name Linkable
Item Titles
Linked Titles
Read More
Item Rating
Author Names
Created Date and Time
Modified Date and Time
PDF Icon
Print Icon
Email Icon
Otro día explicaré todas estas opciones de configuración, pero por ahora a investigar para qué sirven.
* Proyecto: Joomla!
* Subproyecto: Todos
* Severidad: Alta
* Versiones: 1.5.17 y todas las versiones anteriores 1,5
Exploit * Tipo: Inyección de XSS
* Reportado Fecha: 2010-May-13
* Fecha Fijo: 2010-May-28
Descripción
Usuarios del Back-end pueden inyectar javascript en varias pantallas de administrador.
Instalaciones afectadas
Todas las instalaciones 1.5.x incluyendo la 1.5.17.
Solución
Actualizar a la última versión de Joomla! (1.5.18 o posterior)