模块控制器函数索引($ setting)中的opencart $ setting变量为空

时间:2014-10-25 23:10:55

标签: opencart

创建模块时,我想使用$ setting array

<?php
class ControllerModuleMymodule extends Controller {
  protected function index($setting) {
...

但它是空的。我知道它来自管理员控制器,但如何填写它?

1 个答案:

答案 0 :(得分:0)

(1.5.X回答)

{p> $setting会自动填充mymodule_module值。如果您查看OC附带的一些预制模块,您可以看到这样的示例。例如,帐户模块。您将看到可以添加多个模块并定位它们。每个设置都是一个数组,例如account_module[0]['layout_id']account_module[0]['position']。 OpenCart加载account_module设置并反序列化设置数组,然后通过for循环将每个设置依次传递给控制器​​。如果您查看模块的某个位置的来源,例如/catalog/controller/common/column_left.php文件,则可以看到此信息。

    $extensions = $this->model_setting_extension->getExtensions('module');      

    foreach ($extensions as $extension) {
        // Loads the settings for all of this extensions modules and unserializes (this is done behind the scenes of the get() method)
        $modules = $this->config->get($extension['code'] . '_module');

        if ($modules) {
            // Loop for each module to be rendered (checking it's valid for this particular position)
            foreach ($modules as $module) {
                if ($module['layout_id'] == $layout_id && $module['position'] == 'column_left' && $module['status']) {
                    $module_data[] = array(
                        'code'       => $extension['code'],
                        'setting'    => $module, // This data is passed to your controller in subsequent code
                        'sort_order' => $module['sort_order']
                    );              
                }
            }
        }
    }