位置: IT常识 - 正文
推荐整理分享织梦dedecms自定义标签liketags调用tag/keyword相同的相关文章(织梦怎么改网站主页),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:织梦怎么改网站主页,织梦怎么改网站主页,织梦自定义字段,织梦怎么改网站主页,织梦怎么自动采集发布,织梦怎么自动采集发布,织梦怎么自动采集发布,织梦自定义标签,内容如对您有帮助,希望把文章链接给更多的朋友!
我们在做织梦模板开发时,为了更好的利于seo,在每篇文章下调用与这篇文章有着相同tag或keyword的相关文章。为了实现这个功能,自定义了一个标签:dede:liketags。标签代码如下:
自定义标签代码
1、新建一个文件名称为liketags.lib.php,存放在/include/taglib/目录下。该文件代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232<?phpif(!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|120,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!=''){$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.sitepathfrom`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.idwherearc.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.sitepathfrom`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.idwherearc.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.sitepathfrom`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.idwherearc.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'];//处理一些特殊字段www.dede58.com织梦模板网$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['namerule2'],$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='0'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";}//ifhasRowelse{$artlist.='';}if($col>1)$artlist.="</td>\r\n";}//LoopColif($col>1)$i+=$col-1;if($col>1)$artlist.="</tr>\r\n";}//looplineif($col>1)$artlist.="</table>\r\n";$dsql->FreeResult("al");return$artlist;}前台模板调用代码如下:
12345678910111213{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}免责
下一篇:python中except的异常处理(python中except用法)
友情链接: 武汉网站建设