亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OpenCart OCMOD 和 VQMOD 修改系統

OpenCart OCMOD 和 VQMOD 修改系統

PHP
瀟湘沐 2023-10-15 15:13:16
我是 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 核心文件中已進行的所有更改?
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

第一次我們討論一般 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. 擴展安裝程序的管理面板中安裝.ocmod.xml文件并清除緩存。這種情況比較好處理。您可以在擴展 - 擴展中找到您的 OCMOD 文件。這些不是文件,而是數據庫條目。要在安裝后編輯它們,您可能需要OCMOD 編輯器。

在某些情況下,您可能會看到.ocmod.zip存檔以及install.xml上傳文件夾。它可能是帶有 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文件可能會影響同一個核心文件。這絕對沒問題。


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 167 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號