OpenCart 在侧边栏上显示自己的模块


OpenCart show own module on sidebar

我正在OpenCart 1.5.5中研究侧栏中的某种新闻模块。我已经在后端运行了这一切,但我不知道如何将此模块module/aselsi分配给主页、产品页面和类别页面的右侧栏。

我已经查看了一些源代码,但我不完全了解这个参与式的东西是如何工作的。我确实尝试通过在数据库表oc_layout and oc_layout_route一些信息中插入来使其工作,但这也没有用。

所以我的问题是:如何让我的扩展/模块出现在首页?

通过running in the back-end,我想您已经为某种表单创建了一个自定义控制器、模型和视图,您可以在其中管理您的新闻。没关系。

但是由于这应该是一个模块,您还必须为此模块创建一个后端部件,以便可以安装它并将其分配给某些页面上的布局。最简单的方法是复制这些文件:

  • admin/controller/module/banner.php
  • admin/language/<YOUR_LANGUAGE>/module/banner.php
  • admin/view/template/module/banner.php

进入您的新

  • admin/controller/module/aselsi.php
  • admin/language/<YOUR_LANGUAGE>/module/aselsi.php
  • admin/view/template/module/aselsi.php

并将所有类名、常量、模型和语言文件名从 banner 重命名为 aselsi 。在此之后,您应该会在您管理的扩展>模块下看到一个新的 Aselsi 模块,您应该能够将此模块分配给页面和职位......

只是想提一下,简单的复制粘贴+重命名是不够的,您还必须编辑其他一些部分才能使其正常工作。

编辑:我现在不在代码上,但是是的,你是对的,这与你在评论中提到的那行有很大关系。每个模块设置都保存为序列化字符串(这是一个序列化数组),其中包含模块设置 - 布局、位置、sort_order等。键是模块键 - aselsi在您的情况下,与所有其他模块都有自己的模块一样。通过仅安装模块,您可以将模块设置为活动状态,但您可以通过保存模块的设置来显示模块。在左列、右列和顶部和底部内容的前端控制器中,活动模块将被填充,并设置所有模块以显示在该布局上,然后显示该位置。

模块

的安装/卸载(在后端)可以扩展到例如,通过实现具有各自逻辑的installuninstall方法来为该模块添加/删除新的数据库表和/或更改当前数据库表(通过添加新列等)。

我希望这个简单的解释有所帮助。