如何在 oc2 的目录 tpl 文件中直接显示自定义模块


How to show custom module direct in catalog tpl file in oc2

我已经阅读了SO和Opencart论坛中的所有相关问题,但找不到解决方案。

所以我复制了特色模块并编辑了一些代码,不是太多,现在我想在唯一的成功页面上直接在前面显示这个新模块。所以我把这段代码放在目录/控制器/结帐/成功中.php

$data['successpage'] = $this->load->controller('module/successpage');


和 ***catalog/view/theme/default/template/common/success.tpl

<?php echo $successpage; ?>

现在我得到

错误 未定义的索引:控制器''模块''成功页面中的限制.php在第 20 行


* 我认为它的 b'coz 一些变量值需要在模块控制器文件中发送

我已经尝试了所有答案,但无法找到解决方案。


谢谢,如果你知道并帮助我整理。

您可能会收到错误,因为您的类ControllerModuleSuccesspage的索引方法中没有传递任何设置(数据)。您直接呼叫$data['successpage'] = $this->load->controller('module/successpage');

尝试通过从管理员端设置来显示您的successpage模块。(从布局)。如果要直接调用它,请先检查条件if ($setting['any index']) { ..... } else {... }

如果您想在不从管理端设置的情况下传递任何参数,请执行此操作。

$parameters = array(
 'name' => 'Your module name',
 'product' => array(43,40,42,30), // product id
 'limit' => 4,
 'width' => 200 ,
 'height' => 200,
 'status' => 1
);
$data['successpage'] = $this->load->controller('module/successpage',$parameters);

您将在successpage控制器文件的方法index获得$parameters的所有详细信息。就是这样。:)

试试这个网址" [yourhost]/index.php?route=module/successpage",看看这个模块是否完美运行。将此模块加载到父控制器时没有错误。我认为这个模块本身存在问题。也许是一些价值依赖。