【问题标题】:How pass variable from template index.php to the component in Joomla?如何将模板 index.php 中的变量传递给 Joomla 中的组件?
【发布时间】:2021-02-10 20:19:05
【问题描述】:

我使用 joomla 3.9.24。 在我的模板中,我必须将一个变量传递给组件(特别是 com_content / article)。在实践中,根据某个位置是否有模块,必须在文章中报告标题。 正如Joomla pass value from component to use in plugin and module 中所建议的那样,不推荐使用 JRequest 我写了这个:

在模板 index.php 文件中

title_var = 1;
...
$app = JFactory::getApplication();
$input = $app->input;
$input->set('title_var', $title_var);

在 default.php 文件中

$app = JFactory::getApplication();
$input = $app->input;
$title_var = $input->get('title_var');

但它不起作用! 例如,如果我插入

var_dump($input);

在这两个文件中,在同一页面中,我将显示两次输入数据,除了我的 title_var 在组件的 var_dump 中根本没有出现,就好像数据没有通过一样。

我该如何解决?

更新:同样使用模板参数

在模板 index.php 文件中

$app  = JFactory::getApplication();
$params = $app->getTemplate(true)->params;
...
$variable  = $params->set('var_title', $var_title);

default.php 文件中类似

$app  = JFactory::getApplication();
$paramsT = $app->getTemplate(true)->params;
...
$variable  = $paramsT->get('var_title'); #result null

【问题讨论】:

    标签: php variables global-variables joomla3.0 joomla3.9


    【解决方案1】:

    您可以使用会话将变量从模板传递到组件..

    其次你可以使用模板参数..

    【讨论】:

    • 我也尝试使用模板参数,这是最明智的第一次尝试,但是当我在组件中动态设置它的值时,它无论如何都看不到。我使用用于模板参数的代码更新主题。在这种情况下,使用会话来传递变量似乎有点过多,因为它不依赖于单个访问者的会话,而是依赖于页面设置。
    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 2017-11-09
    • 2014-11-30
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2016-09-26
    相关资源
    最近更新 更多