在Joomla中使用全局变量


8

我有一个拥有一些价值的变量。我需要在管理员和站点中都获取此变量值。我应该在哪里放置变量,如何在组件中或各处获取变量?

Answers:


9

管理员站点和您的前端站点是两个不同的站点。要在它们之间共享信息,您可以使用下面的一些持久性机制。

1)将信息存储在数据库表中,并使用Joomla Dbo进行访问。

https://docs.joomla.org/Accessing_the_database_using_J数据库

2)使用cookie通过在根级别(/)设置cookie来访问信息

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

3)将信息存储在临时文件中,并在需要时访问它。

https://docs.joomla.org/How_to_use_the_filesystem_package

补充笔记:

如果要在同一应用程序(站点或管理员)中共享任何信息,可以将其设置为“应用程序”,并在同一请求中访问同一站点中的信息。

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

如果要跨请求访问同一应用程序中的变量,则可以使用JSession

$session = JFactory::getSession();
$session->set('some_variable', "some_value");
...
echo $session->get('some_variable');

1
根据值的类型,可以将其作为扩展参数存储在数据库中。Joomla通过这种方式来保存/查询数据库:)
Bakual,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.