略谈 vqmod for opencart 插件制作过程

首先嘛,你得有点编程底子,如果没有,没关系,你爱折腾也行。那么,下面我们来说说vqmod的插件制作。

<!--  PS:写在前面,能不抄袭吗?转载注明出处。。-->

我做OC的二开很久了,但是从来都没用过vqmod,因为比较懒吧?然后那天我去翻看了vqmod的文档,一下子就上手了,虽然不能说得上很熟练,但是基本逻辑还是领悟了。

首先,了解下vqmod,官方文档有说明,意思就是在不更改核心文件的前提下,去生成一个缓存文件,其实他是把核心文件的更改后生成的缓存文件,所以如果插件引起网站错误,那么只需要卸载XML即可,不会导致网站无法修复。

那么,了解到这一点,我们就可以开始了。vqmod的基础信息文档有说明,我这里只说下重要部分,看下下面代码。

  1. <file name="admin/language/english/catalog/product.php">
  2.     <operation>
  3.         <search position="before"><![CDATA[
  4.         $_['column_image']           = 'Image';
  5.             ]]></search>
  6.             <add><![CDATA[  
  7.          $_['help_look']              = '查看';
  8.          $_['help_look_no']           = '未发布无法查看';
  9.         ]]></add>
  10.     </operation>
  11. </file>

首先,file 标签这里,name的是定义需要修改的文件,一个operation标签里面是一个修改的地方,比如你要修改多个地方就需要多个这样的标签,里面有 search,也就是搜索,和 add标签,也就是添加,或者替换。

position 后面的参数有几个,一个是 after,也就是搜索到的内容下面添加,一个是 before ,也就是搜索的内容前面添加,还有一个是 replace ,也就是替换。

如果要搜索的第二个值怎么办呢?添加 index="2" ,以此类推。

那么,示例中的代码的意思就是,打开:admin/language/english/catalog/product.php 这个文件,搜索

  1. $_['column_image']           = 'Image';

然后在上面添加

  1. $_['help_look'] = '查看';
  2. $_['help_look_no'] = '未发布无法查看';

这样下来,就会得到一个缓存文件,里面的代码就是增加了这个内容的代码。

缓存文件在vqmod下的vpcache文件夹。

比如:vq2-catalog_controller_product_category.php

也就是对应的:catalog/controller/product/category.php 文件

下面再举例:

  1. <file name="admin/controller/catalog/product.php">
  2. <!-- 打开 admin/controller/catalog/product.php 文件 -->
  3.     <operation> <!-- 开始一个修改 -->
  4.         <!-- 搜索一个内容,在代码下面添加 -->
  5.         <search position="after"><![CDATA[  
  6.          $data['text_form'] = !isset($this->request->get['product_id']) ? $this->language->get('text_add') : $this->language->get('text_edit');
  7.             ]]></search>
  8.             <!-- 添加的内容 -->
  9.             <add><![CDATA[  
  10.          $data['product_id'] = !isset($this->request->get['product_id']) ? '' : $this->request->get['product_id'];
  11.         ]]></add>
  12.     </operation> <!-- 一个修改结束 -->
  13.     <operation> <!-- 再一个修改开始 -->
  14.     <!-- 搜索一个内容,在代码上方添加 -->
  15.         <search position="before"><![CDATA[  
  16.          $data['column_image'] = $this->language->get('column_image');
  17.             ]]></search>
  18.         <!-- 添加的内容 -->
  19.         <add><![CDATA[$data['help_look'] = $this->language->get('help_look');]]></add>
  20.     </operation><!-- 结束 -->
  21.     <operation>
  22.         <!-- 搜索的代码,由于有两个,选择第二个,然后替换 -->
  23.         <search position="replace" index="2"><![CDATA[  
  24.          $data['text_enabled'] = $this->language->get('text_enabled');
  25.             ]]></search>
  26.         <!-- 替换的内容 -->
  27.         <add><![CDATA[  
  28.         $data['help_look'] = $this->language->get('help_look');
  29.         $data['help_look_no'] = $this->language->get('help_look_no');
  30.         ]]></add>
  31.     </operation>
  32. </file> <!-- 全部结束 -->

上面的代码,都附上了注释,大家应该可以看得懂,其实是我的某个插件的代码,不过我为了拿来讲解,修改了一些地方。大家也可以去下载我免费提供的插件查看示例和学习。

插件下载:点这里

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

图片 表情