Acceder a sesiones de joomla fuera de joomla

Hay veces que es interesante poder accceder a ciertas zonas de nuestro code que no son llamadas a traves de joomla. Por ejemplo utilizar Ajax para acceder a funcionalidades de un módulo en joomla. Evidentemente, al realizar esto fuera de la estructura de joomla, no tenemos acceso a cierta información, como por ejemplo las sesiones.

Para poder realizar llamadas Ajax en un módulo de forma “ortodoxa”, necesitas tener instalado un componente y realizar la llamada sobre éste último. Si bien, tal vez no quieras crear todo un componente para realizar la llamada, podemos acceder a ciertos datos de joomla, como las sesiones, desde el archivo “externo”.

Para ello lo que tenemos que hacer, es cargar las librerias del core de joomla en nuestro archivo e inicializar la aplicación. Un poco de código:

<?php
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(dirname(dirname(__FILE__)))));
define( 'DS', DIRECTORY_SEPARATOR );
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$session =& JFactory::getSession();
$variable1 = $session->get('NOMBRE_VARIABLE');
?>

Como podemos ver primero inicializamos las constantes necesarias. La primera es utilizada en todos los archivos de joomla, para evitar los accesos externos. La segunda, como su nombre indica, es la ruta base de la aplicación. La tercera es el símbolo que utilizan los diferentes SO para separar los directorios. Por ejemplo, Gnu/Linux utiliza slash (“/”), mientas que en windows se usa la contra barra (“\”). De esta manera no importa en que SO se aloja nuestra aplicación.

Despues incluimos los archivos necesarios, dos como vemos. El primero se encarga de definir más constantes, mientras el segundo carga las librerias necesarias.

Por último, y ya con el code necesario, debemos llamar a nuestra aplicación e inicializarla. Una vez hecho, ya podemos acceder a las sesiones de joomla.

Esta entrada fue publicada en Modulos. Guarda el enlace permanente.

8 respuestas a Acceder a sesiones de joomla fuera de joomla

  1. Fer dijo:

    Saludos, he tenido la oportunidad de leer varios de tus artículos que por cierto están muy interesantes hoy precisamente me acabo de iniciar en Joomla y con tus aportes he comprendido mucho del funcionamiento de este CMS Muchas gracias de verdad, sigue así y Dios te bendiga.

  2. jasev dijo:

    Una pregunta: ¿por qué tantos dirnames anidados?

  3. Leonidas dijo:

    Buen dia, La codificación que allí colocas sirve para Joomla 1.5, Seria tan amable y decir cual es codificación para joomla 2.5? Saludos, Gracias.

  4. jose ramos dijo:

    Buen dia
    excelente, me sirvió para conocer mas joomla, me queda una duda una vez que controlé la recepcion de la variable de la sesion y termine de ejecutar mi codigo, como cierro la sesion para que no se quede abierta en el form de login de joomla

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s