Opencart的$ this-> config-> get('module_var_name')

Nin*_*oel 5 php opencart

我正在尝试自定义一个Opencart支付模块,我看到很多地方正在使用配置信息,但我找不到任何可以创建正在使用的变量的地方.我知道在管理页面中如果我选择'paypal标准'我可以设置所有'配置'信息,但我找不到'模型'强调它,是否有模型,我希望创建一个新的配置设置,可在里面设置管理页面

管理页面如何知道要设置哪些变量?如果我更改付款模块的管理员"视图"以显示新设置,该设置是否会自动在目录中可用?

正在使用的一些配置数据的示例...

admin\view\template\payment\pp_standard.tpl(paypal admin模板),允许设置'测试模式'....

<tr>
        <td><?php echo $entry_test; ?></td>
        <td><?php if ($pp_standard_test) { ?>
          <input type="radio" name="pp_standard_test" value="1" checked="checked" />
          <?php echo $text_yes; ?>
          <input type="radio" name="pp_standard_test" value="0" />
          <?php echo $text_no; ?>
          <?php } else { ?>
          <input type="radio" name="pp_standard_test" value="1" />
          <?php echo $text_yes; ?>
          <input type="radio" name="pp_standard_test" value="0" checked="checked" />
          <?php echo $text_no; ?>
          <?php } ?></td>
      </tr>
Run Code Online (Sandbox Code Playgroud)

目录\ controller\poayment\pp_standard.php(paypal目录控制器),使用上面的'测试模式'来确定要击中哪个paypal Webservice URL.

if (!$this->config->get('pp_standard_test')) {
    $curl = curl_init('https://www.paypal.com/cgi-bin/webscr');
} else {
    $curl = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
}
Run Code Online (Sandbox Code Playgroud)

我期待在某个地方找到'pp_standard_test'定义的'模型',但我什么都没找到,任何帮助理解这一点都会非常感激.

PS网上有很多建议说'paypal标准'支付模块是一个很好的起点,但很可能,我们不会使用paypal,这是我想弄清楚的原则.

sha*_*yyx 5

在OpenCart管理中,admin/model/setting/setting.php模型用于这样的模块/扩展,其中仅提供密钥组名称和发布的数据以存储在settingDB表中...(并且可选地store_id也在多线程安装中)

你可以检查admin/controller/payment/dir中的任何控制器,看看这个模型是如何使用的(pp_standard.php从OC 1.5.5.1中的第10行):

$this->load->model('setting/setting');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
    $this->model_setting_setting->editSetting('pp_standard', $this->request->post);

    $this->session->data['success'] = $this->language->get('text_success');

    $this->redirect($this->url->link('extension/payment', 'token=' . $this->session->data['token'], 'SSL'));
}
Run Code Online (Sandbox Code Playgroud)

这会将所有表单数据写入setting数据库表,而表单字段的名称将用作填充值的键.

因此,如果你打电话

$this->config->get('<KEY>');
Run Code Online (Sandbox Code Playgroud)

您可以获取为<KEY>密钥设置的值.