opencart是一个用PHP开发的网上商城程序,据说是一位英国人独自完成的,赞一个!
vqmod是opencart的一种编程机制,可以理解为vqmod就是opencart的插件。
既然将vqmod认为是opencart的插件,那它必然是一个或多个文件,事实也是如此;
文件位置:vqmod/xml(当前目录均为网站根目录,下同)
文件格式:xml格式,
原理:文本查找、替换换增加
举例说明:vqmod_add_sku.xml
<modification> /* 根 */
<id>Very simple AJAX live search</id>
<version>1.0.0</version>
<vqmver>1.2.3</vqmver>
<author>n[oO]ne</author>
<file name="admin/controller/catalog/product.php"> /* 替换的文件名*/
<operation>
<search position="after"> /*ater: 在寻找到的字符串后面增加;before:在寻找到的字符串前面增加;replace:替换寻找到的字符串*/
<![CDATA[
$this->data['products'][] = array( /* 查找的字符串*/
]]>
</search>
<add>
<![CDATA[
'sku' => $result['sku'], /* 增加或替换的字符串*/
'upc' => $result['upc'],
]]>
</add>
</operation>
</file>
看到这里大家就明白了,vqmod的机制就是当执行某一程序(比如a.php,也可以是模型文件和视图文件)时,先查找vqmod/目录下的所有xml文件,有没有<file name="a.php";若没有,就正常执行;若有,就按这个xml文件的说明替换掉源文件,再执行这替换后的文件。所以系统会有一个位置存储这些替换后生成的文件,这个位置就是vqmod/vqcache,而且文件名有规律,比如上例中的name="admin/controller/catalog/product.php",则替换后的文件名为vq2-admin_controller_catalog_product.php。大家若有兴趣,不妨打开这三个文件,对比一下就一目了然了。