【问题标题】:PHP / OpenCart 2.2.0 - Creating custom themePHP / OpenCart 2.2.0 - 创建自定义主题
【发布时间】:2026-01-15 04:10:01
【问题描述】:

我今天开始在 OpenCart 2.2 中进行主题开发,我正在关注这篇文章:

http://code.tutsplus.com/tutorials/create-a-custom-theme-with-opencart-introduction--cms-21786

Wich 使用 1.5.6.1 版本的 opencart。 (对于 2.2 版,我找不到任何关于此的信息,所以我认为它必须相同)。

据我了解,我们应该在目录/视图/主题中创建主题目录。对于测试pourposes,我创建了一个“customtheme”目录并从默认主题复制了目录结构。

问题是当我进入仪表板 -> 设置 -> 常规 -> 主题时,选择框没有显示我创建的新主题。

我做错了什么? 我应该只修改默认主题吗?这似乎不是最好的方法。

谢谢。

【问题讨论】:

  • 您是否将所有文件从默认主题复制到新文件夹中?您的自定义主题的确切路径是什么?
  • 您不需要将任何文件复制到您的新主题中。一开始它可以是完全空的。没问题。如果不包含文件,它会使用内置回退方法返回默认主题。
  • 这是我自己写的OpenCart 2主题开发教程。 kvcodes.com/2016/11/opencart-2-theme-development

标签: php opencart2.x


【解决方案1】:

我在将默认主题复制到名为 duplicate 的文件夹中时遇到了同样的问题,因此我查看了代码。主题的管理扩展实际上为我没有的新主题寻找控制器;所以我所做的是

  • /admin/controller/theme/下的默认主题控制器(theme_default.php)复制到theme_duplicate.php中并命名控制器ControllerThemeThemeDuplicate
  • 将所有键 theme_default 替换为 theme_duplicate
  • 复制默认视图 admin/view/template/theme/theme_default.tpl 并将其命名为 theme_duplicate.tpl
  • 我还复制了 语言文件,并将其命名为 theme_duplicate.php。我还更新了新的重复语言文件中的一些文本。
  • 现在,如果您查看扩展/修改/主题,您将看到您的新主题,它也应该可以在设置下进行更新

    【讨论】:

    • 谢谢,我会试试的。如果它有效并且当我测试它时,我会投票给答案。不管怎么说,还是要谢谢你。 ;)
    • 我做了这个,它有点工作,但我有一个问题。如果我转到设置->主题并选择默认主题,然后转到扩展->主题->编辑默认主题并将主题目录更改为我的自定义主题目录,那么新主题将反映在前端。但是,如果我在 Extensions->Themes 下安装我的新主题并确保将主题目录设置为自定义主题目录,然后转到 Settings->Theme 并将其更改为自定义主题,那么前端会反映默认主题。我错过了什么?谢谢
    • 控制器的事情做到了。如果在他们的documentation 中甚至没有提到这些不明显的事情,那么 Opencart 就会很糟糕。
    【解决方案2】:

    我有同样的问题,自定义主题在仪表板 -> 设置 -> 常规 -> 主题中不可用。我在这里找到了详细的解决方案:http://undefined.gr/site/2016/10/09/custom-opencart-2-3-0-2-theme

    【讨论】:

      【解决方案3】:

      您应该将catalog/view/theme/default/template 中的所有文件粘贴到catalog/view/theme/default/customthemetemplate 文件夹应该在那里。

      【讨论】:

      • 查看我对第一篇文章的评论。无需将所有文件复制到新主题中。找不到文件时使用回退到默认主题。
      • 是的@Klaus,我知道这一点。
      【解决方案4】:

      作为opencart的新手,在观看教程并下载opencart 2.3.x后遇到了这个问题,我读到他们将主题更改的东西移到了

      Extensions >> Extensions >> Themes (in the drop down menu) >> Edit >> Theme Directory.

      希望这对未来迷茫的主题创作者有所帮助。

      【讨论】: