Cách viết vQmod cho opencar
Khi tìm hiểu về vQmod các bạn luôn muốn vừa học vừa thực hành tự viết cho riêng mình một vQmod để sử dụng, mình viết bài này để cho các bạn có thể hiểu làm thế nào để viết vQmod đúng cú pháp và nhanh chóng tiếp thu được những gì mình đã đọc và tìm hiểu. Để thuận tiện trong việc viết vQmod cho Opencart các bạn có thể sử dụng một công cụ nhỏ sau đây nó sẽ giúp cho các bạn không phải ngồi gõ một loạt các code dài loàng ngoàng nữa ^^. Như ở bài các bạn đã có dịp làm quen với một số ví dụ về vQmod, vQmod sử dụng một trình phân tích cú pháp xml được mặc định.
Cú pháp của file xml mà vQmod phân tích có dạng cơ bản như sau:
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.php ví 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 ví dụ:
-
catalog
/
view
/
theme
/*/template/product/product.tpl
- catalog/view/theme/*/
*
/product/
product
.
tpl
-
v.v...
Có thể có nhiều file cần thay đổi trong một file *.xml<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
- "error" được thiết lập là skip | log | abort
<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 (oifset="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.
Bài viết sẽ được cập nhật sau ^^
Bài liên quan
Hình như cách bố trí layout blog của bạn bị vỡ rồi ...
Trả lờiXóa