- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有比使用 VQMOD
更好的方法?/OCMOD
改变OpenCart's
核心文件?
是否存在一些“覆盖”文件夹,以便我可以简单地创建任何 PHP
文件对应于文件结构并简单地覆盖核心文件? (就像 PrestaShop
和 Magento
一样)。VQMOD
/OCMOD
是 高度 不方便。
有人使用任何黑客和技巧来达到结果吗?
我不想接触任何核心文件以保持系统清洁和可管理。
非常感谢!
最佳答案
我的解决方案是修改 system/startup.php 中的 1 个函数 (modification()),然后您可以将任何现有的 PHP 文件复制到“覆盖”文件夹中并在不更改原始文件的情况下对其进行修改。
我想找到一种仅替换更改/添加的功能的方法,但是 OpenCart 中的 OOP 方法不容易做到这一点。
我已经调整了一些 OCMOD 模块以适应我的覆盖方法(通过应用模块,将更改的文件复制到我的覆盖结构中,然后删除模块),因为我认为它更容易维护和更容易开发,当我创建我自己的模块,我在主结构中创建虚拟文件,在“覆盖”目录中创建实际文件,这意味着我所有的修改/添加都在一个文件夹中,该文件夹保持原始布局的结构。
可以生成创建 OCMOD 的文件差异,但我还没有时间这样做。我确实标记了所有更改,因此我可以通过手动重新应用更改来升级到较新的版本(这通常是“好事”(c),并且可能与其他扩展发生冲突,因此手动标记更改意味着我也可以将更改应用于 OCMOD 修补文件。
我的修改函数如下所示:
function modification($filename) {
$mod_dirs = array(
DIR_MODIFICATION,
dirname(DIR_SYSTEM).'/override/' // do this second in case there are other over-rides needed for modules
);
foreach($mod_dirs as $mod) {
if (!defined('DIR_CATALOG')) {
$file = $mod . 'catalog/' . substr($filename, strlen(DIR_APPLICATION));
} else {
$file = $mod . 'admin/' . substr($filename, strlen(DIR_APPLICATION));
}
if (substr($filename, 0, strlen(DIR_SYSTEM)) == DIR_SYSTEM) {
$file = $mod . 'system/' . substr($filename, strlen(DIR_SYSTEM));
}
if (is_file($file)) {
return $file;
}
}
return $filename;
}
/override
/override/admin
/override/catalog
/override/system
关于overriding - 在不触及核心和 VQMOD/OCMOD 的情况下修改 OpenCart 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933978/
在 Opencart 2.0.1.1 中,我尝试上传一个名称格式为 .ocmod.xml 的 OCmod 配置文件,但出现错误 Modification requires a unique ID co
这是我的 xml,我在 ocmod.log 中也没有收到错误,请帮助 最佳答案 您无法使用 ocmod 或 vqmod 修改客户端文件: css & js files
我是 OpenCart OCMOD 和 VQMOD 系统的新手。所以我需要一些帮助。我的问题是。 据说OCMOD是OC2+默认系统。也有人说我们必须自己编写 OCMOD。这是什么意思?如果 OCMOD
我已经阅读了教程以创建将在主页中添加文本的 OCMOD 文件,但它不显示任何内容。 SET_TEXT_TEST 1.0 TEST TEST_TEXT htt
有没有比使用 VQMOD 更好的方法?/OCMOD改变OpenCart's核心文件? 是否存在一些“覆盖”文件夹,以便我可以简单地创建任何 PHP文件对应于文件结构并简单地覆盖核心文件? (就像 Pr
我的问题:这是我的第一个 Open Cart 项目,我不知道这个 MVCL 好))所以我需要为 OpenCart 2.3.0.2 编写 ocmod 修改,以便在产品页面中添加制造商描述。早期我找到 o
我已经在扩展安装程序中成功上传了自定义的 .ocmod 文件夹 (.ocmode.zip),并且也收到了成功消息。但这没有加载到扩展中。我使用的是 opencart 版本 3.0.3.2。 我的文件结
我想在商品详情页改一些商品属性相关的东西:/index.php?route=product/product&product_id=100 所以我改变了\catalog\controller\produ
我是一名优秀的程序员,十分优秀!