Opencart扩展状态和位置设置在哪里?

时间:2012-07-30 16:05:27

标签: php opencart

关于开放式购物车的快速问题,扩展状态和位置设置在哪里?我可以在代码中看到

$postion = $this->config->get($extension . '_position');

以及

'status'      => $this->config->get($extension . '_status') 

但我无法看到这些定义在哪里?

2 个答案:

答案 0 :(得分:1)

首先,查看您的扩展程序文件(例如' payment / free_checkout.php')并搜索类似的内容

$this->model_setting_setting->editSetting( 'free_checkout', $this->request->post);

这是存储在数据库中的设置(如果需要,可以深入设置模型)

之后,打开admin / index.php并查看第38-48行。 您可以看到,系统从数据库获取数据并将数据存储到配置对象中。

答案 1 :(得分:0)

在Opencart中,模块使用位置。它们设置在admin under extensions / modules中。单击“保存”时,它会将它们保存到modulename_module

下的数据库表oc_settings中

启动Opencart时 - 在INDEX.php中有这段代码

// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

foreach ($query->rows as $setting) {
    if (!$setting['serialized']) {
        $config->set($setting['key'], $setting['value']);
    } else {
        $config->set($setting['key'], unserialize($setting['value']));
    }
}

它创建了配置 - 当前商店ID的所有设置的大量数组。

之后位置控制器(column_left.php,column_right.php,content_top.php和content_bottom.php)遍历表oc_extension中的扩展,并找到需要显示的所有模块。

然后它通过这个庞大的阵列CONFIG并收集这些模块的设置 - 这一切都存储在一个数组$ module_data

然后控制器使用这些设置基本启动应该显示的模块的每个控制器。它为foreach循环中的每个模块传递控制器路径和$设置,并在结果中获取模块的渲染。

您可以在php文件中的任何位置访问配置 - 它可以是另一个控制器,模型甚至是tpl文件。

$this->config->get(...)

如果您愿意 - 您可以直接转到数据库oc_settings并使用这些函数从中获取数据

$this->load->model('setting/setting'); // remeber to always load the model.
$this->model_setting_setting->editSetting( 'free_checkout', $this->request->post);

希望这会有所帮助。

此外,您可以使用此模块来消耗您的敞篷车SUPER轻松的位置数量 Extra positions Unlimited