1 de septiembre de 2013

Un par de consejos muy básicos sobre seguridad para tu Joomla!

El tema de la seguridad en Joomla! es un aspecto que suele preocupa a los usuarios de este motor, y con motivo. A nadie le gusta ver, de la noche a la mañana, que su trabajo en una página web se ha ido por el desagüe para mostrar publicidad o cosas peores.

Afortunadamente, con las versiones 2.5 y 3 de Joomla! se puede actualizar el motor de forma prácticamente automática, algo fundamental para estar un poco más protegido, ya que en las constantes actualizaciones se van solventando algunos errores de seguridad que se van detectando en las distintas versiones de Joomla!

Es obvio que el ámbito de la seguridad para Joomla! es muy extenso y complejo, debiéndose tener además en consideración cada caso de forma particular. Además, la estabilidad de una web Joomla! no solo depende del propio motor, sino que también intervienen otros factores como el alojamiento y sus medidas de seguridad, o el uso de las bases de datos y el PHP.

Algo de lo que se hablaba bastante, sobre todo con la versión 1.5, era del hecho de ocultar que tu web estaba diseñada con Joomla! para ponérselo algo más difícil a los atacantes. Con la versión de Joomla! 2.5 se puede, de hecho, elegir en la configuración global de nuestro sitio si deseamos mostrar o no la versión de nuestro motor, así como personalizar el prefijo de las tablas de nuestra base de datos para que no sean tan evidente como era anteriormente con el prefijo "JOS".

No obstante, y a pesar de todo, no sería nada complicado averiguar si un sitio está realizado con Joomla! si nos dirigimos hacia la administración de la web, que siempre se encuentra en la misma dirección. Ciertamente, no es muy recomendable ni modificar el nombre ni la ubicación de la carpeta "Administrator" si no eres un experto, sin embargo, sí que existen algunas medidas de seguridad para evitar perder el control de tu web mediante la administración, probablemente el mayor de los temores a los que se enfrentan las personas que mantienen páginas webs con Joomla!:

1. Protege mediante el uso de un usuario y contraseña el acceso a la carpeta "Administrator" por la web. Esto se suele poder realizar fácilmente desde el panel de control del servidor donde está la web alojada.

2. Utiliza un nombre de usuario para el administración que no sea ninguno de los típicos como "Admin", "Super User" o similar, acompañado por una contraseña donde se combinen letras y números y, lógicamente, que sea lo menos evidente posible. Incluso se suele recomendar en este sentido el cambiar cada cierto tiempo de usuario y contraseña para los administradores del sitio.

Como siempre, la seguridad empieza por uno mismo, siendo precavido e incluso algunas veces desconfiado, teniendo tu motor siempre actualizado y sin dar facilidades a los posibles atacantes. Por último, citar también que se puede echar un vistazo a las extensiones específicas sobre seguridad que se ofrecen en Joomla! Extensions como opciones a considerar.

20 de julio de 2013

Alternativas al módulo de acceso de Joomla! 2.5

Como sabemos, uno de los puntos fuertes de Joomla! es que se pueden buscar alternativas a prácticamente todos los componentes que por defecto trae este motor. El módulo de acceso no es una excepción.

Como siempre, si visitamos la sección específica en Joomla! Extensions, comprobaremos la variedad de opciones de las que disponemos, aunque muchas de ellas son de pago. Módulos con una presentación más llamativa, con distintas opciones para el registro, basados en AJAX o con diversidad de posibilidades para su personalización.

Tras haber probado varios de estos módulos, me gustaría destacar uno especialmente, el denominado "Core Design Login" (imagen), un módulo popular en el directorio de extensiones de Joomla! que muestra el formulario de acceso de una forma bastante atractiva y cuya demo se puede visualizar aquí pinchando en el icono con el candado y la palabra "login".

Como se puede comprobar en la demo, el efecto consiste en que una ventana surge del enlace para el registro o autenticación de los usuarios. Para lograr este efecto, además del módulo, habrá que descargar, instalar y activar el plugin Core Design Scriptegrator, desde el que precisamente se pueden controlar algunas opciones del módulo, como por ejemplo, que aparezca o no el enlace del autor.

