如何在 Opencart 前端接收模块 ID

How to receive module ID on Opencart frontend

我正在尝试准备一个模块。 我需要 module_id 值。 我将使用 module_id 值绘制数据。 如何在前端的控制器中获取module_id。

您应该使用某个名称创建模型文件 mymodule.php,您应该在其中放置如下内容:

public function getModules() {
        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "module` ORDER BY `code`");

        return $query->rows;
    }   
    you will get all modules data.

或者只能通过模块代码获取一个:

public function getModulesByCode($code) {
        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "module` WHERE `code` = '" . $this->db->escape($code) . "' ORDER BY `name`");

        return $query->rows;
    }

然后在你的控制器中用相应的名称 mymodule.php 文件你可以调用它:

 $modules = $this->model_extension_module->getModulesByCode($code);

$modules = $this->model_extension_module->getModules();

您的建议可能适用于单个模块。

我的模块有子模块。

但我找到了解决方案。

设计布局解决了文件的工作。

catalog / controller / common / common_left.php
catalog / controller / common / common_right.php
catalog / controller / common / head_top.php
catalog / controller / common / head_bottom.php

等等

我添加了星号代码。

    if (isset($part[1])) {
        $setting_info = $this->model_setting_module->getModule($part[1]);

        if ($setting_info && $setting_info['status']) {
        ***** $setting_info["module_id"] = $part[1]; *****
            $output = $this->load->controller('extension/module/' . $part[0], $setting_info);

            if ($output) {
                $data['modules'][] = $output;
            }
        }
    }