要想实现按价格排序需要前台有链接,后台然后实现相应的功能即可。
前台代码:includetemplateteam_multi.html
这个模板文件,因为我们是开启了首页显示多项团购显示,所以用点的这个team_multi.html这个模板
复制代码代码如下:
<div>按价格:</div>
<div>
<ul>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}">全部</a>
</li>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}&p=p1">10元以下</a>
</li>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}&p=p2">10-50元</a>
</li>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}&p=p3">50-100元</a>
</li>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}&p=p4">100-200元</a>
</li>
<li
<>
class="current"
<>
><a href="?gid={$_GET['gid']}&areaid={$_GET['areaid']}&p=p5">200元以上</a>
</li>
</ul>
</div>
</div>
后台代码:includefunctioncommon.php
index_get_team 函数 修改后的代码
复制代码代码如下:
function index_get_team($city_id,$group_id=0,$p="") {
global $INI;
$multi = option_yes('indexmulti');
$city_id = abs(intval($city_id));
/* 是否首页多团,不是则返回当前城市 */
if (!$multi) return current_team($city_id);
$now = time();
$size = abs(intval($INI['system']['indexteam']));
/* 侧栏团购数小于1,则返回当前城市数据 */
if ($size<=1) return current_team($city_id);
switch ($p)
{
case "p1":
$pp1="team_price < '10'";
$pp2="";
break;
case "p2":
$pp1="team_price > '10'";
$pp2="team_price < '50'";
break;
case "p3":
$pp1="team_price > '50'";
$pp2="team_price < '100'";
break;
case "p4":
$pp1="team_price > '100'";
$pp2="team_price < '200'";
break;
case "p5":
$pp1="team_price > '200'";
$pp2="";
break;
default:
$pp1="";
$pp2="";
}
$oc = array(
'team_type' => 'normal',
"begin_time < '{$now}'",
"end_time > '{$now}'",
);
if(!empty($pp1)){
array_push($oc,$pp1);
}
if(!empty($pp2)){
array_push($oc,$pp2);
}
if($group_id) $oc['group_id']=$group_id;
/* 数据库匹配多个城市订单,前者按照多城市搜索,后者兼容旧字段city_id搜索 */
$oc[] = "(city_ids like '%@{$city_id}@%' or city_ids like '%@0@%') or (city_ids = '' and city_id in(0,{$city_id}))";
$teams = DB::LimitQuery('team', array(
'condition' => $oc,
'order' => 'ORDER BY `sort_order` DESC, `id` DESC',
'size' => $size,
));
if(count($teams) == 1) return array_pop($teams);
return $teams;
}
需要在index.php页面中增加一个
$selector_p=$p=addslashes($_GET['p']);方面当前价格的高亮。
结合以上几点,即可实现最土团购ZuituGo_CV2.0_20111231 商业版的价格排序功能。