opencart之vqmod浅谈

来源:互联网 发布:linux root登录 编辑:程序博客网 时间:2024/06/05 09:05

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。大家若有兴趣,不妨打开这三个文件,对比一下就一目了然了。

0 0
原创粉丝点击