首页 > 站长资讯 > 正文

织梦DedeCMS让联动查询支持系统的文章模型、图集

2020-08-13 05:59:39 
之前看过好几个发布关于联动的应用教程帖,但是发现只适合一个联动项目,多个的话就不会联动了,自己按照分类信息里的联动改了一下成功了,现在写个教程给那些也想使用多个联动项目的朋友。(注:本篇教程只针对独立模型,如需支持系统模型,比如文章、图集、软件模型就联系QQ282477832,付费解决)。我这里是五个联动项目,如果需要跟多或是少一点的话,可以根据我给的代码修改一下。第一步:修改include/taglib/infolink.lib.php文件第一处:

require_once(DEDEDATA.'/enums/infotype.php'); 下面添加 require_once(DEDEDATA.'/enums/自定义联动类别字段名1.php'); require_once(DEDEDATA.'/enums/自定义联动类别字段名2.php'); require_once(DEDEDATA.'/enums/自定义联动类别字段名3.php'); require_once(DEDEDATA.'/enums/自定义联动类别字段名4.php'); require_once(DEDEDATA.'/enums/自定义联动类别字段名5.php');

5.6版本上面代码与5.7版本不同,只要注意路径即可。第二处:

function lib_infolink(&$ctag,&$refObj) { global $dsql,$nativeplace,$infotype,$自定义联动类别字段名1,$自定义联动类别字段名2,$自定义联动类别字段名3,$自定义联动类别字段名4,$自定义联动类别字段名5,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite; global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名1s,$em_自定义联动类别字段名2s,$em_自定义联动类别字段名3s,$em_自定义联动类别字段名4s,$em_自定义联动类别字段名5s;//看清楚,这里后面的个S

第三处:

在 $fields = array('nativeplace'=>'','infotype'=>'','typeid'=>$typeid, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>''); $fields['nativeplace'] = $fields['infotype'] = ''; 后面添加 $fields = array('自定义联动类别字段名1'=>'','自定义联动类别字段名2’=>'','自定义联动类别字段名3'=>'','自定义联动类别字段名4'=>'','自定义联动类别字段名5'=>'','typeid'=>$typeid, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkall自定义联动类别字段名1'=>'','linkall自定义联动类别字段名2‘=>'','linkall自定义联动类别字段名3'=>'','linkall自定义联动类别字段名4'=>'','linkall自定义联动类别字段名5'=>''); $fields['自定义联动类别字段名1'] = $fields['自定义联动类别字段名2'] = $fields['自定义联动类别字段名3'] = $fields['自定义联动类别字段名4'] = $fields['自定义联动类别字段名5'] = '';

第四处:

在 $fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限</a>"; 后面添加 $fields['linkall自定义联动类别字段名1'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'>全部</a>"; (这里注意了,想要联动这个地方是关键之一,后面的联动字段一定都要有,如果你有增加联动那么这里一定要加全了)

第五处:

if(is_array($ctp->CTags)) 上面添加 if(empty($自定义联动类别字段名1)) { foreach($em_自定义联动类别字段名1s as $eid=>$em) { if($eid % 500 != 0) continue; $fields['自定义联动类别字段名1'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'>{$em}</a>"; } } else { foreach($em_自定义联动类别字段名1s as $eid=>$em) { if($eid % 500 != 0) continue; if(isset($_GET['自定义联动类别字段名1'])) { $navclass=$_GET['自定义联动类别字段名1']; if ($navclass==$eid) { $navclass=' style=color:#ff0000;font-weight:bold'; } $fields['自定义联动类别字段名1'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'".$navclass.">{$em}</a>"; } } } (这里也多联动的关键之一,由于东西太多,我只列出一个,其他的自己添加一下,注意的是在链接也就是a href里面自定义联动类别字段名一定要加全了)

第二步:修改plus/list.php 文件第一处:

$infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); 下面加上 $自定义联动类别字段名1 = ( (empty($自定义联动类别字段名1) || !is_numeric($自定义联动类别字段名1)) ? 0 : $自定义联动类别字段名1 );(多个就复制改名即可)

第二处:

在 if(!empty($infotype)) $cArr['infotype'] = $infotype; 下面加上 if(!empty($自定义联动类别字段名1)) $cArr['自定义联动类别字段名1'] = $自定义联动类别字段名1;(多个就复制改名即可)

第三步:修改include/arc.sglistview.class.php 文件(本站测试,此步可忽略)

在 if(!empty($this->searchArr['infotype'])) { if($this->searchArr['infotype'] % 500 ==0 ) { $naddQuery .= " And arc.infotype >= '{$this->searchArr['infotype']}' And arc.infotype < '".($this->searchArr['infotype']+500)."'"; } else { $naddQuery .= "And arc.infotype = '{$this->searchArr['infotype']}'"; } } 下面加上 if(!empty($this->searchArr['jztype'])) { if($this->searchArr['jztype'] % 500 ==0 ) { $naddQuery .= " And arc.jztype >= '{$this->searchArr['jztype']}' And arc.jztype < '".($this->searchArr['jztype']+500)."'"; } else { $naddQuery .= "And arc.jztype = '{$this->searchArr['jztype']}'"; } } (多个就复制改名即可)

第四步:模板调用[field:linkeall自定义联动类别字段名1/] [field:自定义联动类别字段名1 /] (多个就复制改名即可)切记前后一定要加上{dede:infolink}和{/dede:infolink}要不然是调用不出来的另外list列表类的分页代码也要加上相关的参数,才能正确显示分页。
关于蔚蓝百姓网 | 版权声明 | 联系我们 | 友情链接 | 网络广告
蔚蓝百姓网 版权所有 © 2015-2020