10分鐘學會OpenCart主題修改vQmod
成名每在窮苦日,敗事多於得意時
第1步 創建空白的OpenCart主題
1.在catalog/view/theme/
下創建一個mytheme文件夾,目錄架構該是這個樣子的:
1 | catalog/view/theme/ |
2.來到OpenCart後台:
Admin -> System -> Setting – > Edit Store ->Tab Store -> template ->mytheme
修改主題為自定義主題mytheme(將default替換為mytheme)
第2步 創建基礎的OpenCart主題
1.創建一些文件夾,並複製默認主題的一些文件,不是複製全部哦:
1 | catalog/view/theme/ |
樣式表需要圖片,所以複製全部圖片過來;
樣式表文件是header.tpl
需要的;slideshow.css
和carousel.css
是OpenCart模塊需要的;
要改變外觀(如顏色配置)可以修改mytheme/stylesheet/stylesheet.css
第3步 修改OpenCart主題:理解Controller
模板如何成為主題
修改的tpl文件都在新建的mytheme
的子文件夾下,不要修改默認主題的文件。繼續複製默認主題下的文件到mytheme
文件夾及其子文件夾,需要複製的基本文件如下
1 | catalog/view/theme/ |
如果你的mytheme
下沒有如上對應的文件夾,請自行創建。
理解OpenCart使用的MVC模型
對於鏈接
route=product/category
,OpenCart會調用controller/product/category.php
文件;這個
Controller
(這個例子中是category.php)將決定載入哪一個/種MVC-L:模型、視圖(也就是tpl後綴的模板)、語言。具體來說會載入:
1 | 3個模型 (category, product, image): $this->load->model(); |
- 這個
Controller
會決定如何將數據推送到模板以及如何處理用戶的輸入數據。
1 | 例如:數據庫數據的推送 |
Controller
是沒有回調函數的,如果手工修改了Controller
文件,在升級你的OpenCart的時候,會被官方文件替換掉,為了能手工修改控制器,可以使用vQmod
做一個虛擬修改,後面將進行介紹。
第4步 修改OpenCart主題:理解Model
1 | $this->load->model(『catalog/product'); - 載入模型 |
Model
在MVC中的作用是處理與數據庫有關的數據推送和讀取,在Controller推拉數據之前,需要載入特定的Model。載入模型:告訴OpenCart在前台或者管理員界面載入
model/catalog/product.php
,getTotalProducts()
,editProduct()
是model/catalog/product.php
的內置函數。打開
model/catalog/product.php
,找到public function getProduct
,找到return array
:
getProduct()
列出了產品的所有信息,而顯示哪些是由Controller
決定的!
打開controller/product/category.php
,找到$this->data[『products'][] = array
就可以知道這個Controller調用了哪些數據了!
第5步 修改OpenCart主題:理解vQmod
「vQmod™」(虛擬快速修改),這是一個免費開源的程序組件,可以理解為一個模塊,作用是在不修改程序核心文件的前提下,對程序進行虛擬的修改。
它的原理很簡單:創建xml搜索/替換腳本文件,而不是去直接修改核心文件。在頁面加載解析為每個源核心文件使用php函數include
或require_once
來載入腳本文件。
當源核心文件需要修改時,會生成一個臨時文件。該臨時文件在執行過程中取代了原來的核心文件,原來的核心文件是永遠不會改變的。
vQmod可以對OpenCart的無回調的Controller
和Model
進行虛擬的修改。
請先下載vQmod!將下載到的壓縮包解壓,然後將vqmod文件夾複製到Opencart的根目錄,示例如下:
1 | OpenCart的根目錄 |
自動安裝vQmod
在你的瀏覽器打開http://我的域名/vqmod/install
,
會看到安裝成功的信息:vQmod has been installed on your system!
手動安裝vQmod
1.在上傳vqmod文件夾到前文所述位置後,打開OpenCart網站根目錄下的index.php
,將其中的
1 | // Startup |
替換為:
1 | // vQmod |
2.打開網站根目錄下的admin/index.php
,將其中的:
1 | // Startup |
替換為:
1 | // vQmod |
3.打開網站根目錄下的vqmod/vqcache
,如果這個目錄已經有了幾個vq
開頭的php文件,那就說明vqmod
已經在工作了!
4.前面已經說過了vqmod腳本文件是xml格式的,位於OpenCart網站根目錄下的vqmod\xml
文件夾,被vqmod修改後的文件緩存在vqmod\vqcache
文件夾。
一個vqmod腳本可以有多個修改規則,也可以修改程序核心的多個文件。
vqmod腳本的示例
1 | 1.0」 encoding=「UTF-8」 xml version=「 |