OpenCart OCMOD和VQMOD修改系统

时间:2020-08-15 10:27:03

标签: php opencart opencart-module vqmod ocmod

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

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

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

  3. 在安装新的OCMOD.zip或OCMOD.xml和VQMOD.zip或VQMOD.xml之后,如何在OpenCart核心文件中不安装OCMOD或VQMOD的情况下删除已进行的更改,而不会删除更改的影响。

  4. 如何使用OCMOD或VQMOD还原OpenCart在升级版本中所做的更改?

  5. 如果安装了新的OCMOD或VQMOD,它会删除OpenCart核心文件中已经进行的所有更改吗?

1 个答案:

答案 0 :(得分:4)

我们第一次谈论general OCMOD and VQMOD logic。这次我将描述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 file documentation,可能有助于建立 .ocmod.xml 文件。

拥有 .ocmod.xml 文件时-您需要安装它。有两种不同的实现方法:

  1. 将文件插入 / system 文件夹和clear cache
  2. 在管理面板的 Extension-Installer 中安装您的 .ocmod.xml 文件和clear cache。这种情况更好管理。您可以在扩展名-扩展名中找到OCMOD文件。这些不是文件,而是数据库条目。要在安装后对其进行编辑,您可能需要OCMOD editor

在某些情况下,您会看到带有 install.xml upload 文件夹的 .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文件可能保持不变。但是,如果它们消失了-只需重新安装它们(您应该在某个地方保存它们)。

P.S。不同的 .ocmod.xml 文件可能会影响同一核心文件。绝对可以。