【问题标题】:Get optional parameters from custom module从自定义模块获取可选参数
【发布时间】:2013-11-25 11:28:50
【问题描述】:

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

问题出在哪里?

【问题讨论】:

    标签: joomla joomla3.0


    【解决方案1】:

    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;
    }
    

    然后在另一个函数中调用then,只需使用以下代码:

    $params = static::getParams($instance);
    $displayName = $params->get('email_receiver');
    

    希望对你有帮助

    【讨论】:

    • 我不知道这一点(而且我无法通过谷歌搜索它 o.O)。这很有帮助。谢谢你:)
    【解决方案2】:

    对于组件,您可以通过以下方法获取配置选项:

        jimport('joomla.application.component.helper');
        $isEnableMap = JComponentHelper::getParams('com_mycomponent')->get('enable_map'); 
        var_dump($isEnableMap);exit;
    

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2015-04-16
      • 2022-01-22
      相关资源
      最近更新 更多