我以前以这种方式从 Joomla 文章中添加了 Joomla 模块:{loadmodule mod_name}
但这次我需要从中传递参数。
如何将文章中的参数传递给 Joomla 模块?
我以前以这种方式从 Joomla 文章中添加了 Joomla 模块:{loadmodule mod_name}
但这次我需要从中传递参数。
如何将文章中的参数传递给 Joomla 模块?
您需要修改或克隆 Joomla 插件loadmodule
,因为它不处理除了模块名称之外的参数。如果您精通 PHP,这并不是特别困难(假设您不介意通过一些 Regex 工作弄脏您的手),但我建议您克隆它并以这种方式使用它:
\plugins\content\loadmodule
到\plugins\content\Myloadmodule
(及其所有文件)loadmodule.php
和重命名loadmodule.xml
为myloadmodule.php
和myloadmodule.xml
。 这些是您将完成所有工作的文件。loadmodule
, myloadmodule
(区分大小写)myloadmodule.php
中,从第 36 行左右开始,使用 Regex 去除{loadposition xxx}
正在处理的内容。您需要修改此正则表达式以获取您{myloadmoduel blah-blah-blah}
在文章中使用时要提供的参数。loadposition
并为myloadposition
. (除非您想编写和安装程序)我想我已经涵盖了所有内容,但这应该足以为您完成大部分工作。完成后,使用{myloadposition ...}
代替{loadposition ...}
.
我将提供有关上一个答案的更多详细信息,以便能够将参数传递给标签为 {loadmodule mod_name,param} 的模块 GDP 给出的解决方案工作正常:重写内容插件(例如 myloadmodule)既简单又快捷,按照上一个答案中的步骤 1 到 5 进行操作。对我来说,问题在于步骤 6:如何将参数放入模块中,以及如何在模块中检索 de 参数。
第 7 步:如何为模块的“渲染”提供参数
在创建的插件中(基于 loadmodule),您必须找到包含以下代码的行:
echo $renderer->render($module, $params);
在此行之前,您可以将参数放入 $params 参数中,但模块的“render”仅检索带有键“params”的参数,使用 json 格式。因此,要将参数传递给渲染函数,您可以执行以下操作:
$param = array('param_name' => 'value'); // param_name = value
$params = array('params' => json_encode($param)); // 'params' (String) should be decoded by the render of the module
echo $renderer->render($module, $params);
第 8 步:如何在模块中检索参数
在模块的助手中,您可以使用 $params 变量检索参数:
$value = $params->get('param_name');
要了解帮助程序,请阅读本教程:http ://docs.joomla.org/J3.3:Creating_a_simple_module/Developing_a_Basic_Module
我用谷歌搜索了同样的问题并找到了你的问题。我知道它很旧,但我的发现可能对其他人有所帮助。现在有插件允许嵌入模块并允许您将参数传递给它。我的选择是Module Plant。