Lo ideal, una vez instalado el módulo, sería modificar el archivo del lenguaje e incluso los iconos que trae por defecto, para personalizar totalmente el aspecto de esta extensión, una alternativa a considerar para que el módulo de acceso de Joomla! 1.5 y 2.5 se presente de forma llamativa y más original.

7 de julio de 2013

Las plantillas en Joomla! 2.5: Paquetes "QuickStart"

Para muchos usuarios de Joomla! el tema de las plantillas y las posibilidades de personalizar a sus gustos estéticos su web les produce auténticos dolores de cabeza. La gran mayoría no tenemos los conocimientos técnicos como para desarrollar o modificar profundamente las plantillas a utilizar , por lo que son otras las opciones que debemos manejar. En este sentido la gestión en Joomla! 2.5 de las plantillas ha mejorado respecto a versiones anteriores, con la creación de "Estilos" y mayores opciones de edición y personalización.

Ya en una entrada anterior hablámos del programa Artisteer, una opción WYSIWYG a tener en consideración que permite realizar -aunque con algunas limitaciones, claro está- tus plantillas personalizadas de una forma directa, sin necesidad de programar y listas para instalar en tu Joomla! (actualmente compatible con Joomla! 1.5 y Joomla! 2.5).

Otra opción es recurrir a las plantillas prediseñadas. En este aspecto tenemos la posibilidad de encontrar diversas plantillas gratuitas por la red, aunque muchas veces son complejas de personalizar y también suelen disponer de limitaciones estéticas o técnicas, aunque en algunos casos puede ser la solución ideal.

Y por último tenemos la posibilidad de comprar una plantilla profesional. Lo malo de esta opción es que, obviamente no es gratis, pero lo bueno es que nos aseguramos de que probablemente no tengamos ningún chasco relevante. Algunas de estas páginas son: GavickPro, Joomlabamboo, TemplatePlazza, JoomlArt o RocketTheme entre otras.

Si quieres, te puedes bajar la plantilla e instalarla en tu web, normalmente. Pero existe una opción muy interesante y no del todo conocida, que es bajarse el paquete de la plantilla denominado "QuickStart". Este archivo, que suelen ofrecer estas páginas de venta de plantillas, está compuesto por un motor Joomla! 2.5 donde ya está instalada no sólo la propia plantilla, si no que normalmente también viene con todas extensiones instaladas y las configuraciones gráficas dispuestas como en las Demo que podemos ver en las webs de sus creadores.

Estos paquetes se deben instalar como si de un motor Joomla! convencional se tratara. La única diferencia es que al completar la instalación tendremos una web completa, con la estética y la distribución de la que queríamos tener. Como la veías en la Demo, ahora la tienes en tu servidor dispuesta a ser configurada. Obviamente después de la instalación nos queda un intenso trabajo de personalización, pero sin duda que merece la pena, al menos, conocer y considerar esta opción.

Por último, y ya que hablamos de compra-venta, no es necesario recordar que, como en cualquier servicio, cuando se compran plantillas es necesario leer muy detenidamente las condiciones de pago y utilización, y lógicamente nunca desembolsar más de lo que se considere razonable por el producto que se quiera adquirir.

Fuente de la imagen.

1 de julio de 2013

Resumiendo... ¿Cómo migrar de Joomla! 1.5 a Joomla! 2.5?

Se ha escrito mucho en los últimos meses sobre la migración del motor de Joomla! 1.5 a Joomla! 2.5. Como se ha repetido en infinidad de ocasiones, este cambio no es una actualización, sino una migración, es decir, que no se puede continuar con la misma página del 1.5., sino que hay que hacer una nueva con la versión 2.5 replicando el contenido, módulos, plantillas, etc.

Muchos usuarios han criticado este brusco salto de versiones, una modificación que quizá deje por el camino las ansias de estar actualizado de muchos usuarios que conocen lo justo de este CMS. No es difícil encontrar cómo realizar la migración por la web, sin embargo, todavía hay muchos usuarios que preguntan insistentemente cómo pasar de la versión de Joomla! 1.5 a la de Joomla! 2.5.

En resumen, y descartando opciones en la que se requiera conocimientos de programación ni nada por el estilo, tenemos dos opciones básicas para pasar nuestra web de 1.5 a 2.5., ambas con la mediación de respectivas extensiones especializadas.

