我正在尝试自定义一个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,这是我想弄清楚的原则.
在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>密钥设置的值.