瞧着走团队、独家研发!

{ COMMON.php }
淘宝SDK模板公用PHP代码.开源版
作用:让SDK2.0模板中所有模块能够代码复用,减少多余代码,提高开发效率,节省开发成本。只有想不到,没有做不到!~~oye~~

版本支持:高级模板、JS模板、TAE模板、天猫模板
原售价:998元   现价:(开源,收费!赞赏,随心)


← V2.1.8 开源版
网页版(带详细注释)!

选择此common.php的6 大优势:
1、common.php,源代码开源公开;
2、代码稳定、无BUG,且注释清晰;
3、提高开发效率,节省开发成本(时间、维护);
4、代码书写规范,提高程序执行效率;
5、灵活易用,不懂php也可轻松搞定模板开发;
6、强大的技术支持,免费更新、升级 !
使用步骤:(QQ群:163395301    必填验证:tbcommon)
1. 点击左侧的下载按钮,下载文件   »   2. 解压缩   »   3. 查看压缩包中的“使用说明(必读!).txt”文档
common.php,共享函数详解 V2.1.8 开源版 (2016-8-26升级)
- 瞧着走、出品 -
赞 赏

随 心

查看更新日志»

什么是common.php ?

common.php是淘宝SDK模板的公用PHP代码。
其作用是让所有模块能够代码复用,减少多余代码,提高开发效率,节省开发成本(时间、维护成本)。
版本支持:高级模板、JS模板、TAE模板、天猫模板

有朋友说,这个公用PHP函数写的太"漂亮"、太强大了,为什么要开源啊?

答曰:要干咱就要干最漂亮的。。。^o^ ~ 经常交流的朋友们,都知道,
我们的源代码价格体系是,只涨不降,随时涨价!服务宗旨是,要么高价收费,要么免费!只服务懂行的朋友~~!     点击这里给我发消息
A :::::::: 获取店铺商品信息(getItems) ::::::::

获取店铺商品信息,函数详解:

