我正在创建自定义模块(我正在学习如何制作自定义模块),目前我遇到了如何获取自定义参数的问题。这是 XML 部分,用于定义自定义参数:
<config>
<fields name="params">
<fieldset name="email_settings" label="Email Setting">
<field name="email_receiver" type="text" default=""
label="Receiver Email" />
</fieldset>
</fields>
</config>
这是帮助文件:
class modAskUsFormHelper
{
public static function sendEmail($data)
{
$mailer = JFactory::getMailer();
}
public static function getAjax()
{
$data = modAskUsFormHelper::cleanData();
modAskUsFormHelper::sendEmail($data);
}
public static function cleanData()
{
$input = JFactory::getApplication()->input;
$data = array(
'name' => $input->get('ime', '', 'string'),
'email' => $input->get('email', '', 'string'),
'tema' => $input->get('tema', '', 'string'),
'pitanje' => $input->get('pitanje', '', 'string')
);
return $data;
}
}
当我尝试var_dump($this->params->get('email_receiver'));
时,我收到以下错误:
Fatal error: Using $this when not in object context in C:\wamp\www\joomla\modules\mod_ask_us_form\helper.php on line 21
问题出在哪里?
答案 0 :(得分:2)
helper.php 中的调用参数与您通常使用的参数略有不同。你会这样实现它:
public static function getParams($instance = 'mod_your_module'){ // replace mod_your_module
jimport('joomla.application.module.helper');
$module = JModuleHelper::getModule($instance);
$moduleParams = new JRegistry;
$moduleParams->loadString($module->params);
return $moduleParams;
}
然后在另一个函数中调用,只需使用下面的代码:
$params = static::getParams($instance);
$displayName = $params->get('email_receiver');
希望这有帮助
答案 1 :(得分:0)
对于组件,您可以按照以下方法获取配置选项:
jimport('joomla.application.component.helper');
$isEnableMap = JComponentHelper::getParams('com_mycomponent')->get('enable_map');
var_dump($isEnableMap);exit;