1. Exportar el contenido de Joomla! 1.5 a 2.5 con J2XML

Con la extensión J2XML tendremos la posibilidad de exportar los artículos, usuarios y enlaces. Aquí la dinámica es sencilla:
a. Instalas una web Joomla! 2.5 en un directorio de tu servidor.
b. Instalas la extensión J2XML en tu sitio Joomla! 1.5 y comienzas a exportar el contenido en paquetes XML.
c. Instalas la extensión J2XML en tu nueva web vacía de Joomla! 2.5 e importas estos paquetitos XML.
Así de sencillo. Lo bueno es que se conservan los ID de los artículos, por lo que los buscadores prácticamente ni notarán la migración, y tienes la posibilidad de ir controlando el proceso en todo momento. Lo malo es que es un trabajo laborioso si la web tiene mucho contenido, también puede dar errores con algunos artículos -que habrá que aislar - en la cadena XML y lógicamente, esta migración se basa solo en el contenido, tanto la plantilla para la versión 2.5, como los módulos, deberán ser instalados manualmente.

Personalmente he probado esta extensión y la verdad es que funciona bastante bien. Algunas veces falla la exportación por algún contenido en particular que habrá que localizar y recomendaría no hacer paquetes excesivamente grandes para facilitar la importación-exportación del contenido.

Para profundizar, aquí se puede encontrar una detallada guía de uso de esta extensión.

2. Migración mediante el componente jUpgrade

La opción de migrar Joomla! mediante jUpgrade es probablemente la más difundida entre los usuarios de Joomla!. Con esta extensión se intenta automatizar el proceso de migración. La extensión se descarga de forma automática el motor Joomla! 2.5 en la carpeta /jupgrade del servidor y comienza a exportar el contenido, usuarios, enlaces, además de actualizar los módulos -sólo los más utilizados- que tienen su versión en 1.5 y 2.5.

Lo mejor de esta opción es que, en teoría, el proceso es mucho más automático y ahorra el trabajo de tener que estar buscando actualizaciones de extensiones una por una. Lo malo es que realmente necesita un trabajo de depuración y reconfiguración bastante curioso, tanto que incluso en ocasiones merece la pena desinstalar y volver a instalar manualmente ciertos componentes y, por supuesto, la plantilla, que como sabemos no son compatibles entre 1.5 y 2.5.

Este componente también lo he probado en una web sencilla y no ha ido mal, aunque su puntuación en Joomla! Extensions ha ido cayendo con los meses, probablemente por las dificultades particulares que supone que un proceso tan complejo salga bien sin más. En este enlace se puede encontrar información más detallada sobre la utilización de jUpgrade.

En ambos casos, la migración terminará pasando los archivos del directorio donde está instalada nuestra web con Joomla! 2.5 al directorio principal.

Estas son las dos opciones básicas, ninguna es ideal y se conocen diversos errores que pueden surgir en la migración. No obstante, es siempre recomendable tener actualizado el motor, aunque antes de nada, como también sabemos, hay que realizar la correspondiente copia de seguridad, y esperar que nada salga mal...

28 de junio de 2013

Solución al problema con el módulo de Jumi con Joomla! 2.5

Por si hay alguien que todavía no la conozca, Jumi es una extensión muy conocida para Joomla! 3.x, 2.5 y 1.5 que permite insertar códigos personalizados de javascript, php, html, css, dhtml scripts... ya sea directamente en el contenido de los artículos o mediante módulos.

La extensión Jumi incluye el componente, el módulo y el plugin para introducir códigos en las publicaciones mediante la sintaxis: {jumi [código] [arg1] [arg2] ... [argN]}.

Problema

Trabajando con Joomla! 2.5.11 y con la versión de Jumi 3.0.4, nos percatamos que al intentar guardar el código que queríamos insertar en el módulo de Jumi, éste se borra casi por completo, quedando inutilizado y sin ningún efecto.

Según hemos podido constatar en el foro de esta extensión, es un problema que está siendo cada vez más habitual, y que no se corresponde a ningún fallo particular, como creíamos en un primer instante.

Solución

