![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL_qXblcebl6LlK7qFfc95MasTP-yKkPwKVsHvXxfLMoS-zgKQWa9RcVYnFu_JiMmUPLX1jqGq_3zTli3TMzwwfWV2qAEvppH-l3pYm98X1fLqg_NuMnAwcJiH5Odyp6e5Yi_eWROssYY/s200/redireccionar-joomla.png)
Para empezar se debe declarar la variable que carga la aplicación core de joomla. En joomla 1.5 se puede hacer de dos formas:
global $mainframe;
ó
$mainframe = JFactory::getApplication();
En joomla 1.6 se ha eliminado la variable glogal $mainframe y sólo se puede hacer con la segunda opción. Una vez cargada la aplicación se puede acceder a la función redirect() del core de joomla. Mediante esta función se envía al usuario a una url especificada y se envía un header 301 (movido permanentemente). Esta función tiene tres parámetros y se usa de la siguiente forma:
$mainframe->redirect($url,$mensaje,$mensajetipo);
El parámetro $mensaje y $mensajetipo son opcionales y si no se especifican se tomarán sus valores por defecto que son $mensaje = '' (cadena vacía) y $mensajetipo = 'message' (puede ser message, error o warning).
El parámetro url debe ser especificado en modo absoluto y sólo acepta urls http:// y https://. Si se va a redirigir a una página de joomla, que será la inmensa mayoría de los casos, lo más correcto sería usar la clase JRoute para asegurarnos de que obtenemos la url de joomla correcta. Es aquí donde hay que tener en cuenta un detalle muy importante. Para usar el método JRoute para la función redirect() hay que especificar el segundo parámetro del método JRoute como false, parámetro que muy rara vez se usa y cuyo valor por defecto es true. Si es true, se reemplazará & por & en la url para cumplir con las especificaciones xhtml respecto a la escritura de urls en el código html. Pero esta url no va a ser insertada en el código html si no que va a ser usada por el navegador y el reemplazo de & por & dará errores en la redirección, en especial si tienes activadas las url amigables.
Ejemplo:
$mainframe = JFactory::getApplication(); if($condicion_para_redireccionar == true) { $url = JRoute::_('index.php?option=com_content&view=article&id=4&Itemid=23',false); $mainframe->redirect($url,JText::_('Has sido redirigido'),'message'); }
Fuente: http://www.bloogie.es/tecnologia/programacion/46-joomla-manejar-redirecciones-sin-morir-en-el-intento#ixzz1zwaI5S5I
Under Creative Commons License: Attribution Share Alike;
Fuente: http://www.bloogie.es/tecnologia/programacion/46-joomla-manejar-redirecciones-sin-morir-en-el-intento#ixzz1zwaI5S5I
Under Creative Commons License: Attribution Share Alike;
Extraido de: bloogie
Comentarios
Publicar un comentario