dedecms织梦tag keyword调用相关文章

dedecms织梦tag keyword调用相关文章,第1张

dedecms织梦tagkeyword调用相关文章

本文主要介绍dedecmsDreamweaver标签关键字调用相关文章的相关资料。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

e官方DEDE:likearticle是利用文章中输入的关键词或者自动分词形成的关键词来关联文章,但有时自动生成的关键词并不准确,导致关联不准确。这里我们自定义一个类库文件,实现对相关文章的精准访问。

可以单独使用tag调用相关文章,也可以使用tag+keyword调用相关文章(默认tag优先于keyword,可以自己排序)。

在\include\taglib\下添加一个liketags.lib.php代码,如下所示

<?php if(!defined('DEDEINC'))exit('RequestError!'); functionlib_liketags(&$ctag,&$refObj) { global$dsql; //属性处理 $attlist="row|12,titlelen|30,infolen|250,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|1,imgheight|90,flag|"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items,EXTR_SKIP); $revalue=''; if(empty($tablewidth))$tablewidth=100; if(empty($col))$col=1; $colWidth=ceil(100/$col); $tablewidth=$tablewidth."%"; $colWidth=$colWidth."%"; $orwheres=''; if($flag!=''){ $flags=explode(',',$flag); for($i=0;isset($flags[$i]);$i++)$orwheres.="ANDFIND_IN_SET('{$flags[$i]}',arc.flag)>0"; } $ids=array(); $tids=array(); if(!empty($refObj->Fields['tags'])){ $keyword=$refObj->Fields['tags']; } else{ $keyword=(!empty($refObj->Fields['keywords'])?$refObj->Fields['keywords']:''); } $typeid=(!empty($mytypeid)?$mytypeid:0); if(empty($typeid)) { if(!empty($refObj->Typelink->TypeInfos['reid'])){ $typeid=$refObj->Typelink->TypeInfos['reid']; } else{ if(!empty($refObj->Fields['typeid']))$typeid=$refObj->Fields['typeid']; } } if(!empty($typeid)&&!preg_match('#,#',$typeid)){ $typeid=GetSonIds($typeid); } if(!empty($refObj->Fields['tags'])&&$eregtype!='keyword') { $tags=explode(',',addslashes($refObj->Fields['tags'])); $getsql="taglike'".join("'ORtaglike'",$tags)."'"; $dsql->Execute('me',"Select*From`dede_tagindex`where$getsql"); while($arow=$dsql->GetArray('me')) { $tids[]=$arow['id']; } $tid=join(',',$tids); if($tid!='') { 061 $dsql->Execute("me","SelectaidFrom`dede_taglist`wheretidin($tid)Andarcrank>-1groupbyaidorderbyaiddesc"); while($arow=$dsql->GetArray("me")) { $ids[]=$arow['aid']; $arcid=$refObj->Fields['aid']; } } } if($eregtype=='tag'&&count($ids)==0) { return; } else { if(count($ids)>0) { if(!empty($typeid)) { $typeid="Andarc.typeidin($typeid)Andarc.id<>$arcid"; } $idsStr=join(',',$ids); $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath from`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.id wherearc.arcrank>-1andarc.idin($idsStr)$typeidorderbyarc.iddesclimit0,$row"; } else { $limitRow=$row-count($ids); $keyword=''; if(!empty($refObj->Fields['keywords'])) { $keywords=explode(',',trim($refObj->Fields['keywords'])); $keyword=''; $n=1; foreach($keywordsas$k) { if($n>3)break; if(trim($k)=='')continue; else$k=addslashes($k); $keyword.=($keyword==''?"CONCAT(arc.keywords,'',arc.title)like'%$k%'":"ORCONCAT(arc.keywords,'',arc.title)like'%$k%'"); $n++; } } $arcid=(!empty($refObj->Fields['id'])?$refObj->Fields['aid']:0); if(empty($arcid)||$byabs==0) { $orderquery="orderbyarc.iddesc"; } else { $orderquery="orderbyABS(arc.id-".$arcid.")"; } if($keyword!='') { if(!empty($typeid)) { $typeid="Andarc.typeidin($typeid)Andarc.id<>$arcid"; } $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath from`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.id wherearc.arcrank>-1and($keyword)$typeid$orderquerylimit0,$row"; } else { if(!empty($typeid)) { $typeid="arc.typeidin($typeid)Andarc.id<>$arcid"; } $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath from`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.id wherearc.arcrank>-1and$typeid$orderquerylimit0,$row"; } } } $innertext=trim($ctag->GetInnerText()); if($innertext=='')$innertext=GetSysTemplets('part_arclist.htm'); $dsql->SetQuery($query); $dsql->Execute('al'); $artlist=''; if($col>1){ $artlist="<tablewidth='$tablewidth'border='0'cellspacing='0'cellpadding='0'>\r\n"; } $dtp2=newDedeTagParse(); $dtp2->SetNameSpace('field','[',']'); $dtp2->LoadString($innertext); $GLOBALS['autoindex']=0; $line=$row; for($i=0;$i<$line;$i++) { if($col>1)$artlist.="<tr>\r\n"; for($j=0;$j<$col;$j++) { if($col>1)$artlist.="<tdwidth='$colWidth'>\r\n"; if($row=$dsql->GetArray("al")) { $ids[]=$row['id']; //处理一些特殊字段 $row['info']=$row['infos']=cn_substr($row['description'],$infolen); $row['id']=$row['id']; if($row['corank']>0&&$row['arcrank']==0) { $row['arcrank']=$row['corank']; } $row['filename']=$row['arcurl']=GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']); $row['typeurl']=GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'], $row['namerule'],$row['moresite'],$row['siteurl'],$row['sitepath']); if($row['litpic']=='-'||$row['litpic']=='') { $row['litpic']=$GLOBALS['cfg_cmspath'].'/images/defaultpic.gif'; } if(!preg_match("#^http:\/\/#i",$row['litpic'])&&$GLOBALS['cfg_multi_site']=='Y') { $row['litpic']=$GLOBALS['cfg_mainsite'].$row['litpic']; } $row['picname']=$row['litpic']; $row['stime']=GetDateMK($row['pubdate']); $row['typelink']="<ahref='".$row['typeurl']."'>".$row['typename']."</a>"; $row['image']="<imgsrc='".$row['picname']."'border=''width='$imgwidth'height='$imgheight'alt='".preg_replace("#['><]#","",$row['title'])."'>"; $row['imglink']="<ahref='".$row['filename']."'>".$row['image']."</a>"; $row['fulltitle']=$row['title']; $row['title']=cn_substr($row['title'],$titlelen); if($row['color']!='')$row['title']="<fontcolor='".$row['color']."'>".$row['title']."</font>"; if(preg_match('#b#',$row['flag']))$row['title']="<strong>".$row['title']."</strong>"; $row['textlink']="<ahref='".$row['filename']."'>".$row['title']."</a>"; $row['plusurl']=$row['phpurl']=$GLOBALS['cfg_phpurl']; $row['memberurl']=$GLOBALS['cfg_memberurl']; $row['templeturl']=$GLOBALS['cfg_templeturl']; if(is_array($dtp2->CTags)) { foreach($dtp2->CTagsas$k=>$ctag) { if($ctag->GetName()=='array'){ $dtp2->Assign($k,$row); } else{ if(isset($row[$ctag->GetName()]))$dtp2->Assign($k,$row[$ctag->GetName()]); else$dtp2->Assign($k,''); } } $GLOBALS['autoindex']++; } $artlist.=$dtp2->GetResult()."\r\n"; } //ifhasRow else { $artlist.=''; } if($col>1)$artlist.="</td>\r\n"; } //LoopCol if($col>1)$i+=$col-1; if($col>1)$artlist.="</tr>\r\n"; } //loopline if($col>1)$artlist.="</table>\r\n"; $dsql->FreeResult("al"); return$artlist; }

前台模板调用

{dede:liketagsrow='3'mytypeid='6'eregtype='all|tag|keyword'titlelen='250'infolen='250'} <li> <ahref="[field:arcurl/]"title="[field:title/]"target="_blank"> <divclass="list-img"> <imgsrc="[field:litpic/]"alt="[field:title/]"/> </div> <divclass="list-info"> <pclass="title">[field:title/]</p> <pclass="meta">[field:description/]</p> </div> </a> </li> {/dede:liketags}

就是本文的全部内容。希望对大家的学习有帮助,支持我们。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/772080.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-03
下一篇2022-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存