Siendo este problema conocido, confiamos en que en próximas versiones de Jumi se corrija el error. En la actualidad, para poder utilizar los módulos de Jumi, tenemos que utilizar también su componente de la siguiente forma:

1. Vamos a la gestión del componente. Allí, seleccionamos "Nuevo" y ponemos el código que queremos mostrar en nuestro módulo de Jumi en el apartado "Código base".

2. Damos a guardar y se nos quedará almacenado con el título que le hayamos puesto y un número de ID que le asigna el sistema. Copiamos ese número de ID.

3. En la gestión de módulos, creamos un nuvo módulo de Jumi, pero en vez de copiar el código ahí -pues no vale de nada hacerlo-, escribimos en el campo "Source of code" la expresión *XX, donde XX es el número de ID de nuestro código, por ejemplo, *3 (importante no olvidarse del asterisco)

Y de esta forma ya tenemos nuestro código personalizado en un módulo de Jumi, como vemos, de forma indirecta, pero es una buena solución para seguir utilizando esta magnífica y útil extensión.

21 de junio de 2013

Personalizar el error 404 en tu Joomla! 1.5 y 2.5

Este es un tema bastante recurrente. Seguro que todos nos hemos planteado alguna vez cómo cambiar el mensaje de error 404, página no encontrada, que viene por defecto con Joomla! con ese típico aspecto plano y que nada tiene ver con nuestra web (siempre contando con que nuestra plantilla no disponga de un error 404 personalizado, claro).

Desde luego, esta circunstancia es negativa para el visitante, pues probablemente dé por perdida la información que buscaba y para el administrador, que ha perdido un visitante potencial. Por lo tanto, es fácil pensar que lo recomendable es mostrar una página para el error 404 personalizada y dentro del entorno estético propio de nuestra web, pero ¿cómo hacerlo?

Bueno, tenemos una primera opción que es utilizar una extensión específica, por ejemplo, Qlue Custom 404, sin embargo, he podido encontrar y probar una solución más sencilla y rápida si cabe, una solución posible de las diversas que supongo que existirán. Pero vamos al grano. Lo que queremos lograr es que cuando se dé en nuestra web el error 404, Joomla! muestre un artículo concreto que habremos personalizado para la ocasión. Esperamos que sea de utilidad. Las fuentes de la información han sido ésta y ésta.

Para Joomla! 1.5

Nos dirigimos al archivo:

...templates/system/error.php
y lo editamos, sustituyendo el contenido por el siguiente código:
 <?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
global $mainframe;
$mainframe->redirect($this->baseurl.'/index.php?option=com_content&view=article&id=00');
?>
Cambiando el "00" por el id del artículo que hemos creado de forma personalizada para el error 404.

Para Joomla! 2.5

