//配置路由规则
'URL_MODEL' => 2, // 2 (REWRITE 模式);
'URL_ROUTER_ON' => true,
'URL_ROUTE_RULES' => array(
'/^f_(\d+)_(\d+)_((\d+)-(\d+))$/' => 'Index/Index/index?cid=:1&lid=:2&price=:3'
)
Class IndexAction extends CommonAction{
Public function index(){
$cid = isset($_GET['cid'])?(int)$_GET['cid'] : 0;
$lid = isset($_GET['lid'])?(int)$_GET['lid'] : 0;
$price = isset($_GET['price'])?$_GET['price'] : '0-0';
//dump($_GET);die;
$this->getLocality($cid,$lid,$price);
$this->getCate($cid,$lid,$price);
$this->getPrice($cid,$lid,$price);
$this->display();
}
//读取分类
Private function getCate($cid,$lid,$price){
$allCate = $this->getCateSon();
$pid = $this->getCatePid($cid);
$arr = array();
if($cid == 0){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">全部</a>';
}else{
$arr[] = '<a href="'.U('/f_0'.'_'.$lid.'_'.$price).'">全部</a>';
}
foreach($allCate as $v){
if($pid == $v['cid'] || $v['cid'] == $cid){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">'.$v['cname'].'</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$v["cid"].'_'.$lid.'_'.$price).'">'.$v['cname'].'</a>';
}
}//dump($arr);die;
$this->assign('cate',$arr);
if($pid == 0 && $cid != 0){
$sonCate = $this->getCateSon($cid);
}else{
$sonCate = $this->getCateSon($pid);
}
if(empty($sonCate)) return;
$arr = array();
if($pid == 0){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">全部</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$pid.'_'.$lid.'_'.$price).'">全部</a>';
}
foreach ($sonCate as $v){
if($v['cid'] == $cid){
$arr[] = '<a class="active" href="'.U('/f_'.$v["cid"].'_'.$lid.'_'.$price).'">'.$v['cname'].'</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$v["cid"].'_'.$lid.'_'.$price).'">'.$v['cname'].'</a>';
}
}//dump($sonCate);
$this->assign('sonCate',$arr);
}
//读取地区
Private function getLocality($cid,$lid,$price){
$allLocality = $this->getLocalitySon();
$pid = $this->getLocalityPid($lid);
$arr = array();
if($lid == 0){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">全部</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_0'.'_'.$price).'">全部</a>';
}
foreach($allLocality as $v){
if($pid == $v['lid'] || $v['lid'] == $lid){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">'.$v['lname'].'</a>';
//$arr[] = '<a class="active" href="'.U(GROUP_NAME."/Index/index",array('cid'=>$v['cid'])).'">'.$v['cname'].'</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_'.$v["lid"].'_'.$price).'">'.$v['lname'].'</a>';
}
}//dump($arr);die;
$this->assign('locality',$arr);
if($pid == 0 && $lid != 0){
$sonLocality = $this->getLocalitySon($lid);
}else{
$sonLocality = $this->getLocalitySon($pid);
}
if(empty($sonLocality)) return;
$arr = array();
if($pid == 0){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">全部</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_'.$pid.'_'.$price).'">全部</a>';
}
foreach ($sonLocality as $v){
if($v['lid'] == $lid){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$v["lid"].'_'.$price).'">'.$v['lname'].'</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_'.$v["lid"].'_'.$price).'">'.$v['lname'].'</a>';
}
}
$this->assign('sonLocality',$arr);
}
//根据传入的父级ID查找其子分类
Private function getCateSon($pid=0){
$where = array('pid'=>$pid,'display'=>1);
return M('category')->where($where)->field('cid,cname')->order('sort asc')->select();
}
//根据cid获取其父级Id
Private function getCatePid($cid){
$where = array('cid'=>$cid,'display'=>1);
return M('category')->where($where)->getField('pid');
}
//根据传入的父级ID查找其子地区
Private function getLocalitySon($pid=0){
$where = array('pid'=>$pid,'display'=>1);
return M('locality')->where($where)->field('lid,lname')->order('sort asc')->select();
}
//根据cid获取其父级Id
Private function getLocalityPid($lid){
$where = array('lid'=>$lid,'display'=>1);
return M('locality')->where($where)->getField('pid');
}
//设置价格筛选区间
Private function getPrice($cid,$lid,$price){
$key = '';
if($cid == 0){
$key = 'all';
}else{
$pid = $this->getCatePid($cid);
$key = $pid?$pid:$cid;
}
$prices = C('price');
$priceKey = $prices[$key];
if($price == '0-0'){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$price).'">全部</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_'.$lid.'_0-0').'">全部</a>';
}
foreach($priceKey as $v){
if($price == $v[1]){
$arr[] = '<a class="active" href="'.U('/f_'.$cid.'_'.$lid.'_'.$v[1]).'">'.$v[0].'</a>';
}else{
$arr[] = '<a href="'.U('/f_'.$cid.'_'.$lid.'_'.$v[1]).'">'.$v[0].'</a>';
}
}//dump($arr);
$this->assign('price',$arr);
}
}
文章来源:http://www.thinkphp.cn/topic/6406.html