1

我刚刚开始使用 Joomla,并且仍在尝试通过制作自定义模块的最佳实践来努力工作。我正在开发一个新闻跟踪器,从外部 XML 中创建项目列表,由我的 helper.php 文件中的函数生成。

基于 $_GET['id'] 变量,我想将我的 mod_modulename.php 转发到不同的模板文件(default.php 和 popup.php)。你可以猜到,我希望我的模块显示新闻列表:

  • 新闻标题 1
  • 新闻标题 2
  • 新闻标题 3

单击它们应该会打开一个仅包含新闻项目内容(标题、图像、内容)的弹出窗口,但由于 Joomla 的框架结构,我不想在 popup.php 中放置任何 PHP 代码或函数调用。我遇到了问题。

如果它是一个组件,我可以简单地将可点击的新闻标题链接到带有 ?option=com_componentname 的 url。因为它是一个模块,所以这不起作用(或者我还没有发现如何)。检索 popup.php 中的内容似乎很混乱,并且在没有定义的情况下链接到 mod_modname.php“控制器”(“_JEXEC”)只是恕我直言的不好做法。

helper.php // retrieves content for mod_modname.php
mod_modname.php // gets the data from helper.php and loads views depending on $_GET['id']
default.php // default view listing the news items in different layouts (list-style, blog-style, etc.)
popup.php // should display only the newsitem selected, not the entire Joomla template

关于如何在不遇到不良做法或为此模块开发附加组件的情况下解决此问题的任何建议?(不包括关于使用弹窗的争论)

4

1 回答 1

0

尝试这个,

 $document = &JFactory::getDocument();
 $renderer = $document->loadRenderer('module');

 $Module = &JModuleHelper::getModule('mod_fmDataGrid');

 $Params = "param1=bruno\n\rparam2=chris";//This will only required when you pass module params through code
 $Module->params = $Params;
 echo $renderer->render($Module);

更多信息在这里

于 2013-06-24T14:13:48.220 回答