首页 > 解决方案 > 如何将模板 index.php 中的变量传递给 Joomla 中的组件?

问题描述

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

在模板 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

标签: phpvariablesglobal-variablesjoomla3.0joomla3.9

解决方案


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

其次,您可以使用模板参数..


推荐阅读