Uso de variable global en Joomla

8

Tengo una variable que tiene algún valor. Necesito obtener este valor variable tanto en el administrador como en el sitio. ¿Dónde debo colocar la variable y cómo puedo obtener la variable en componentes o en todas partes?

aish
fuente

Respuestas:

9

El administrador y su sitio front-end son dos sitios diferentes. Para compartir información entre ellos, puede usar algún mecanismo persistente como el siguiente.

1) Almacene información en tablas de bases de datos y acceda usando Joomla Dbo.

https://docs.joomla.org/Accessing_the_database_using_JDatabase

2) Use cookies para acceder a la información estableciendo cookies en el nivel raíz (/)

$cookies = JFactory::getApplication()->input->cookie;
$cookies->set($name, $value, $expire, '/');

3) Almacene la información en un archivo temporal y acceda a ella donde sea necesario.

https://docs.joomla.org/How_to_use_the_filesystem_package

Notas adicionales:

Si desea compartir cualquier información dentro de la misma aplicación (ya sea en el sitio o administrador), puede establecerla en Aplicación y acceder a ella dentro del mismo sitio en la misma solicitud.

$app = JFactory::getApplication();
$app->set('some_variable', 'some_value');
...
$someValue = $app->get('some_variable');

Si desea acceder a una variable a través de las solicitudes pero dentro de la misma aplicación, puede usar JSession

$session = JFactory::getSession();
$session->set('some_variable', "some_value");
...
echo $session->get('some_variable');
Nagarjun
fuente
1
Dependiendo de qué tipo de valor sea, podría convertirse en un parámetro de extensión que se almacena en la base de datos. De esta manera, Joomla se ocupa del almacenamiento / consulta de la base de datos :)
Bakual