繁体   English   中英

OpenCart OCMOD 和 VQMOD 修改系统

[英]OpenCart OCMOD and VQMOD Modification Systems

我是 OpenCart OCMOD 和 VQMOD 系统的新手。 所以我需要一些帮助。 我的问题是。

  1. 据说OCMOD是OC2+默认系统。 也有人说我们必须自己编写 OCMOD。 这是什么意思? 如果 OCMOD 带有 OC2+。 那为什么我们需要自己写呢? 如果 OCMOD 是 OC+2 的默认部分。 那么我们在 OC 3.0.2.0 哪里可以找到呢?

  2. 如何在不影响核心文件的情况下使用 OCMOD 在 OpenCart 中进行更改?

  3. How to remove changes already made without installing OCMOD or VQMOD in OpenCart core files after installing new OCMOD.zip or OCMOD.xml and VQMOD.zip or VQMOD.xml without removing the effect of that changes.

  4. 如何使用 OCMOD 或 VQMOD 恢复升级版 OpenCart 中所做的更改?

  5. 如果安装了新的 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>

这里我们在 2 个不同的文件中有 2 个指令(操作)(我们也可以在一个文件中实现多个操作)。 操作中,我们正在原始核心文件中搜索一行代码,并在之前/之后添加或用add标签中的代码替换它。 这是OCMOD 文件文档,可能有助于构建.ocmod.xml文件。

当您拥有.ocmod.xml文件时 - 您需要安装它。 有两种不同的方法可以做到这一点:

  1. /system文件夹中插入文件并清除缓存
  2. Extension-Installer的管理面板中安装.ocmod.xml文件并清除缓存 这种情况比较好处理。 您可以在Extension-Extension中找到您的 OCMOD 文件。 这些不是文件,而是数据库条目。 要在安装后编辑它们,您可能需要OCMOD editor

在某些情况下,您可以看到带有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文件会影响同一个核心文件。 这绝对没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM