我刚刚开始与Joomla合作,我仍在尝试自己制作自定义模块的最佳实践。我正在创建一个新闻跟踪器,从外部XML创建一个项目列表,由我的helper.php文件中的函数生成。
基于$ _GET ['id']变量,我想将我的mod_modulename.php转发到另一个模板文件(default.php和popup.php)。您可以猜测,我希望我的模块显示新闻项列表:
单击它们应该打开一个仅包含新闻项目内容(标题,图像,内容)的弹出窗口,但是由于Joomla的框架结构而不想在弹出窗口中放置任何PHP代码或函数调用。 php我遇到了问题。
如果它是一个组件,我可以简单地将可点击的新闻标题链接到带有?option = com_componentname的网址。因为它是一个模块,这不起作用(或者我还没有发现如何)。检索popup.php中的内容似乎很乱,并且链接到没有定义('_ JEXEC')的mod_modname.php'控制器'只是不好的做法恕我直言。
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
有关如何在不遇到不良做法或为此模块开发其他组件的情况下解决此问题的任何建议? (不包括关于使用弹出窗口的辩论)
答案 0 :(得分: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);
了解更多Here