Joomla 3!模块参数

时间:2013-11-22 18:01:28

标签: php joomla

我有一个Joomla网站,我有一个带有mod_myModuleName.php和mod_myModuleName.xml文件的自定义模块,以及一个文件夹,其中有几个PHP脚本可以为我的模块添加特殊功能。文件夹中有一个config.php文件,它包含一个带有变量的关联数组,其值是硬编码的。该模块工作正常。

我想要的是为数组中的变量值提供管理员区域,以便我可以将值放在管理员面板中并在config.php中获取它们的值。在我的mod_myModuleName.php中,我使用<?php echo $params->get('param')?>,它就像一个魅力。

但是当我尝试在config.php中使用相同的技术时,它会破坏我的代码。我试图获取mod_myModuleName.php中的值,然后将其包含在config.php中并使用变量,但它也不起作用。我没有这么多的PHP经验,无法理解是什么原因。

它有时给我一个非对象的错误,我想它必须是与面向对象的php相关的东西,我是对的吗?如果是这样,有没有办法在没有面向对象的情况下克服这个问题,或者我如何解决我的问题呢?

1 个答案:

答案 0 :(得分:1)

问题在于您使用config.php的方式。

当Joomla加载模块入口点文件mod_myModuleName.php时,$params对象在该上下文中已经可用,您需要将其提供给脚本。

如果您查看类似mod_articles_latest模块的内容,您会注意到此行包含帮助程序类:

require_once __DIR__ . '/helper.php';

然后帮助类有getList()方法静态调用并传入$params,因此{1}}可用于类上下文:

$params

在帮助程序类$list = ModArticlesLatestHelper::getList($params); 中,您会注意到ModArticlesLatestHelper期望传递getList()

$params

我强烈建议您阅读Modules sectionDevelopers PortalJoomla Doc's内的文章。

尝试“创建一个简单的模块”文章。