其实也比较简单!
先在模型下增加联动模型字段,
没有联动模型选项,可以在本站教程内找到!
然后需要改动文件
include/arc.sglistview.class.php
include/taglib/infolink.lib.php
list.php
首先我们调用方法为
{dede:infolinks} <dl> <dt>视频分类:</dt> <dd> <span>[field:linkallshiping/]</span> [field:shiping /] </dd> </dl> <dl> <dt>课程分类:</dt> <dd> <span>[field:linkallkecheng/]</span> [field:kecheng /] </dd> </dl> {/dede:infolinks}
我的只调用了一级,没有二级
1、打开/plus/list.php
这个文件是传递参数的,我们需要修改把联动模型选中后的参数传递过去
找到
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($infotype)) $cArr['infotype'] = $infotype;
改成自己的联动模型名字即可
2、打开include/arc.sglistview.class.php
首先我们要明白这个文件是生成列表的,那么我们只需要在他的sql查询语句内加入我们自定义的联动模型即可
很简单
找到
$naddQuery = ''; //地区与信息类型条件 if(count($this->searchArr) > 0) {
就是把
if(!empty($this->searchArr['nativeplace'])) { if($this->searchArr['nativeplace'] % 500 ==0 ) { $naddQuery .= " AND arc.nativeplace >= '{$this->searchArr['nativeplace']}' AND arc.nativeplace < '".($this->searchArr['nativeplace']+54)."'"; } else { $naddQuery .= "AND arc.nativeplace = '{$this->searchArr['nativeplace']}'"; } }
复制一遍,把名字改成自己需要的模型组名即可
3、打开include/taglib/infolink.lib.php
这个是生成选项框的连接和名字的,默认其实是假如选了免费视频,视频分类下就变成免费视频下分类了,但是我的不需要,所以取消掉了!
首先引入php文件 联动模型都缓存在/data/enums/文件夹内,需要引入
增加全部按钮,复制上面的改下就行了,
$fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>全部</a>"; $fields['linkallshiping'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&kecheng={$kecheng}'>全部</a>"; $fields['linkallkecheng'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$shiping}'>全部</a>";
这里需要注意的是如果是linkallkecheng 那么就在后面连接不要加这个参数,而非加这个参数
然后复制一遍
地区的就行了,我的需要了显示子集,只显示一级,选了一级后不选2级,如果你需要二级 就复制if(empty($nativeplace)){...} 即可,不需要二级就复制我的,批量替换shiping即可!
if(empty($shiping)) { foreach($em_shipings as $eid=>$em) { if($eid % 500 != 0) continue; $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&kecheng={$kecheng}'>{$em}</a>\r\n"; } } else { $sontype = ( ($shiping % 500 != 0) ? $shiping : 0 ); $toptype = ( ($shiping % 500 == 0) ? $shiping : ( $shiping-($shiping%500) ) ); //取消默认的第一个 // $fields['shiping'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$toptype}&infotype={$infotype}'> <b>{$em_shipings[$toptype]}</b></a> >> "; foreach($em_shipings as $eid=>$em) { if($eid % 500 != 0) continue; if($eid == $shiping) { $fields['shiping'] .= " <b>{$em}</b>\r\n"; }else{ $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&kecheng={$kecheng}'>{$em}</a>\r\n";} } /*取消子集 foreach($em_shipings as $eid=>$em) { if($eid < $toptype+1 || $eid > $toptype+499) continue; if($eid == $shiping) { $fields['shiping'] .= " <b>{$em}</b>\r\n"; } else { $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&infotype={$infotype}'>{$em}</a>\r\n"; } } */ }