1、common.php,源代码(function),带注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//图片尺寸【2015.4.28修改】
function getSizes(){
    $tbSizes = 
array(
        
16,20,24,30,32,36,40,48,50,60,64,70,72,80,88,90,100,110,120,125,128,130,145,160,170,180,190,200,210,220,230,234,
        
240,250,270,290,300,310,315,320,336,350,360,400,430,460,468,480,490,540,560,570,580,600,640,670,720,728,760,960,970
    );
//淘宝官方宝贝图片所有尺寸
    return $tbSizes;
}
//自定义尺寸处理【2015.4.28新增】
function getImg($img){
    $arraySize = getSizes();
//所有尺寸
    $newArray = array();
    
foreach($arraySize as $size){
        
if($size>=$img){//大于等于$img的存入新数组$newArray
            $newArray[] = $size;
        }
    }       
    $itemPic = $img>
970?"970":min($newArray);//取新数组中的最小的值       
    return $itemPic; 
}
//折扣价【2014.11.25修改】
function discountPrice($item){
    
if($item->discountPrice || $item->discountPrice!=$item->price) { //判断折扣价是否存在
        $discountPrice = number_format($item->discountPrice,3,".","");//格式化数字(取三位小数)
    }else{
        $discountPrice = number_format($item->price,
3,".","");//同上
    }
    $discountPrice = substr($discountPrice,
0,-1);//截取两位小数(小数点后的第三位数是四舍五入后的结果)
    return $discountPrice;
}
//店铺商品相关【2016-8-26修改】
function getItems($ids, $categoryId, $keyword, $sortType = " ", $num = "20", $itemData = "1", $idsType= "itemForm") {
    
global $itemManager, $uriManager, $rateManager;//用global引入了函数外部的$itemManager, $uriManager, $rateManager变量
    $arraySize = getSizes();//所有尺寸
    $itemsObj = array();//建立数组,用于存储<评价选择器|宝贝选择器|类目选择器>里“商品”的相关信息
    $ratesObj = array();//建立数组,用于存储<评价选择器>里“评价”的相关信息
    if($ids!=null && $itemData == 2){//手动【2014-6-17修改,取消$ids的优先权】
        if($idsType == 'itemRateForm'){//itemRateForm代表评价选择器【2014-4-15新增】
            $itemRates = $rateManager->parse($ids);//使用开放接口解析评价选择器$ids设置的相关信息
            foreach($itemRates->keySet() as $id){//遍历上一步返回的$itemRates
                $itemsObj[] = $itemManager->queryById($id);//商品信息
                $ratesObj[] = $itemRates->get($id);//评价信息
            }
        }
else{//itemForm代表宝贝选择器
            $arrayIds = is_string($ids) ? explode(',', $ids) : (array) $ids; //$ids转换成数组
            if($sortType == " "){//$sortType为" "时,突破最多显示20个宝贝的限制
                foreach($arrayIds as $id){
                    $itemsObj[] = $itemManager->queryById($id);
//根据宝贝id查询,把查询的宝贝放到数组$itemsObj中
                }
            }
else{
                $itemsObj = $itemManager->queryByIds($arrayIds,$sortType);
//此接口最多返回20个宝贝
            }
        }
    }
elseif($categoryId!=null && $itemData == 3){//类目【2016-8-26修改】
        $jsonArray = json_decode($categoryId);//通过PHP函数解析json数据生成JSON数组
        foreach($jsonArray as $jsonObject){
            $childIds = explode(
",",$jsonObject->{childIds});//小分类id数组
            if($jsonObject->{childIds} != null){//小分类有值时,不加载大分类里的宝贝数据
                foreach($childIds as $childId){
                    
//根据小分类id查询小分类下的宝贝(此接口最多返回20个宝贝)
                    $items_xfl = $itemManager->queryByCategory($childId,$sortType,$num);
                    
foreach($items_xfl as $itemCate){//勾选多少小分类,显示多少小分类里的商品
                        $itemsObj[] = $itemCate!=null ? $itemCate : "";//如果得到了宝贝放到数组中(可突破最多显示20个宝贝的限制)
                    }
                }
            }
else{
                
//根据大分类id查询大分类下的宝贝(同上)
                $items_dfl = $itemManager->queryByCategory($jsonObject->{rid},$sortType,$num);
                
foreach($items_dfl as $itemCate){//同上
                    $itemsObj[] = $itemCate!=null ? $itemCate : "";//同上
                }
            }
        }
    }
elseif($keyword!=null && $itemData == 4||$itemData == 1){//关键字||自动【2015.5.27修改】
        $kw = $itemData==1?" ":$keyword;
        $kwObj = $itemManager->queryByKeyword($kw,$sortType,$num);
        $newType = str_replace(
'__','','_'.$sortType);//相反排序规则
        $newObj = $sortType==" "?$kwObj:array_reverse($itemManager->queryByKeyword($kw,$newType,$num));//array_reverse使数组逆序输出
        $delObj = array_unique(array_merge($kwObj,$newObj));//array_unique移除合并后数组中重复的值
        $itemsObj = array_merge($delObj,$delObj,$delObj,$delObj,$delObj);//合并数组
    }
    
//根据宝贝列表查询宝贝的sku列表信息【2014.1.2新增】
    $skuLists = $itemsObj!=null ? $itemManager->queryOpenSkuDOListByOpenItemDOList($itemsObj) : "";
    $itemData = $itemsObj!=
null ? $itemData : "5"//兼容处理!$itemsObj为空,执行风格预览【2013.7.22修改】
    $items = array(); //建立数组,用于存储宝贝的相关信息
    if($itemData != 5 || $itemsObj!=null){// $itemData 店铺商品数据:1为自动,2为手动,3为类目,4为关键字,5为效果图
        foreach ($itemsObj as $key => $item) {//遍历获取的宝贝信息,将信息存入$item数组中
            if($key<$num){//控制商品数量
                if($item->exist){//商品存在的情况下做的事情
                    $qzz['url'] = $uriManager->detailURI($item);
                    
foreach($arraySize as $imgSize){//遍历商品尺寸数组,将值存入$imgSize
                        $qzz['pic'.$imgSize] = $item->getPicUrl($imgSize);//获取不同尺寸的宝贝图片
                    }
                    $qzz[
'title'] = $item->title;
                    $qzz[
'price'] = $item->price;
                    $qzz[
'discountPrice'] = discountPrice($item); //获取 精确到小数点后两位的折扣价
                    //求商算折扣【2013.11.23新增】
                    $qzz['zhekou'] = number_format(str_replace(',','',discountPrice($item))/str_replace(',','',$item->price),2)*10;
                    $qzz[
'soldCount'] = $item->soldCount;
                    $qzz[
'collectedCount'] = $item->collectedCount;
                    $qzz[
'id'] = $item->id;
                    $qzz[
'itemCategoryId'] = $item->itemCategoryId;//宝贝后台类目【2016.7.22新增】
                    $qzz['skuList'] = $skuLists[$key];//获取某个宝贝的sku列表信息【2014.1.2新增】
                    //注意:
                    //1、获取某个宝贝的sku列表信息,供模块php中,获取此宝贝所具有的“属性列表”时所用
                    //2、一个宝贝有多条属性,若无需输出宝贝的其他属性,只需输出“属性图片列表”的话,可以直接调用下面的代码输出
                    foreach($arraySize as $imgSize){//【2014.1.2新增】
                        //根据某个宝贝的sku列表信息,获取此宝贝的sku“属性图片列表”,需要在dom中用foreach循环出来所有图片
                        $qzz['skuPics'.$imgSize] = $itemManager->getSkuPropertyPics($skuLists[$key],$imgSize,$imgSize);
                    }
                    $qzz[
'rateList'] = $ratesObj[$key]!=null?$ratesObj[$key]:"";//评价选择器非空时,执行【2014.8.15修改】
                }
            }
else{break;}
            $items[] = $qzz;
        }
    }
    
if($itemData == 5|| $items == null) {//风格预览||兼容处理(店铺无宝贝时执行)【2016.8.26修改】
        $imgUrl = array(
            
"http://img02.taobaocdn.com/imgextra/i2/34251258/TB2Dc8mcVXXXXbHXpXXXXXXXXXX_!!34251258.jpg",
            
"http://img02.taobaocdn.com/imgextra/i2/34251258/TB2Dc8mcVXXXXbHXpXXXXXXXXXX_!!34251258.jpg"
        );
//定义图片数组(根据需求,需要多少图,输入淘宝图片空间的图链接即可)
        for ($i = 0; $i < $num; $i++){
            $mtRand = mt_rand(
0,(count($imgUrl)-1));//获取随机数 
            $qzz['url'] = "http://www.taobao.com/?id=www.qiaozhezou.com";
            
foreach($arraySize as $imgSize){//遍历商品尺寸数组,将值存入$imgSize
                $qzz['pic'.$imgSize] = $imgUrl[$mtRand]."_".$imgSize."x".$imgSize.".jpg";//获取不同尺寸的宝贝图片
            }
            $qzz[
'title'] = "宝贝数据未添加,请点击右上角的编辑按钮选择添加您的宝贝";
            $qzz[
'price'] = "598.00";
            $qzz[
'discountPrice'] = "398.98";
            $qzz[
'zhekou'] = number_format(398.98/598.00,2)*10;//求商算折扣
            $qzz['soldCount'] = "1588";
            $qzz[
'collectedCount'] = "988";
            $qzz[
'id'] = "1".$i;
            $qzz[
'itemCategoryId'] = "2".$i;
            $items[] = $qzz;
        }
    }
    
return $items;
}
2、在DOM中调用,参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * $ids (商品ID类型:$idsType="itemForm",xml接口为宝贝选择器;$idsType="itemRateForm",xml接口为评价选择器)
 * $categoryId (类目ID)
 * $keyword (关键词)
 * $sortType (商品排序 )
 * $num (商品数量:最大为20, 默认为20)
 * $itemData (店铺商品数据:1为自动,2为手动,3为类目,4为关键字,5为效果图)
 * $idsType (ID类型:itemForm为宝贝选择器,itemRateForm为评价选择器,留空不写时默认为itemForm)【2014.4.15日增加】
 
 * 注意:评价选择器或宝贝选择器,不能同时存在,只能二选一!
 
 * 函数调用:
 * $items = getItems($ids,$categoryId,$keyword,$sortType,$num,$itemData,$idsType);//此处用的是common.php里的商品共享函数
 
 * 在DOM中调用,参数说明:
 * $item['url'] (商品链接)
 * $item['pic300'] (商品图片路径,300为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
 * $item['title'] (商品名)
 * $item['price'] (价格)
 * $item['discountPrice'] (折扣价)
 * $item['zhekou'] (折扣率)【2013.11.23新增】
 * $item['soldCount'] (销售量)
 * $item['collectedCount'] (收藏量)
 * $item['id'] (商品ID)
 * $item['itemCategoryId'] (宝贝后台类目)【2016.7.22新增】
 * ---------获取商品sku信息↓------------【2014.1.2新增】
 * $item['skuList'] (商品sku列表信息)
 * $item['skuPics360'] (商品sku属性图片路径列表,360为图片宽高尺寸,获取所有的sku属性图需要在dom中用foreach循环输出)
 * ---------获取商品评价信息下------------【2014.4.15日增加】
 * $item['rateList'] (商品评价列表信息)
 * foreach($item['rateList'] as $rate){
 * $rate->auctionId (商品ID,勾选评论时此id才能正常输出)
 * $rate->auctionUrl (商品URL,勾选评论时此url才能正常输出) ------【评价选择器 独有的 接口】
 * $rate->raterId (评价者数字id)
 * $rate->getRaterAvatar60 (评价者头像,60为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
 * $rate->raterNick (评价者昵称)
 * $rate->raterStarImg (评论者信用等级) ------【评价选择器 独有的 接口】
 * $rate->raterUrl (评价者个人主页)  ------【评价选择器 独有的 接口】
 * $rate->moreFeedbackUrl (该宝贝的更多评价url)  ------【评价选择器 独有的 接口】
 * $rate->feedback (评价内容)
 * $rate->getRatePics40 (评价图片,40为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
 * $rate->feedbackdate (评价时间)
 * }
 */
3、在模块PHP文件中使用方法,示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
    $qzz1_5=explode('|',$_MODULE['qzz1_5']);//自定义商品图片 
    //$ids = $_MODULE['qzz1_1'];//宝贝选择器
    $ids1 = $_MODULE['qzz1_6'];//评价选择器
    $categoryId = $_MODULE['qzz1_2'];//类目ID
    $keyword = $_MODULE['qzz1_3'];//关键词
    $sortType = $_MODULE['qzz1_4'];//商品排序
    $num = "30";//商品数量:最大为20, 默认为20 ----//【此处为何可填30,详情查看“V2.1.0版”升级日志!】
    $itemData = $_MODULE['qzz1_0'];//店铺商品数据:1为自动,2为手动,3为类目,4为关键字,5为效果图
    //$items = getItems($ids,$categoryId,$keyword,$sortType,$num,$itemData,"itemForm");//common.php里商品共享函数(宝贝选择器)
    $items = getItems($ids1,$categoryId,$keyword,$sortType,$num,$itemData,"itemRateForm");//common.php里商品共享函数(评价选择器)
    foreach ($items as $key => $item) {
        
//这里写dom结构
        //调用方式,例如:调用商品折扣价,直接用PHP输出 $item['discountPrice'] 即可  
        //若使用自定义商品图片,可先做判断,例如:$itemimg = $qzz1_5[$key] ? $qzz1_5[$key] : $item['pic310'];  

        
echo '<br />//+++++++++++++++++++++++【sku使用实例,如下:】+++++++++++++++++++++++++++++<br /><br />';
        $skuPics = $item[
'skuPics300'] ;//获取某个宝贝的属性图片列表(尺寸300x300)
        if($skuPics!=null){
            
foreach($skuPics as $k1 => $skupic){
                
if($k1<5){//控制输出,最多输出5个sku图
                    echo 'sku图片路径'.($k1+1).'::'.$skupic.'<br />';
                }
            }
        }
else{echo '<br /><br />未查到sku属性图,此处输出宝贝图路径:'.$item['pic300'].'<br /><br />' ;}
        
        
echo '<br />//说明:以上输出的是,某个宝贝的"属性图片列表"<br /><br /><br />';
        
        
        $skuList = $item[
'skuList'];//获取某个宝贝的sku列表信息
        $skuProperties = $itemManager->getSkuProperties($skuList);//根据此宝贝的sku列表信息,获取它所具有的属性列表(一个宝贝有多条属性)
        if($skuProperties!=null){
            
foreach($skuProperties as $k2 => $skuProperty){
                
//根据宝贝属性查询该属性下所具有的值(每个属性里面可能有多个属性值)
                $propertyValueList = $itemManager->getSkuPropertyValues($skuList,$skuProperty);
                
echo '此处输出sku'.($k2+1).':'.$skuProperty;
                
echo '<br /> -----------这是分割线111111----------- <br />';
                
foreach($propertyValueList as $ke => $propertyValue){
                    
echo '(sku'.($k2+1).'属性值'.$ke.'):'.$propertyValue.",";
                }
                
echo '<br /> -----------这是分割线222222----------- <br />';
            }
        }
elseecho '<br /><br />未查到sku属性列表<br /><br />';}
        
        
echo '<br />//说明:以上输出的是,某个宝贝的"属性列表"<br /><br /><br />';
        
        
        
foreach($skuList as $k3 => $sku){//查询sku列表
            echo "<br />sku的ID:".$sku->skuId;
            
echo "<br />sku的itemID:".$sku->itemId;
            
echo "<br />sku的数量:".$sku->quantity;
            
echo "<br />sku的价格:".$sku->price;
            
echo "<br />sku的图片url:".$sku->propertyImageUrl;
            $skuPropertyList = $sku->openItemSkuPropertiesDOList;
            
echo "<br />sku的属性:";
            
foreach($skuPropertyList as $skuProperty){
                
echo $skuProperty->propertyText." : ".$skuProperty->valueText.'';
            }
            
echo '<br />sku列表数据'.($k+1).' end<br />';
        }
        
        
echo '<br />//说明:以上输出的是,某个宝贝的"sku数据信息"<br /><br /><br />';

        
        
echo '<br />这里输出第'.($key+1).'个商品ID:itemid=<a href="'.$item['url'].'">'.$item['id'].'</a><br /><br />';
        
        
        
    
        
echo '<br /><br /><br />//+++++++++++++++++++++++【评价选择器使用实例,如下:】+++++++++++++++++++++++++++++<br /><br />';

        
echo '.<br />'.$item['title'].'';
        
echo '.<br />'.$item['id'].'';
        
echo '.<br />key:'.$key.'<br />';
        
        
echo '<p>亲们怎么评价:</p>';  //---------------------------2014-8-15日下面的判断,有调整

        
if($item['rateList']){//评论选择器有值时,执行下面的
            $rates = $item['rateList'];
        }
else{//兼容处理(自动、类目、关键词时执行)
            $rates = $rateManager->queryAuctionRates($item['id']);//根据宝贝id获取宝贝的评价信息列表
        }
        $ratenum = $item[
'rateList']?count($item['rateList']):"3";//评论显示条数
        if($rates!=null){//存在评价时,执行下面的
            foreach($rates as $kk => $rate){
                
if($kk<$ratenum){//判断,控制评论输出的条数
                    echo '<br /><br /><br />宝贝数字id:'.$rate->auctionId.'';
                    
echo '<br />宝贝详情url:'.$rate->auctionUrl.'++++++【评价选择器 独有的 接口】++++++';
                    
echo '<br />评价者昵称:'.$rate->raterNick;
                    
echo '<br />评价者个人主页:'.$rate->raterUrl.'++++++【评价选择器 独有的 接口】++++++';
                    
echo '<br />评价者数字id:'.$rate->raterId;
                    
echo '<br />评价者头像:'.$rate->getRaterAvatar('60');
                    
echo '<br />评论者信用等级:'.$rate->raterStarImg.'++++++【评价选择器 独有的 接口】++++++';
                    
echo '<br />评价内容:'.$rate->feedback;
                    
echo '<br />该宝贝的更多评价:'.$rate->moreFeedbackUrl.'++++++【评价选择器 独有的 接口】++++++';
                    
echo '<br />评价图片:'.$rate->getRatePics('40');
                    
foreach($rate->getRatePics('40'as $ratePic){
                        
echo '<br />'.$ratePic;
                    } 
                    
echo '<br />评价时间:'.$rate->feedbackdate;
                }
            }
        }
else{//兼容处理
            echo '<div class="norate">暂无评论</div>';  
        }                   
    }

?>
4、module.xml,配置方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<parameters>
    
<group title="基础设置">
        
<section title="商品设置---//评价选择器或宝贝选择器,不能同时存在,只能二选一!" folded="false">
            
<param ptype="text" name="qzz1_0" label="商品加载方式" formType="range" description="选择效果图时,加载设计师指定的商品图">
                
<option value="1">自动</option>
                
<option value="2">手动</option>
                
<option value="3">类目</option>
                
<option value="4">关键字</option>
                
<option selected="selected" value="5">效果图</option>
            
</param>
            
<param ptype="item" name="qzz1_1" label="手动选择商品" formType="itemForm" description="宝贝选择器"></param>
            
<param ptype="category" name="qzz1_2" label="店铺类目选择" formType="categoryForm" description="手动选择1个类目"></param>
            
<param ptype="text" name="qzz1_3" label="按关键字选择" formType="text" description="手动输入1个关键字"></param>
            
<param ptype="text" name="qzz1_4" label="商品排序方式" formType="select" description="排序方式">
                
<option selected="selected" value=" ">无排序(选择宝贝的先后顺序排序)</option>
                
<option value="coefp">人气宝贝升序排序</option>
                
<option value="_coefp">人气宝贝降序排序</option>
                
<option value="hotsell">热销宝贝升序排序</option>
                
<option value="_hotsell">热销宝贝降序排序</option>
                
<option value="price">以宝贝价格升序排序</option>
                
<option value="_price">以宝贝价格降序排序</option>
                
<option value="newOn">以最新上架宝贝升序排序</option>
                
<option value="_newOn">以最新上架宝贝降序排序</option>
                
<option value="HotKeep">以热门搜藏升序排序</option>
                
<option value="_HotKeep">以热门搜藏降序排序</option>
            
</param>
            
<param ptype="textarea" name="qzz1_5" label="商品图片路径" formType="textarea" description="多个用|隔开,与选择的宝贝对应">
            
            
</param>
            
<param ptype="itemRate" name="qzz1_6" label="手动选择商品" formType="itemRateForm" description="评价选择器"></param>
        
</section>
    
</group>
</parameters>
5、视频教程,实例:
此处是实例教程播放,预留区域……

getItems() end

B :::::::: 获取店铺类目信息(getCategorys) ::::::::

获取店铺类目信息,函数详解:

1、common.php,源代码(function),带注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//获取店铺类目信息【2016-7-22修改】
function getCategorys($json,$categoryData = "1"){
    
global $shopCategoryManager, $uriManager;//用global引入了函数外部的$shopCategoryManager, $uriManager变量
    if(!empty($json)&&$categoryData == 2){//手动加载店铺类目时做下面的事,即使用类目选择器时
        $allShopCategory = json_decode($json);//通过PHP函数解析json数据生成JSON数组
    }elseif($categoryData == 1){//自动加载店铺类目时做下面的事
        $allShopCategory = $shopCategoryManager->queryAll();//查询店铺所有的大分类数据
    }
    $categorys = 
array();//建立数组,用于存储类目的相关信息
    foreach($allShopCategory as $jsonObject){//遍历获取的类目信息,将信息存入$jsonObject数组中
        if(!empty($json)&&$categoryData == 2){
            $shopCategory =  $shopCategoryManager->queryById($jsonObject->{rid});
//根据json对象获取rid属性的属性值即得到大分类
        }elseif($categoryData == 1){
            $shopCategory =  $jsonObject;
//
        }
        $category = 
array();//初始化数组对象
        $category['parent']['url'] = $uriManager->shopCategoryURI($shopCategory);//大分类URL
        $category['parent']['name'] = $shopCategory->name;//大分类名称
        $category['parent']['id'] = $shopCategory->id;//大分类ID
        if(!empty($json)&&$categoryData == 2){
            
/*二级类目是通过','分隔的字符串(一定注意是半角逗号字符)*/
            $subCategories  = explode(
",",$jsonObject->{childIds});//根据json对象获取childIds属性的属性值即得到对应的小分类
        }elseif($categoryData == 1){
            $subCategories  = $shopCategoryManager-> querySubCategories($shopCategory->id);
//查询店铺大分类的所有小分类
        }
        
foreach($subCategories  as $childId){
            
if(!empty($json)&&$categoryData == 2){
                $shopCategory = $shopCategoryManager->queryById($childId);
// 根据小分类id查询类目
            }elseif($categoryData == 1){
                $shopCategory =  $childId;
//
            }
            
if($childId!=null){//小分类有值时输出【2016-7-22新增判断】
                $qzz['url'] = $uriManager->shopCategoryURI($shopCategory);//小分类URL
                $qzz['name'] = $shopCategory->name;//小分类名称
                $qzz['id'] = $shopCategory->id;//小分类ID
                $category['child'][] = $qzz;//保存小分类
            }
        }
        $categorys[] = $category;
    }
    
return $categorys;
}
2、在DOM中调用,参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
* 函数值说明:
* $json(类目ID)
* $categoryData (店铺类目数据:1为自动,2为手动,3为关键字)

* 注:自定义关键字的类目导航,请在模块的PHP文件里做判断

* 函数调用:
* $categorys = getCategorys($json,$categoryData);//此处用的是common.php里的类目共享函数

* 店铺类目参数说明:
* $category['parent']['url'] (大分类URL)
* $category['url'] (小分类URL)
* $category['parent']['name'] (大分类名称)
* $category['name'] (小分类名称)
* $category['parent']['id'] (大分类ID)
* $category['id'] (小分类ID)
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    if($_MODULE['qzz2_2']==1||$_MODULE['qzz2_2']==2){//自动、手动
        $json = $_MODULE['qzz2_1'];//类目ID
        $categoryData = $_MODULE['qzz2_2'];//店铺类目数据:1为自动,2为手动,3为关键字
        $categorys = getCategorys($json,$categoryData);//此处用的是common.php里的类目共享函数
        foreach ($categorys as $category) {
            
//这里写大分类dom结构
            foreach ($category['child'as $category) {
                
//这里写小分类dom结构
            }
            
//调用方式,例如:调用大分类名称,直接用PHP输出 $category['parent']['name'] 即可
        }
    }
elseif($_MODULE['qzz2_2']==3){//关键词
        //这里写自定义关键词的dom结构
    }
?>
4、module.xml,配置方法:
1
2
3
4
5
6
7
8
9
10
11
12
<parameters>
    
<group title="基础设置">
        
<section title="分类设置" folded="false">
            
<param ptype="text" name="qzz2_2" label="分类加载方式" formType="range" description="自动时,直接加载掌柜店铺类目!">
                
<option selected="selected" value="1">自动</option>
                
<option value="2">手动</option>
                
<option value="3">关键词</option>
            
</param>
            
<param ptype="category" name="qzz2_1" label="手动选择分类" formType="categoryForm" description="手动时有效"></param>
        
</section>
    
</group>
</parameters>
5、视频教程,实例:
此处是实例教程播放,预留区域……

getCategorys() end

C :::::::: 获取评价选择器信息(getRates) ::::::::

(注意:getRates函数现在可忽略了,common.php在v2.1.0版本之后,功能已经整合到getItems函数内)

获取评价选择器信息,函数详解:

1、common.php,源代码(function),带注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//评价选择器相关 2014.3.26修改
function getRates($value){
    global $itemManager, $rateManager;//用global引入了函数外部的$itemManager, $rateManager变量
    $arrayAvatar = array(24,30,40,60,70,80,100,110,120,160);//评价者头像尺寸
    $arrayPics = array(24,30,40,60,70,80,100,110,120,160,400);//评价图片尺寸【2014.3.26日增加】
    $itemRates = array();//建立数组,用于存储评价选择器设置的所有宝贝的相关信息   
    $itemRatesObj = $rateManager->parse($value);//使用开放接口解析评价选择器$value设置的相关信息
    $itemRatesObjs = $itemRatesObj->keySet();//
    foreach($itemRatesObjs as $itemId){//遍历上步返回的$itemRatesObjs,将信息存入$itemId数组中
        $itemRate = array();//建立数组,用于存储评价选择器设置的单个宝贝的相关信息
        $itemRate['item']['id'] = $itemId;//商品ID,用于根据ID查询宝贝,获取商品的相关参数【2014.3.26日增加】
        $ratesObj = $itemRatesObj->get($itemId);//解析$itemId的相关信息
        foreach($ratesObj as $rate){//遍历上步返回的$ratesObj,将信息存入$rate数组中
            $qzz['auctionId'] = $rate->auctionId;
            $qzz[
'auctionUrl'] = $rate->auctionUrl;
            $qzz[
'raterId'] = $rate->raterId;
            
foreach($arrayAvatar as $imgAvatar){//遍历评价者头像尺寸数组,将值存入$imgAvatar
                $qzz['getRaterAvatar'.$imgAvatar] = $rate->getRaterAvatar($imgAvatar);//获取不同尺寸的图片
            }
            $qzz[
'raterNick'] = $rate->raterNick;
            $qzz[
'raterStarImg'] = $rate->raterStarImg;
            $qzz[
'raterUrl'] = $rate->raterUrl;
            $qzz[
'moreFeedbackUrl'] = $rate->moreFeedbackUrl;
            $qzz[
'feedback'] = $rate->feedback;
            
foreach($arrayPics as $ratePic){//遍历评价图片尺寸数组,将值存入$ratePic  【2014.3.26日修改】
                $qzz['getRatePics'.$ratePic] = $rate->getRatePics($ratePic);//获取不同尺寸的图片数组
                //注意:$rate->getRatePics();查询的是图片组,需要在dom中用foreach循环出来评价中的所有图片
            }
            $qzz[
'feedbackdate'] = $rate->feedbackdate;
            $itemRate[
'info'][]=$qzz;
        }
        $itemRates[]=$itemRate;
    }
    
return $itemRates;
}
2、在DOM中调用,参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
* 函数值说明:
* $value (宝贝评价选择器)

* 函数调用:
* $rates = getRates($value);//此处用的是common.php里的评价选择器共享函数

* 在DOM中调用,参数说明:
* ---------获取商品信息------------【2014.3.26日增加】
* $itemRate['item']['id'] (商品ID,用于根据ID查询宝贝,获取商品的相关参数)
* $item = $itemManager->queryById($itemRate['item']['id']);//根据ID查询宝贝,获取商品的相关参数
* $item->id (商品ID)
* $uriManager->detailURI($item) (商品URL)
* $item->title (商品标题)
* $item->price (商品原价)
* discountPrice($item) (商品折扣价,----注意:此处需要结合折扣价共享函数使用)
* $item->getPicUrl(120) (商品图片路径,120为图片尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $item->soldCount (商品销量)
* $item->collectedCount (商品收藏量)
* $item->ownerId (商品所属卖家ID)
* $item->commentCount (商品评论数,此属性只有商城店铺有,C店铺没有)
* ---------获取商品评价信息------------
* $rate['auctionId'] (商品ID,勾选评论时此id才能正常输出)
* $rate['auctionUrl'] (商品URL,勾选评论时此url才能正常输出)
* $rate['raterId'] (评价者数字id)
* $rate['getRaterAvatar60'] (评价者头像,60为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $rate['raterNick'] (评价者昵称)
* $rate['raterStarImg'] (评论者信用等级)
* $rate['raterUrl'] (评价者个人主页)
* $rate['moreFeedbackUrl'] (该宝贝的更多评价url)
* $rate['feedback'] (评价内容)
* $rate['getRatePics40'] (评价图片,40为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $rate['feedbackdate'] (评价时间)
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    $value = $_MODULE['qzzpl_3'];//评价选择器
    $itemRates = getRates($value);//此处用的是common.php里的评价选择器共享函数
    foreach ($itemRates as $key => $itemRate) {//遍历评价选择器$itemRates设置的参数($key=0时,为第一个宝贝的相关参数信息,$key=1时,为第二个,依次类推!)
    
        $item = $itemManager->queryById($itemRate[
'item']['id']);//根据ID查询宝贝,获取商品的相关参数
        echo '输出商品ID,方法1:'.$itemRate['item']['id'];
        
echo '输出商品ID,方法2:'.$item->id;
        
echo '输出商品标题:'.$item->title;
        
        
foreach($itemRate['info'as $rate){//评价选择器里单个宝贝的相关参数信息
            //这里开始写dom结构
            //调用方式,例如:调用商品ID,直接用PHP输出 $rate['auctionId'] 即可  
            echo $rate['feedback'].'<br>';
            
echo $rate['auctionId'].'<br>';
            
foreach($rate['getRatePics40'as $ratePic){//输出评价图片组
                echo $ratePic.'<br>';
            } 
        }
    }
?>
4、module.xml,配置方法:
1
2
3
4
5
6
7
<parameters>
    
<group title="基础设置">
        
<section title="商品评价设置" folded="false">
            
<param ptype="itemRate" name="qzzpl_3" label="宝贝评价选择器" formType="itemRateForm" description="请选择宝贝和评价"></param>
        
</section>
    
</group>
</parameters>
5、视频教程,实例:
此处是实例教程播放,预留区域……

getRates() end

D :::::::: 生成二维码(getErcode) ::::::::

生成二维码,函数详解:

1、common.php,源代码(function):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function getErcode($erId, $widthHeight = "90", $type = "1") {//2013.12.1修改
    
switch($type){
        
case 1:
            $code = 
'type=ci&item_id='.$erId.'&v=1';//集市商品
            break;
        
case 2:
            $code = 
'v=1&type=bi&item_id='.$erId;//天猫商品
            break;
        
case 3:
            $code = 
'type=cs&shop_id='.$erId.'&v=1';//集市店铺.
            break;
        
case 4:
            $code = 
'v=1&type=bs&shop_id='.$erId;//天猫店铺
            break;
        
case 5:
            $code = 
'type=we&we_id='.$erId.'&v=1';//微淘.
            break;
        
default:
            $code = 
'type=ci&item_id='.$erId.'&v=1';//集市商品
    }
    $imgsrc = 
'http://gqrcode.alicdn.com/img?'.$code.'&w='.$widthHeight.'&h='.$widthHeight;
    
return $imgsrc;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
/*
 * 函数值说明:
 * $erId($type是1或2时填商品id,$type是3或4时填店铺id,$type是5时填微淘id,)
 * $widthHeight (二维码图片宽高尺寸,推荐使用尺寸(默认是140*140):45x45、50x50、60x60、70x70、80x80、90x90、100x100、140x140)
 *                PS:其它尺寸后续将淘宝不再提供支持
 * $type (二维码数据:1为集市商品,2为天猫商品,3为集市店铺,4为天猫店铺,5为微淘)
 
 * 函数调用:
 * $erurl = getErcode($erId,$widthHeight,$type);//此处用的是common.php里的生成二维码共享函数
 */
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
<?php
    $erId = $_shop->id//若要输出商品二维码,此处请填写商品ID,$type处把3换成1(详情,见函数值说明中$type具体含义)
    echo '<img src="'.getErcode($erId,140,3).'" alt="请用手机扫描二维码" />';//此处用的是common.php里的二维码共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getErcode() end

E :::::::: 元素透明度(getOpacity) ::::::::

元素透明度,函数详解:

1、common.php,源代码(function):

1
2
3
4
function getOpacity($opacity){
    $alpha = 
'filter:progid:DXImageTransform.Microsoft.Alpha(opacity='.$opacity.');opacity:'.($opacity/100).';';
    
return $alpha;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
/*
* 函数值说明:
* $opacity(不透明度)

* 函数调用:
* $alpha = getOpacity($opacity);//此处用的是common.php里的元素透明度共享函数

* 其它说明:
* 此方法返回内联样式,输出到style=""中,透明度从1到100
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
<?php
    echo '<div style="'.getOpacity(08).'"></div>';//方法返回内联样式,输出到style=""中,透明度从1到100。
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getOpacity() end

F :::::::: png24在ie6下透明(getPng_24) ::::::::

png24在ie6下透明,函数详解:

1、common.php,源代码(function):

1
2
3
4
function getPng_24($png){
    $pngdata = 
" data-widget-type=\"Compatible\" data-widget-config=\"{'png':true,'".$png."':true}\" "
    
return $pngdata;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
* 函数值说明:
* $png(透明属性)

* 注:
* $png="png_bg"是背景透明
* $png="png_tag"是img标签透明

* 函数调用:
* $pngbg = getPng_24(png_bg);//background中ie6下png24透明,此处用的是common.php里的共享函数
* $pngtag = getPng_24(png_tag);//img中ie6下png24透明,此处用的是common.php里的共享函数

* 其它说明:
* 此方法返回一段代码,输出到html标签中。记得在对应的html标签加class="J_TWidget"属性。
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
5
<?php
    echo '<div class="J_TWidget" style="background-image:(图片路径);" '.getPng_24(png_bg).'></div>';//background中ie6下png24透明
    echo '<img class="J_TWidget" src="图片路径" '.getPng_24(png_tag).' />';//img中ie6下png24透明
    //注意:记得在对应的html标签加class="J_TWidget"属性
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getPng_24() end

H :::::::: 喜欢SNS组件(getLike) ::::::::

喜欢SNS组件,函数详解:

1、common.php,源代码(function):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getLike($likeText, $likeKey, $likeSkintype = "2", $likeType = "item", $likeClass = "qzzlike"){
    
if($likeType == 'item'){
        $likeType = 
"2";//商品
    }elseif($likeType == 'shop'){
        $likeType = 
"4";//店铺
    }elseif($likeType == 'webpage'){
        $likeType = 
"3";//网页
    }
    $xh = 
'
        <div class="sns-widget '.$likeClass.'" data-like="{
            \'skinType\':'.$likeSkintype.',
            \'type\':'
.$likeType.',
            \'key\':\''
.$likeKey.'\',
            \'text\':\''
.$likeText.'\',
            \'client_id\':68}"></div>   
    ';  
    return $xh;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* 函数值说明:
* $likeText (默认显示的文字)
* $likeKey ($likeType为item时填itemid,type为shop时填shopid,type为webpage时填当前页面的链接地址)
* $likeSkintype (按钮样式类型:1为橙色版、2为蓝色版)
* $likeType (喜欢的类型:item为商品喜欢、shop为店铺喜欢、webpage为网页喜欢)
* $likeClass (喜欢的class值,不写时默认输出 qzzlike)

* 函数调用:
* $snslike = getLike($likeText, $likeKey, $likeSkintype, $likeType, $likeClass);//此处用的是common.php里的喜欢SNS共享函数

* 其它说明:暂无!
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
<?php
    echo getLike("商品喜欢", $item->id, 2"item""qzzlike");//此处用的是common.php里的喜欢SNS共享函数
    echo getLike("店铺喜欢", $_shop->id, 2"shop""qzzlike");//此处用的是common.php里的喜欢SNS共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getLike() end

I :::::::: 分享SNS组件(getShare) ::::::::

分享SNS组件,函数详解:

1、common.php,源代码(function):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getShare($shareText, $shareKey, $shareSkintype = "1", $shareType = "item", $shareClass = "qzzshare"){
    $fx = 
'
        <div class="sns-widget '.$shareClass.'" data-sharebtn="{
            \'skinType\':'.$shareSkintype.',
            \'type\':\''
.$shareType.'\',
            \'key\':\''
.$shareKey.'\',
            \'comment\':\'这个很赞哦...\',
            \'title\':\'\',
            \'pic\':\'\',
            \'client_id\':68,
            \'isShowFriend\':false}" title="点此分享给好友">'
.$shareText.'</div>   
    ';
    return $fx;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* 函数值说明:
* $shareText (默认显示的文字)
* $shareKey ($shareType为item时填itemid,type为shop时填shopid,type为webpage时填当前页面的链接地址)
* $shareSkintype (按钮样式:1为默认蓝色样式、2为纯文字、3为自定义样式)
* $shareType (分享的类型:item为商品分享、shop为店铺分享、webpage为网页分享)
* $shareClass (分享的class值,不写时默认输出 qzzshare)

* 函数调用:
* $snsshare = getShare($shareText, $shareKey, $shareSkintype, $shareType, $shareClass);//此处用的是common.php里的分享SNS共享函数

* 其它说明:暂无!
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
<?php
    echo getShare("商品分享", $item->id, 3"item""qzzshare");//此处用的是common.php里的分享SNS共享函数
    echo getShare("店铺分享", $_shop->id, 3"shop""qzzshare");//此处用的是common.php里的分享SNS共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getShare() end

J ::::::: 倒计时Widget组件(getCountdown) :::::::

倒计时Widget组件,函数详解:

1、common.php,源代码(function):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function getCountdown($endTime, $runText, $endText, $runClass = "qzzrun", $endClass = "qzzend", $djsClass = "qzzdjs"){
    $djs = 
'
        <div class="J_TWidget '.$djsClass.'" data-widget-type="Countdown"  data-widget-config="{
            \'endTime\': \''.$endTime.'\',
            \'interval\': 1000, 
            \'timeRunCls\': \'.ks-countdown-run\', 
            \'timeUnitCls\':{
                \'d\':\'.ks-d\',
                \'h\':\'.ks-h\',
                \'m\':\'.ks-m\',
                \'s\':\'.ks-s\',
                \'i\':\'.ks-i\'
            },
            \'minDigit\': 2,
            \'timeEndCls\':\'.ks-countdown-end\'
        }">
            <div class="ks-countdown-run '.$runClass.'">
                <i></i>
'.$runText.'
                <span 
class="ks-d time">0</span> <span class="unit">天</span>
                <span 
class="ks-h time">0</span> <span class="unit">时</span>
                <span 
class="ks-m time">0</span> <span class="unit">分</span>
                <span 
class="ks-s time">0</span> <span class="unit">秒</span>    
            </div>
            <div 
class="ks-countdown-end '.$endClass.'">
                <span 
class="endcontent">'.$endText.'</span>
            </div>
        </div>
    
';
    return $djs;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
* 函数值说明:
* $endTime (倒计时结束时间:格式 2014-12-12 12:12:12)
* $runText (倒计时结束前,显示的文字)
* $endText (倒计时结束后,显示的文字)
* $runClass (倒计时结束前的class值,不写时默认输出 qzzrun)
* $endClass (倒计时结束后的class值,不写时默认输出 qzzend)
* $djsClass (倒计时总区域的class值,不写时默认输出 qzzdjs)

* 函数调用:
* $djs = getCountdown($endTime, $runText, $endText, $runClass, $endClass, $djsClass);////此处用的是common.php里的倒计时Widget组件共享函数

* 其它说明:暂无!
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
<?php
    echo getCountdown("2014-12-12 12:12:12""剩余:""该活动已结束!""qzzrun""qzzend""qzzdjs");
    
//此处用的是common.php里的倒计时Widget组件共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getCountdown() end

K :::::::: 收藏店铺or宝贝(getFav) ::::::::

收藏店铺or宝贝,函数详解:

1、common.php,源代码(function):

1
2
3
4
5
6
7
8
9
10
11
12
function getFav($favText, $favItemid, $favData, $favClass = "qzzfav"){
    
global $uriManager;//用global引入了函数外部的$uriManager变量
    if($favData == 'shop'){
        $sc_url = $uriManager->favoriteLink();
//店铺收藏
        $sc_title = "点此收藏本店铺";
    }
elseif($favData == 'item'){
        $sc_url = 
"http://favorite.taobao.com/popup/add_collection.htm?id=".$favItemid."&itemtype=1&scjjc=1";//商品收藏
        $sc_title = "点此收藏这个宝贝";
    }
    $sc = 
'<a class="J_TokenSign '.$favClass.'" title="'.$sc_title.'" href="'.$sc_url.'" target="_blank">'.$favText.'</a>';
    
return $sc;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
/*
* 函数值说明:
* $favText (默认显示的文字)
* $favItemid ($favData为item时填itemid,$favData为shop时留空)
* $favData (收藏的类型:item为商品收藏、shop为店铺收藏)
* $favClass (收藏的class值,不写时默认输出 qzzfav)

* 函数调用:
* $sc = getFav($favText, $favItemid, $favData, $favClass);//此处用的是common.php里的收藏店铺or宝贝共享函数

* 其它说明:暂无!
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
4
<?php
    echo getFav("收藏店铺""""shop""qzzfav");//此处用的是common.php里的店铺收藏共享函数
    echo getFav("收藏宝贝", $item->id, "item""qzzfav");//此处用的是common.php里的宝贝收藏共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getFav() end

L :::::::: 商品购物车(getCart) ::::::::

商品购物车,函数详解:

1、common.php,源代码(function):

1
2
3
4
function getCart($cartText, $cartUrl, $cartClass = "qzzcart"){
    $gwc = 
'<a class="J_CartPluginTrigger '.$cartClass.'" title="加入购物车" href="'.$cartUrl.'">'.$cartText.'</a>';
    
return $gwc;
}
2、相关参数说明:
1
2
3
4
5
6
7
8
9
10
11
/*
* 函数值说明:
* $cartText (默认显示的文字)
* $cartUrl (商品url)
* $cartClass (商品购物车的class值,不写时默认输出 qzzcart)

* 函数调用:
* $gwc = getCart($cartText, $cartUrl, $cartClass = "qzzcart");//此处用的是common.php里的商品购物车共享函数

* 其它说明:暂无!
*/
 
3、在模块PHP文件中使用方法,示例:
1
2
3
<?php
    echo getCart("加入购物车", $uriManager->detailURI($item), "qzzcart");//此处用的是common.php里的商品购物车共享函数
?>
4、视频教程,实例:
此处是实例教程播放,预留区域……

getCart() end

G :::::::: common.php文件,更新日志 ::::::::
公用common.php文件 (V2.1.8) 2016-8-26 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、优化,获取店铺商品信息(getItems) ;
   解决问题:
            a、优化【按类目查询宝贝($categoryId)】的条件,恢复之前的小分类判断(勾选小分类时,不加载大分类里的宝贝)
            b、优化兼容处理的条件【(count($items)<$num&&$itemData!=2)改为$items == null】,改为$items无宝贝时执行兼容


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.7) 2016-7-22 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、优化,获取店铺商品信息(getItems) ;
   解决问题:
            a、优化【按类目查询宝贝($categoryId)】的条件
            b、新增接口$item['itemCategoryId'] (宝贝后台类目),方便大家做“查看更多”的链接

 2、优化,获取店铺类目信息(getCategorys) ;
   解决问题:
            a、新增“小分类非空”时的判断。防止仅勾选大分类时(未勾选小分类),输出数组内空值占键($key)


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.6) 2016-7-17 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改,分享SNS组件(getShare) ;
 2、修改,喜欢SNS组件(getLike) ;
   解决问题:
            点击分享按钮时,右侧分组无法显示,导致的无法分享
            (false属性和数字去掉引号)


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.5) 2015-5-27 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,自动或关键词查询宝贝时突破20个宝贝的限制;

      自动,$itemData==1
      循环输出10遍按“空关键词”查询宝贝(宝贝之和>20个)
      手动,$itemData==2
      勾选几个宝贝显示几个(无排序时,宝贝之和>20个)
      类目,$itemData==3
      勾选多少类目,显示多少类目中的20个宝贝(宝贝之和>20个,注意:淘宝线上,一个宝贝可以存在N个类目中)
      关键词,$itemData==4
      循环输出10遍按“关键词”查询宝贝(宝贝之和>20个)



      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.4) 2015-4-28 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、新增【图片尺寸getSizes()】;
 2、新增【自定义尺寸处理函数getImg()】;
   解决问题:
            当“自定义图片尺寸”输入的数值不在“淘宝支持的图片尺寸”范围内时,无法加载图片。
            (用getImg()函数处理后,比如:输入的308,自动返回的是getSizes()中偏大最接近的尺寸310)


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.3) 2014-11-25 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、升级【折扣价处理函数discountPrice($item)】,用number_format()格式化折扣价,取三位小数后,用substr()截取两位小数
   解决问题:
            折扣价最后一位小数加载不准确(原因:number_format()格式化后的最后一位小数,是四舍五入的结果)

            例如:
            宝贝折扣价 98.22548719774632...(我们需要获取 98.22 )
            用number_format(),取两位小数,得到的结果是 98.23,而不是 98.22



      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.2) 2014-8-15 更新

[公用PHP文件-功能完善/bug修改]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,评价选择器【$qzz['rateList']接口】;{---- 删除 $rateManager->queryAuctionRates($item->id) 接口 ----}
   解决问题:
            a、多个模块同时使用getItems时,自动、类目、关键词时,评论加载无效的问题(评论接口渲染次数超标);
                说明:淘宝接口限制,queryAuctionRates($item->id)接口,1次页面渲染最多30次(详情见淘宝官方wiki)


      注意:升级后,原来的调用方法不变。。。(评价选择器 接口使用,详情见上面的getItems函数中php使用示例

公用common.php文件 (V2.1.1) 2014-6-17 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,手动时【取消$ids的优先权】;
   解决问题:
            a、取消“手动”加载商品时“$ids的优先权”;


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.1.0) 2014-4-15 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,增加“商品评价列表信息”参数调用方法;
   解决问题:
            a、类目加载宝贝时,勾选多少分类,显示多少分类里的商品(商品总和,突破20个限制);
            b、手动加载宝贝时(宝贝选择器),当xml里选择按勾选"无排序(选择宝贝的先后顺序排序)"时,商品加载数量,突破20个限制。
            c、增加“商品评价列表信息”参数调用方法 $item['rateList'] (商品评价列表信息);

* ---------获取商品评价信息------------【2014.4.15日增加】
* $item['rateList'] (商品评价列表信息)
* foreach($item['rateList'] as $rate){
* $rate->auctionId (商品ID,勾选评论时此id才能正常输出)
* $rate->auctionUrl (商品URL,勾选评论时此url才能正常输出) ------【评价选择器 独有的 接口】
* $rate->raterId (评价者数字id)
* $rate->getRaterAvatar60 (评价者头像,60为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $rate->raterNick (评价者昵称)
* $rate->raterStarImg (评论者信用等级) ------【评价选择器 独有的 接口】
* $rate->raterUrl (评价者个人主页) ------【评价选择器 独有的 接口】
* $rate->moreFeedbackUrl (该宝贝的更多评价url) ------【评价选择器 独有的 接口】
* $rate->feedback (评价内容)
* $rate->getRatePics40 (评价图片,40为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $rate->feedbackdate (评价时间)
* }


调用格式:
$items = getItems($ids,$categoryId,$keyword,$sortType,$num,$itemData);//宝贝选择器 调用格式

$items = getItems($ids,$categoryId,$keyword,$sortType,$num,$itemData,$idsType= "itemRateForm");//评价选择器 调用格式

特别提示:评价选择器或宝贝选择器,不能同时存在,只能二选一加载!



      注意:升级后,《不使用评价选择器时》原来的调用方法不变。。。

公用common.php文件 (V2.0.9) 2014-3-26 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取评价选择器信息(getRates)】,增加“商品ID”参数调用方法,增加全部评价图片尺寸;
   解决问题:
            a、增加“商品ID”参数调用方法 $itemRate['item']['id'] (商品ID,用于根据ID查询宝贝,获取商品的相关参数);

* ---------获取商品信息------------【2014.3.26日增加】
* $itemRate['item']['id'] (商品ID,用于根据ID查询宝贝,获取商品的相关参数)
* $item = $itemManager->queryById($itemRate['item']['id']);//根据ID查询宝贝,获取商品的相关参数
* $item->id (商品ID)
* $uriManager->detailURI($item) (商品URL)
* $item->title (商品标题)
* $item->price (商品价格)
* $item->getPicUrl(120) (商品图片路径,120为图片尺寸,需要什么尺寸调用的时候直接填写数值即可)
* $item->soldCount (商品销量)
* $item->collectedCount (商品收藏量)
* $item->ownerId (商品所属卖家ID)
* $item->commentCount (商品评论数,此属性只有商城店铺有,C店铺没有)

            b、增加全部评价图片尺寸,$arrayPics = array(24,30,40,60,70,80,100,110,120,160,400);//评价图片尺寸【2014.3.26日增加】
            ($rate['getRatePics40'] 获取评价中的图片,40为图片宽高尺寸,需要什么尺寸调用的时候直接填写数值即可)。

      注意:商品ID相关参数说明【见使用实例详解】

 2、修改【获取店铺商品信息(getItems)】, 增加完善淘宝官方宝贝图片所有支持的尺寸;
   解决问题:
            a、目前商品图片支持的全部尺寸:             16,20,24,30,32,36,40,48,50,60,64,70,72,80,88,90,100,110,120,125,128,130,145,160,170,180,190,200,
210,220,230,234,240,250,270,290,300,310,315,320,336,350,360,400,430,460,468,480,490,540,560,570,580,600,
640,670,720,728,760,960,970;


      注意:升级后,原来的调用方法不变。。。

公用common.php文件 (V2.0.8) 2014-1-2 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,增加“商品sku列表信息”、“商品sku属性图路径列表”参数调用方法;
   解决问题:
            a、增加“商品sku列表信息”参数调用方法 * $item['skuList'] (商品sku列表信息);
            b、增加“商品sku属性图路径列表”参数调用方法 * $item['skuPics360'] (商品sku属性图片路径列表)
            (360为图片宽高尺寸,获取所有的sku属性图需要在dom中用foreach循环输出$item['skuPics360'])。

      注意:升级后,原来的调用方法不变。。。sku相关参数说明【见使用实例详解】

公用common.php文件 (V2.0.7) 2013-12-1 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【生成二维码函数(getErcode)】,改用淘宝自己的二维码生成api(新的方案有cdn缓存);
   解决问题:
            a、淘宝曰:由于之前的接口这样实时生成服务器的压力太大了,新的方案有cdn缓存,用户访问也更快。。
            b、淘宝官方论坛公告声明 http://bbs.zx.taobao.com/read.php?tid=25796
公用common.php文件 (V2.0.6) 2013-11-23 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】,增加折扣率参数调用方法;
   解决问题:
            a、增加折扣率参数调用方法 * $item['zhekou'] (折扣率)。
公用common.php文件 (V2.0.5) 2013-11-21 更新

[公用PHP文件-功能完善]

【更新日志:】
 修改【生成二维码函数(getErcode)】,改用淘宝自己的二维码生成api;
   解决问题:
            首页商品二维码无效!(原因未知,不知道是淘宝屏蔽了谷歌链接,还是谷歌屏蔽了淘宝的链接)

             小道消息:双11那天,淘宝页面对谷歌二维码服务器的请求过多,弄伤了谷歌。导致谷歌,屏蔽了item.taobao.com这个二级域名。——以上为小道消息,可以自己意淫一下!反正,记住以后用淘宝自己的二维码API就行了。。。

注意:升级后,原来的调用方法不变。。。相关参数说明:

* $chl(链接地址)
* $widthHeight (二维码图片宽高尺寸)
* $EC_level (可选纠错级别)
公用common.php文件 (V2.0.4) 2013-11-09 更新

[公用PHP文件-功能完善]

【更新日志:】
 完善折扣价discountPrice($item)中的number_format函数
语法:number_format(number,decimals,decimalpoint,separator)
   解决问题:
            当商品价格过千时,半角逗号(,)引起的计算折扣率错误
                         注意:number_format() 函数通过千位分组来格式化数字。
公用common.php文件 (V2.0.3) 2013-11-01 更新

[公用PHP文件-新增功能]

【新增功能如下:】
 1、喜欢SNS组件(getLike);
 2、分享SNS组件(getShare);
 3、倒计时Widget组件(getCountdown);
 4、收藏店铺or宝贝(getFav);
 5、商品购物车(getCart);
公用common.php文件 (V2.0.2) 2013-7-22 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】;
   解决问题:
            a、优化、精简代码,当新开的店铺没有商品时,自动加载风格预览里的数据。
            b、修改商品加载方式,宝贝选择器的权重,只要手动选择宝贝,即调用宝贝选择器里的宝贝。
            (恢复之前功能,类目选择器、关键字有值时,必须配合商品加载方式方可生效!)
公用common.php文件 (V2.0.1) 2013-6-18 更新

[公用PHP文件-功能完善]

【更新日志:】
 1、修改【获取店铺商品信息(getItems)】;
   解决问题:商品加载方式,改为,选择了任意其他的(即宝贝选择器、类目选择器、关键字有值时),效果图都无效。
   注意,同时宝贝选择器的优先权最高,只要手动选择宝贝,不用选择商品加载方式,即可调用宝贝选择器里的宝贝

公用common.php文件 (V2.0.0) 2013-5-31 发布

V2.0.0 开源版 正式发布......

【功能介绍如下:】
 1、获取店铺商品信息(getItems);
 2、获取店铺类目信息(getCategorys);
 3、获取评价选择器信息(getRates);
 4、生成二维码(getErcode);
 5、元素透明度(getOpacity);
 6、png24在ie6下透明(getPng_24);
About

瞧着走 - common.php 作者 (纠错,请联系站长QQ 点击这里给我发消息

QQ交流群:163395301(入群验证:tbcommon ,必填)

感谢:所有付费qzz源代码的朋友,及曾经帮助过【瞧着走】的朋友们!真心的谢谢你们~!!!