ShopEX二次开发DIY日记16之挂件goods_show里怎么二次开发增加商品销售总量或者其他

虫曰:

二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

今天抽空去ShopEX的老东家商派论坛去看了看,发现,已经是变成广告的天地,没什么技术交流的氛围了,不知道是店大了,不在乎我们这些小店还是怎样噢,感觉一日不如一日呀~

话题扯远了,在论坛看到有人问怎么为挂件goods_show二次开发增加商品销售总量,这个是很好的话题哈,正好拿来DIY讲解一下我们应该怎么对挂件做二次开发噢。

在开讲之前我们先来看看sdb_goods表内的字段列表吧~

字段名称

数据类型

主键

必填

含义

说明

goods_id

number

ID

cat_id

object:goods/productCat

分类

type_id

object:goods/gtype

类型

goods_type

Array

销售类型

brand_id

object:goods/brand

品牌

brand

varchar(100)

品牌

supplier_id

int unsigned

supplier_goods_id

number

wss_params

longtext

image_default

longtext

默认图片

udfimg

bool

是否用户自定义图

thumbnail_pic

varchar(255)

缩略图

small_pic

varchar(255)

big_pic

varchar(255)

image_file

longtext

图片文件

brief

varchar(255)

商品简介

intro

longtext

详细介绍

mktprice

money

市场价

cost

money

成本价

price

money

销售价

bn

varchar(200)

商品编号

name

varchar(200)

商品名称

marketable

bool

上架

weight

decimal(20,3)

重量

unit

varchar(20)

单位

store

number

库存

store_place

varchar(255)

库位

score_setting

Array

score

number

积分

spec

longtext

规格

pdt_desc

longtext

物品

spec_desc

longtext

物品

params

longtext

uptime

time

上架时间

downtime

time

下架时间

last_modify

time

更新时间

disabled

bool

notify_num

number

缺货登记

rank

decimal(5,3)

rank_count

int unsigned

comments_count

int unsigned

view_w_count

int unsigned

周浏览数

view_count

int unsigned

浏览数

buy_count

int unsigned

购买数

buy_w_count

int unsigned

周购买数

count_stat

longtext

p_order

number

排序

d_order

number

大家可以看到上面常用的都已经注释好作用了,那么我们知道SQL只要有这个字段的名字,那么就能获取到值。

下面就是对代码作分析噢,其实很简单,只要有PHP基础的朋友都懂得直接修改的,就是很多朋友在问,说到底就是PHP没有基础!又不愿意自己去学,哎,最鄙视了~我们是真的遇上问题要求救,这些人是从没打算自己学习。

先打开plugins\widgets\goods_show目录,然后你会看到5个文件,分别是_config.html、defalut.html、widget_cfg_goods_show.php、widget_goods_show.php、widgets.php,其实有的挂件还有一个文件名字叫_preview.html,这些文件时必备的文件,功能如下:

文件名称 文件作用
_config.html 后台配置模板文件
widget_cfg_goods_show.php 后台配置项的控制器
defalut.html 前台默认的模板,在widgets.php内定义
widget_goods_show.php 前台挂件功能的控制器,将后台的参数转换为数据用以前台的输出
widgets.php 挂件配置文件,有关挂件的信息配置
_preview.html 挂件在编辑的状态下的预览,用以没有界面的挂件的后台编辑占位

今天不是教怎么开发挂件,所以我们不需要每个文件都去查看噢,只需要打开widget_goods_show.php文件,然后找到:

[php]$result=$o->getList(null,$filter,0,$limit,$orderby[‘sql’]);[/php]

这行是调用products模型获取商品信息,有开发经验的朋友肯定就知道我们要获取的数据就是这个在控制,只需要在这个控制的方法里面增加销售总量的字段或者其他需要的内容,然后前台调用一下标签即可。

下面我们先来查看一下getList方法的原型哈~

[php]getList($cols,$filter=”,$start=0,$limit=20,$orderType=null)[/php]

由上面我们知道getList的第一个参数是字段列表,类型为字符串,我们只需要将需要的字段名合并成一个字符串传入即可,比如我们需要商品名称,价格,那么在底下用getlist方法之前我们只需要定义:

[php]$cols="name,price";[/php]

 

 

然后就可以调用getList方法,然后你就会获取每个商品的名称及价格字段。当然,在挂件中定义为null值,代表这个使用默认的字段,我们打开mdl.products.php文件,你会看到默认字段的定义了:

[php]var $defaultCols = ‘bn,name,cat_id,price,store,marketable,brand_id,weight,d_order,uptime,type_id,supplier_id’;
var $appendCols = ‘goods_id,image_default,thumbnail_pic,brief,pdt_desc,mktprice,big_pic’;[/php]

也就是没有显示销售量字段,那么我们怎么调用噢?有两个处理办法:

1、直接指定参数

[php]$result=$o->getList(null,$filter,0,$limit,$orderby[‘sql’]);[/php]

挂件的设置是指定字段为空,那么我们就按照上面的说明指定一下字段参数即可。如下:

[php]$cols="name,price";
$result=$o->getList($cols,$filter,0,$limit,$orderby[‘sql’]);[/php]

然后就可以了,噢,请将$cols的值设置为*号吧,获取全部的字段好了~你懂得修改不?

2、设定默认变量哈

[php]$o->defaultCols = ‘bn,name,cat_id,price,store,marketable,brand_id,weight,d_order,uptime,type_id,supplier_id’;
$o->appendCols = ‘goods_id,image_default,thumbnail_pic,brief,pdt_desc,mktprice,big_pic’;
$result=$o->getList(null,$filter,0,$limit,$orderby[‘sql’]);[/php]

也可以获取正确的值噢~~哈,具体的字段请参考上面的表结构,然后自己修改吧~