Igualmente nos dirigimos al archivo:
...templates/system/error.php
y lo editamos, sustituyendo el contenido por el siguiente código:
<?php
/**
 * @package    Joomla.Site
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
defined('_JEXEC') or die;
if (!isset($this->error))
{
 $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
 $this->debug = false;
}
$params = JFactory::getApplication()->getTemplate(true)->params;
$logo =  $params->get('logo');
$showRightColumn = 0;
$showleft = 0;
$showbottom = 0;
// get params
$color        = $params->get('templatecolor');
$navposition    = $params->get('navposition');
//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
if (($this->error->getCode()) == '404')
{
header('Location: /index.php?option=com_content&view=article&id=00');
 exit;
}
?>
Camiando también el "00" por el id del artículo que hemos creado de forma personalizada para el error 404.

30 de marzo de 2013

Usando el Módulo de búsqueda Inteligente de Joomla!


Una de las novedades que han llamado la atención a los usuarios de Joomla! 2.5 que venían trabajando con la versión 1.5 es la introducción de un módulo denominado "Módulo de búsqueda Inteligente".

Si nos dirigimos hacia el back-end de nuestro Joomla! 2.5 y pulsamos la opción "Nuevo" en el "Gestor de Módulos" podemos añadir este módulo y configurarlo de forma sencilla, dejando activado el "Search Suggestions" para que nos aparezcan sugerencias cuando escribimos como ocurre en Google o con otros bucadores para Joomla! basados en Ajax.

Hecho esto, ya nos aparecerá nuestro módulo de búsqueda aparentemente normal en nuestra web, aunque sin embargo, no funcionará correctamente, esto se debe a que todavía no hemos terminado de configurar la búsqueda inteligente. Si nos dirigimos al componente "Búsqueda Inteligente" nos ofrece un mensaje con las claves a seguir que dice:
Buscar contenido inteligente plug-in no está habilitado. Los cambios en el contenido no se actualizan en el índice de búsqueda inteligente, si no se habilita este plugin. Ningún contenido ha sido indexado. Iniciar el indexador pulsando el botón índice en la barra de herramientas.
Pues así hacemos:

1. Nos dirigimos hacia Extensiones --> Gestión de Plugins y buscamos y activamos el plugin "Contenido - Búsqueda Inteligente"
2. Volvemos al componente "Búsqueda Inteligente" y pinchamos en "Índice" que aparece en el menú de navegación, para que realice la indexación del contenido de nuestra web.

Ahora sí, vamos a nuestro sitio y tenemos el módulo de búsqueda funcionando correctamente, ofreciendo sugerencias al escribir y con unas opciones más útiles y llamativas que el motor de búsqueda tradicional. Sin duda, imprescindible de conocer.

29 de marzo de 2013

Gestiona las traducciones de tu sitio Joomla! con Joom!Fish

Hace algún tiempo hablaba de cómo introducir un traductor automático en Joomla! En esta ocasión, comentaremos el conocidísimo componente Joom!Fish que sirve para gestionar los contenidos de tu web en diferentes lenguas, es decir, este componente facilita un entorno para realizar las traducciones, no las hace directamente.

Lo primero, lógicamente, será descargarnos desde su página web esta extensión gratuita y compatible con Joomla! 1.5 y Joomla! 2.5. Una vez instalada, nos aparecerá en nuestro panel de administración la posibilidad de configurar el componente y un módulo denominado "Language selection" desde donde controlaremos la apariencia de las típicas banderitas que aparecerán en nuestro sitio y que sirven para cambiar a los distintos idiomas en los que se tenga configurada la web.

Son muchas las posibilidades que tendremos con esta extensión, aunque para comenzar lo básico es tener controladas las siguientes opciones del componente:

1. Content Languages, desde donde gestionaremos los distintos idiomas en los que deseamos que aparezca nuestro sitio web, incluyendo su denominación, su banderita, si están activos...

2. Translation, la parte más importante desde donde se gestionan directamente las traducciones. Una vez en ese apartado debemos utilizar las barras superiores para navegar. Por ejemplo, si queremos gestionar la traducción de nuestro menú eligiremos "Menus" en el desplegable "Contents elements" o si queremos traducir artículos, pues "Contents". En el desplegable "Languages" seleccionaremos el idioma en cuestión, apareciendo si se encuentra o no la traducción para esos contenidos y teniendo la posibilidad de editarlos directamente.

Pues aquí queda a esta rápida referencia de introducción por si algún despistado que quiera tener su sitio Joomla! en varios idiomas de una forma más fiable que con las traducciones automáticas todavía no sabía de la existencia de Joom!Fish.

24 de marzo de 2013

Destaca tus artículos preferidos en Joomla! con Lof ArticlesSlideShow

La variedad de Slideshow es, afortunadamente, cada vez mayor. Desde hace un tiempo, se utilizan mucho presentaciones e imágenes con movimiento para resaltar artículos o destacar noticias en una web. Sin duda, es una opción muy estética y que ayuda al visitante a discriminar visualmente lo que se considera de más relevancia en un sitio web.

Para este fin, se viene utilizando bastante el módulo Lof ArticlesSlideShow, una extensión gratuita que cumple a la perfección con su objetivo, compatible para Joomla! 1.5, 2.5 y 3.0 y cuya apariencia es la siguiente:


Una vez que descargamos e instalamos este módulo, pasamos a su configuración, sencilla, aunque bien es cierto que puede ser limitada para los que busquen la flexibilidad total. Podemos elegir el tamaño del módulo, la forma de navegación por las imágenes, si incluir texto de introducción o no, los colores, el número de artículos a mostrar, las categorías de esos artículos, etc.

En su presentación, el módulo mostrará de forma automática la imagen que esté en el artículo y aquellos elementos con los que lo hemos configurados: Título, descripción, fecha, categoría...

Una muy buena opción que merece la pena valorar a la hora de buscar un Slideshow con el que completar nuestro sitio web y hacerlo más llamativo y navegable.

23 de marzo de 2013

Personalizando el formulario de registro de Joomla! con Community Builder

Problema

En un determinado momento, nos planteamos personalizar el formulario de registro de nuestro Joomla! 1.5.26 para poder introducir campos que nos interesaban conocer de los usuarios que se registraban en una Web y poder luego consultarlos en la administración de nuestro CMS.

La cuestión es que, como bien sabemos, el formulario de registro que viene por defecto en Joomla! 1.5 es bastante simple y ofrece los campos justos y necesarios, pero ¿cómo podíamos saber, por ejemplo, donde trabajaban o por qué se registraban?

El objetivo estaba claro: conseguir modificar a nuestro gusto el formulario de registro.

Solución

Básicamente pudimos encontrar dos formas de lograr nuestra finalidad:

1. Realizar manualmente los cambios en el código del formulario que viene por defecto añadiéndoles los campos que necesitáramos. Este proceso se explica en este tutoria: Parte 1 y Parte 2.

2. Con la ayuda de alguna extensión, por ejemplo, Community Builder, que se puede descargar previo registro en: http://www.joomlapolis.com/ y que actualmente es compatible con Joomla! 1.5, Joomla! 2.5 y Joomla! 3.0.

Cuando te descargas el paquete, tendrás que instalar el componente y los tres módulos de los que se componen. También está la opción de descargarse el paquete de idioma en español que deberá instalarse, mucho ojo con esto, al igual que otros posibles plugins mediante el gestor propio que el componente tiene, no con el gestor para instalar extensiones de Joomla!

Una vez instalado, se pueden modificar los campos del formulario que aparecerá a los usuarios que quieran registrarse mediante su propio módulo de registro. En definitiva, en esta ocasión lo que hacemos es crear otro tipo de formularios dejando de lado el que viene por defecto.

Trabajar con la extensión Community Builder ofrece bastantes más posibilidades que esta simple operación de modificación del formulario de registro, aunque hasta que no se utiliza un poco no deja de parecer un tanto compleja de abarcar esta herramienta.

Pues ahí queda esta solución que a nosotros -por ahora ya que con estas cosas nunca se sabe- nos ha venido de maravilla.

20 de marzo de 2013

Error en la instalación de extensiones: "JFTP::store: Bad response"

Problema

Trabajando con Joomla! 1.5.25 en un servidor con PHP 5.3.4 intentamos instalar un componente en la web, sin embargo, nos aparecía una error que nunca antes habíamos observado al intentar realizar esta acción.

La verdad es que el servidor nos había dado diversos problemas para la instalación desde el Gestor de Extensiones de la Administración de Joomla!, ya que parece que no tenía una configuración demasiado optimizada para trabajar con este gestor.

La cuestión es que hacía tiempo que parecía que todo funcionaba con normalidad. Sin embargo, ese día nos encontramos con la imposibilidad de instalar extensiones por un error en el que se podía leer:
JFTP::store: Bad response
¡Advertencia! - Fallo al mover el archivo
JFolder::files: La ruta no apunta a un directorio válido o el directorio ha sido eliminado.
JFolder::folder: La ruta no apunta a un directorio válido o el directorio ha sido eliminado
JFolder::files: La ruta no apunta a un directorio válido o el directorio ha sido eliminado
¡Error! No puedo encontrar un archivo de configuración XML para Joomla! en el paquete
Solución

No sabíamos que estaba pasando. Las carpetas del servidor tenían los permisos adecuados, la capa FTP estaba activada con los datos correctos, las extensiones se podían instalar sin problemas en cualquier otra web...

Después de buscar un poco, encontramos que la solución era bien simple: Nos dirijimos a la Configuración Global, en la pestaña Servidor y allí pinchamos en "No" en la opción "Habilitar FTP", efectivamente, lo desactivamos, pero con los datos correctos grabados.

Una vez realizada esta sencilla operación, pudimos instalar las extensiones necesarias en nuestra web con total normalidad.