Ars*_*han 4 php opencart vqmod opencart-module ocmod
我是 OpenCart OCMOD 和 VQMOD 系统的新手。所以我需要一些帮助。我的问题是。
据说OCMOD是OC2+默认系统。也有人说我们必须自己编写OCMOD。这是什么意思?如果 OCMOD 带有 OC2+。那我们为什么要自己写呢?如果 OCMOD 是 OC+2 的默认部分。那么我们在OC 3.0.2.0中在哪里可以找到它呢?
如何在不影响核心文件的情况下使用OCMOD在OpenCart中进行更改?
在安装新的 OCMOD.zip 或 OCMOD.xml 和 VQMOD.zip 或 VQMOD.xml 后,如何在不删除这些更改的影响的情况下,在 OpenCart 核心文件中不安装 OCMOD 或 VQMOD 的情况下删除已经进行的更改。
如何使用 OCMOD 或 VQMOD 在升级版本中恢复在 OpenCart 中所做的更改?
如果安装了新的 OCMOD 或 VQMOD,它是否会删除 OpenCart 核心文件中已经进行的所有更改?
我们第一次谈论一般的 OCMOD 和 VQMOD 逻辑。这次我来介绍一下OCMOD的工作经历(VQMOD的工作原理大同小异,已经过时了,省略了)。OCMOD 本身是一个引擎(从 2.X 开始就内置于 OpenCart 中)。我们需要在这个引擎中放置一个指令以使其工作。指令文件采用 XML 格式并具有特定名称,例如my_file.ocmod.xml,其中需要以.ocmod.xml结尾。
这是 OCMOD 文件的示例
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>My OCMOD file</name>
<code>my-ocmod</code>
<version>1.0</version>
<author>Me</author>
<link>http://mywebsite.com</link>
<file path="catalog/view/theme/default/template/common/header.twig">
<operation>
<search><![CDATA[<div id="top-links" class="nav pull-right">]]></search>
<add position="before"><![CDATA[
<div>Add Something</div>
]]></add>
</operation>
</file>
<file path="catalog/controller/common/header.php">
<operation>
<search><![CDATA[$data['name'] = $this->config->get('config_name');]]></search>
<add position="replace"><![CDATA[
$data['name'] = $this->config->get('config_name') . $this->document->getDescription();
]]></add>
</operation>
</file>
</modification>
Run Code Online (Sandbox Code Playgroud)
这里我们在 2 个不同的文件中有 2 个指令(操作)(我们也可以在单个文件中实现多个操作)。在操作中,我们在原始核心文件中搜索一行代码并添加之前/之后或将其替换为add
标签中的代码。这是OCMOD 文件文档,可能有助于.ocmod.xml文件构建。
当您有.ocmod.xml文件时 - 您需要安装它。有两种不同的方法可以做到:
在某些情况下,您可以看到带有install.xml和上传文件夹的.ocmod.zip存档。它可以是带有 OCMOD 文件和附加文件的模块,在单个安装程序中编译。
现在,当我们安装了一个带有.ocmod.xml操作的文件并清除了缓存时 - 系统会创建核心文件副本并将它们保存在/system/storage/modifications/... 中。如果我们从例子中采取的代码-你会发现文件/system/storage/modifications/catalog/view/theme/default/template/common/header.twig与实施的改革.ocmod.xml。
就是这样了。OCMOD 就这么简单。一旦您安装了任何.ocmod.xml文件 - 该文件将保存在 OpenCart 中,并在每次缓存清理后执行操作。您在.ocmod.xml文件中进行了更改- 清除缓存。安装新的.ocmod.xml - 清除缓存。删除了一些旧的.ocmod.xml - 清除缓存。
升级 OpenCart 版本后 - OCMOD 文件可能保持不变。但是如果它们不见了 - 只需重新安装它们(你应该在某处之前保存它们)。
PS 不同的.ocmod.xml文件会影响同一个核心文件。这绝对没问题。