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 ^^