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.