我有一个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相关的东西,我是对的吗?如果是这样,有没有办法在没有面向对象的情况下克服这个问题,或者我如何解决我的问题呢?
答案 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 section上Developers Portal的Joomla Doc's内的文章。
尝试“创建一个简单的模块”文章。