Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OpenCart OCMOD和VQMOD修改系统_Php_Opencart_Opencart Module_Vqmod_Ocmod - Fatal编程技术网

Php OpenCart OCMOD和VQMOD修改系统

Php OpenCart OCMOD和VQMOD修改系统,php,opencart,opencart-module,vqmod,ocmod,Php,Opencart,Opencart Module,Vqmod,Ocmod,我是OpenCart OCMOD和VQMOD系统的新手。所以我需要一些帮助。我的问题是 据说OCMOD是OC2+默认系统。也有人说我们必须自己编写OCMOD。这是什么意思?如果OCMOD附带OC2+。那我们为什么要自己写呢?如果OCMOD是OC+2的默认部分。那么在OC3.0.2.0中我们在哪里可以找到它呢 如何使用OCMOD在OpenCart中进行更改而不影响核心文件 在安装新的OCMOD.zip或OCMOD.xml和VQMOD.zip或VQMOD.xml后,如何删除已做的更改而不在Ope

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

  • 据说OCMOD是OC2+默认系统。也有人说我们必须自己编写OCMOD。这是什么意思?如果OCMOD附带OC2+。那我们为什么要自己写呢?如果OCMOD是OC+2的默认部分。那么在OC3.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本身就是一个引擎(自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>
    
    在这里,我们在两个不同的文件中有两条指令(操作)(我们也可以在一个文件中实现多个操作)。在操作中我们在原始核心文件中搜索一行代码,并在
    add
    标记中添加前/后或替换为代码。下面是一些可能有助于.ocmod.xml文件构建的示例

    当您有.ocmod.xml文件时,您需要安装它。有两种不同的方法:

  • 在/system文件夹和中插入文件
  • 在Extension-Installer的管理面板中,安装.ocmod.xml文件并安装。这个案子比较好处理。您可以在Extension-Extension中找到您的OCMOD文件。这些不是文件,而是数据库条目。要在安装后编辑它们,您可能需要
  • 在某些情况下,您可以看到带有install.xml和upload文件夹的.ocmod.zip存档。它可以是包含OCMOD文件和附加文件的模块,在单个安装程序中编译

    关于变化 现在,当我们安装了一个带有operations.ocmod.xml的文件并清除了缓存时,系统将创建核心文件副本并将其保存在/system/storage/modifications/。。。。如果我们从示例中获取代码,您将看到文件/system/storage/modifications/catalog/view/theme/default/template/common/header.twig以及.ocmod.xml中实现的更改

    就这样。OCMOD的工作原理就这么简单。一旦您安装了任何.ocmod.xml文件,该文件将保存在OpenCart中,并在每次缓存清理后执行操作。您在.ocmod.xml文件中进行了更改-清除缓存。已安装new.ocmod.xml-清除缓存。删除了一些旧的.ocmod.xml-清除缓存

    升级OpenCart版本后,OCMOD文件可能保持不变。但是如果它们不见了,只需重新安装(你应该在其他地方保存它们)

    另外,不同的.ocmod.xml文件可能会影响同一核心文件。这绝对没问题