写完发现有点复杂,还是不要用了!
后台架构
首先,我们
他只有2级,我又懒得搞了! 于是就写了个用副栏目2级刷选的功能!
而且只能用动态的做!
首先我们页面调用的时候
1、页面调用
<dl class="cp-type"> <dt>风格分类</dt> <dd> <ul class="cp-menu"> <li class="cp-all sm-{dede:field.id/}"> <a href="/plus/list.php?tid=13">全部</a> </li> {dede:channel row='8' typeid='17'} <li class="s-[field:id/]"><a href='[field:xhlink/]'>[field:typename/]</a> </li> {/dede:channel} </ul> </dd> </dl> <dl class="cp-type"> <dt>空间</dt> <dd> <ul class="cp-menu"> {dede:channel row='8' typeid='18'} <li class="s-[field:id/]"><a href='[field:xhlinks/]'>[field:typename/]</a> </li> {/dede:channel} </ul> </dd> </dl>
直接连接动态,然后我新增了一个标签!
忽然感觉有点复杂,不如用ajax了....
2、修改include/taglib/channel.lib.php标签
32行增加获取typeid2和tid
function lib_channel(&$ctag,&$refObj) { global $dsql,$typeid2,$tid;
149行左右
else { $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); $row['xhlink'] = "/plus/list.php?tid={$tid}&typeid2=".$row['id'].""; $row['xhlinks'] = "/plus/list.php?tid=".$row['id']."&typeid2={$typeid2}"; $n="s-27";
增加2个标签!
3、修改list.php文件
$typeid2=$typeid2; $arrs=explode(",",$typeid2); $typeid2=$arrs[0];//只能设置一个副栏目,多个取一个! if($typeid2=='47'){//因为新品栏目是要默认设置的!所以取消新品栏目的 $typeid2=$arrs[1]; }else{ $typeid2=$arrs[0]; } $typeid2= (isset($typeid2) && is_numeric($typeid2) ? $typeid2 : 0); $tid = (isset($tid) && is_numeric($tid) ? $tid : 0); if($tid =='0' || $tid =='13' && $typeid2 !='' && $typeid2 !='0'){//如果只传入了typeid2 则tid等于typeid2 typeid2清空 $tid=$typeid2; $typeid2=''; echo $typeid2; } $channelid = (isset($channelid) && is_numeric($channelid) ? $channelid : 0); if($tid==0 && $channelid==0) die(" Request Error1! "); if(isset($TotalResult)) $TotalResult = intval(preg_replace("/[^\d]/", '', $TotalResult)); if($typeid2!='0'){ $two=''; } //如果指定了内容模型ID但没有指定栏目ID,那么自动获得为这个内容模型的第一个顶级栏目作为频道默认栏目 if(!empty($channelid) && empty($tid)) { $tinfos = $dsql->GetOne("SELECT tp.id,ch.issystem FROM `dede_arctype` tp LEFT JOIN `dede_channeltype` ch ON ch.id=tp.channeltype WHERE tp.channeltype='$channelid' And tp.reid=0 order by sortrank asc"); if(!is_array($tinfos)) die(" No catalogs in the channel! "); $tid = $tinfos['id']; } else { $tinfos = $dsql->GetOne("SELECT ch.issystem FROM `dede_arctype` tp LEFT JOIN `dede_channeltype` ch ON ch.id=tp.channeltype WHERE tp.id='$tid' "); } if($tinfos['issystem']==-1) { $nativeplace = ( (empty($nativeplace) || !is_numeric($nativeplace)) ? 0 : $nativeplace ); $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); if(!empty($keyword)) $keyword = FilterSearch($keyword); $cArr = array(); if(!empty($nativeplace)) $cArr['nativeplace'] = $nativeplace; if(!empty($infotype)) $cArr['infotype'] = $infotype; if(!empty($keyword)) $cArr['keyword'] = $keyword; include(DEDEINC."/arc.sglistview.class.php"); $lv = new SgListView($tid,$cArr); } else if($typeid2 !='0' && $typeid2 !=''){ include(DEDEINC."/arc.listview_shop.class.php"); $lv = new ListView($tid); //对设置了会员级别的栏目进行处理 if(isset($lv->Fields['corank']) && $lv->Fields['corank'] > 0) { require_once(DEDEINC.'/memberlogin.class.php'); $cfg_ml = new MemberLogin(); if( $cfg_ml->M_Rank < $lv->Fields['corank'] ) { $dsql->Execute('me' , "SELECT * FROM `dede_arcrank` "); while($row = $dsql->GetObject('me')) { $memberTypes[$row->rank] = $row->membername; } $memberTypes[0] = "游客或没权限会员"; $msgtitle = "你没有权限浏览栏目:{$lv->Fields['typename']} !"; $moremsg = "这个栏目需要 <font color='red'>".$memberTypes[$lv->Fields['corank']]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !"; include_once(DEDETEMPLATE.'/plus/view_msg_catalog.htm'); exit(); } } }else{ include(DEDEINC."/arc.listview.class.php"); $lv = new ListView($tid); //对设置了会员级别的栏目进行处理 if(isset($lv->Fields['corank']) && $lv->Fields['corank'] > 0) { require_once(DEDEINC.'/memberlogin.class.php'); $cfg_ml = new MemberLogin(); if( $cfg_ml->M_Rank < $lv->Fields['corank'] ) { $dsql->Execute('me' , "SELECT * FROM `dede_arcrank` "); while($row = $dsql->GetObject('me')) { $memberTypes[$row->rank] = $row->membername; } $memberTypes[0] = "游客或没权限会员"; $msgtitle = "你没有权限浏览栏目:{$lv->Fields['typename']} !"; $moremsg = "这个栏目需要 <font color='red'>".$memberTypes[$lv->Fields['corank']]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !"; include_once(DEDETEMPLATE.'/plus/view_msg_catalog.htm'); exit(); } } } if($lv->IsError) ParamError(); $lv->Display();
4、增加
arc.listview_shop.class.php文件
链接: https://pan.baidu.com/s/1oxUrp-qRbzxdJaRi1OfdfQ
提取码: 8cwg
在百度网盘下吧!