从自定义模块中获取可选参数

时间:2013-11-25 11:28:50

标签: joomla joomla3.0

我正在创建自定义模块(我正在学习如何制作自定义模块),目前我遇到了如何获取自定义参数的问题。这是 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

问题出在哪里?

2 个答案:

答案 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;