Việc cài đặt các modules của OpenCart có thể phải chỉnh sửa file core của hệ thống Opencart khiến cho hệ thống khó update, khó chính sửa. Chính vì thế, Vqmod ra đời. Các file sẽ được chỉnh sửa và lưu tại cache của Vqmod, còn file core thì vẫn như ban đầu. Để chỉnh sửa file core và lưu thành của riêng mình. Vqmod đã đưa ra những chuẩn cụ thể. Bài viết sau đây sẽ tìm hiểu về cấu trúc của Vqmod.
Cú pháp của file xml mà vQmod phân tích có dạng cơ bản như sau:
<?xml version=”1.0″ encoding=”UTF-8″?>
<modification>
<id>Replace 123 with ABC</id>
<version>1.0.0</version>
<vqmver>1.0.9</vqmver>
<author>qphoria</author>
<file name=”relative/path/myfile.php”>
<operation>
<search position=”replace”><![CDATA[$var = ‘123’; ]]></search>
<add><![CDATA[$var = ‘ABC’;]]></add>
</operation>
</file>
</modification>
Giải thích cú pháp XML
- <modification></modification> Đây là cấp cao nhất của file *.XML mỗi một file chỉ được suất hiện một lần cặp.
- <id></id>Đây là tên dùng để cung cấp thông tin mô tả mod được định dạng bằng văn bản.
- <version></version> Cung cấp thông tin về phiên bản của mod được định dạng bằng số thập phân ví dụ: 1.1.0
- <vqmver></vqmver>Cung cấp thông tin phiên bản tối thiểu của VirtualQMod cần thiết để làm việc, được định dạng bằng số thập phân ví dụ: 2.1.5
- <author></author>Cung cấp thông tin về tác giả của mod, được định dạng bằng văn bản.
- <file name=”name_file.php”></file>Đây là tên của file cần thay đổi là tên của file có liên quan đến file index.phpví dụ như: catalog/controller/product/product.php
- Đường dẫn được hỗ trợ dấu (*) để đại diện cho một đường dẫn linh động mỗi một dấu (*) được đại diện cho duy nhất một thư mục.
Phân tích cú pháp bên trong <file></file>
- <operation></operation> đây là nơi các hoạt động thay đổi được diễn ra. Có thể có nhiều thay đổi trong một file
Tùy chọn: “error” được thiết lập là skip | log | abort
- skip bỏ qua tất cả các hoạt động khác, không lưu lại lỗi trong nhật ký (Error Log)
- log giống như skip nhưng lưu lại lỗi trong nhật ký
- abort hủy bỏ các lỗi để trở lại mặc định
- <search position=”replace | before | after | top | bottom | all”></search> Đây là bước đầu tiên diễn ra các hoạt động. Cần sử dụng [CDATA[ đoạn code]]> để bao bọc đoạn mã.
- replace: dùng khi muốn thay thế dữ liệu tìm kiếm bằng dữ liệu trong thẻ <add></add> (Mặc định)
- before: dùng khi muốn chèn dữ liệu trong thẻ <add></add> vào trước dữ liệu tìm kiếm.
- after: dùng khi muốn chèn dữ liệu trong thẻ <add></add> vào sau dữ liệu tìm kiếm.
- top: dùng khi muốn chèn dữ liệu trong thẻ <add></add> lên trên cùng của file và bỏ qua dữ liệu tìm kiếm
- bottom: dùng khi muốn chèn dữ liệu trong thẻ <add></add> xuống dưới cùng của file và bỏ qua dữ liệu tìm kiếm
- all: thay thế tất cả dữ liệu của file bằng dữ liệu trong thẻ <add></add>
Tùy chọn: “offset” thuộc tính này sẽ làm việc cùng với các vị trí của position giả sử offset nhận giá trị là 2 (offset=”2″) :
- Nếu giá trị của position là before thì nó sẽ đưa dữ liệu trong thẻ <add></add> lên trước dữ liệu tìm kiếm 2 dòng.
- Nếu giá trị của position là after thì nó sẽ đưa dữ liệu trong thẻ <add></add> xuống dưới dữ liệu tìm kiếm 2 dòng.
Tham khảo thêm tại: Vqmod Scripting. Xem tiếp bài cài đặt Vqmod