dedecms織夢tag keyword怎么調用相關文章

dedecms織夢tag keyword怎么調用相關文章

dedecms織夢tag keyword怎么調用相關文章?

DEDE官方的dede:likearticle是利用文章中輸入的關鍵詞或者自動分詞形成的關鍵詞來關聯文章,但是有時候自動生成的關鍵詞并不精確,造成關聯不準,這里我們通過自定義一個類庫文件來實現精準獲取相關文章

推薦學習:織夢cms

可以單用tag來調用相關文章,也可用tag+keyword來調用相關文章(默認tag優先于keyword,可以自己排序)

includetaglib 下添加一個liketags.lib.php 代碼如下

<?php if(!defined(&#39;DEDEINC&#39;)) exit(&#39;Request Error!&#39;); function lib_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-&gt;Items,$attlist); ????extract($ctag-&gt;CAttribute-&gt;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?.=?"?AND?FIND_IN_SET('{$flags[$i]}',?arc.flag)&gt;0?"; } ?? ????$ids?=?array(); ????$tids?=?array(); ?????? ????if(!empty($refObj-&gt;Fields['tags']))?{ ????????$keyword?=?$refObj-&gt;Fields['tags']; ????} ????else?{ ????????$keyword?=?(?!empty($refObj-&gt;Fields['keywords'])???$refObj-&gt;Fields['keywords']?:?''?); ????} ?????? ????$typeid?=?(?!empty($mytypeid)???$mytypeid?:?0?); ????if(empty($typeid)) ????{ ????????if(!empty($refObj-&gt;Typelink-&gt;TypeInfos['reid']))?{ ?????????????$typeid?=?$refObj-&gt;Typelink-&gt;TypeInfos['reid']; ????????} ????????else?{ ?????????????if(!empty($refObj-&gt;Fields['typeid']))?$typeid?=?$refObj-&gt;Fields['typeid']; ????????} ????} ?????? ????if(?!empty($typeid)?&amp;&amp;?!preg_match('#,#',?$typeid)?)?{ ????????$typeid?=?GetSonIds($typeid); ????} ?????? if(!empty($refObj-&gt;Fields['tags'])?&amp;&amp;?$eregtype?!=?'keyword'?) { $tags?=?explode(',',?addslashes($refObj-&gt;Fields['tags'])); $getsql?=?"?tag?like?'".join("'?OR?tag?like?'",?$tags)."'?"; $dsql-&gt;Execute('me',?"Select?*?From?`dede_tagindex`?where?$getsql?"); while($arow?=?$dsql-&gt;GetArray('me')) { $tids[]?=?$arow['id']; } $tid?=?join(',',?$tids); if($tid!='') { 061 $dsql-&gt;Execute("me",?"Select?aid?From?`dede_taglist`?where?tid?in($tid)?And?arcrank?&gt;?-1?group?by?aid?order?by?aid?desc"); while($arow?=?$dsql-&gt;GetArray("me")) { $ids[]?=?$arow['aid']; $arcid?=??$refObj-&gt;Fields['aid']; } } } if($eregtype?==?'tag'?&amp;&amp;?count($ids)?==?0?) { return; } else { if(count($ids)?&gt;?0) { if(!empty($typeid)) { $typeid?=?"?And?arc.typeid?in($typeid)?And?arc.id$arcid?"; } $idsStr?=?join(',',?$ids); $query?=?"Select?arc.*,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`?arc?left?join?`dede_arctype`?tp?on?arc.typeid=tp.id where?arc.arcrank&gt;-1?and?arc.id?in($idsStr)?$typeid?order?by?arc.id?desc?limit?0,?$row"; } else { $limitRow?=?$row?-?count($ids); $keyword?=?''; if(!empty($refObj-&gt;Fields['keywords'])) { $keywords?=?explode(','?,?trim($refObj-&gt;Fields['keywords'])); $keyword?=?''; $n?=?1; foreach($keywords?as?$k) { if($n?&gt;?3)??break; ?? if(trim($k)=='')?continue; else?$k?=?addslashes($k); ?? $keyword?.=?($keyword==''???"?CONCAT(arc.keywords,'?',arc.title)?like?'%$k%'?"?:?"?OR?CONCAT(arc.keywords,'?',arc.title)?like?'%$k%'?"); $n++; } } $arcid?=?(!empty($refObj-&gt;Fields['id'])???$refObj-&gt;Fields['aid']?:?0); if(?empty($arcid)?||?$byabs==0?) { $orderquery?=?"?order?by?arc.id?desc?"; } else { $orderquery?=?"?order?by?ABS(arc.id?-?".$arcid.")?"; } if($keyword?!=?'') { if(!empty($typeid)) { $typeid?=?"?And?arc.typeid?in($typeid)?And?arc.id$arcid?"; } $query?=?"Select?arc.*,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`?arc?left?join?`dede_arctype`?tp?on?arc.typeid=tp.id where?arc.arcrank&gt;-1?and?($keyword)??$typeid?$orderquery?limit?0,?$row"; } else { if(!empty($typeid)) { $typeid?=?"?arc.typeid?in($typeid)?And?arc.id$arcid?"; } $query?=?"Select?arc.*,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`?arc?left?join?`dede_arctype`?tp?on?arc.typeid=tp.id where?arc.arcrank&gt;-1?and??$typeid?$orderquery?limit?0,?$row"; } } } ?? ????$innertext?=?trim(?$ctag-&gt;GetInnerText()?); ????if($innertext=='')?$innertext?=?GetSysTemplets('part_arclist.htm'); ????$dsql-&gt;SetQuery($query); ????$dsql-&gt;Execute('al'); ????$artlist?=?''; ????if($col?&gt;?1){ ????????$artlist?=?"
rn”; ????} ????$dtp2?=?new?DedeTagParse(); ????$dtp2->SetNameSpace(‘field’,?‘[‘,?‘]’); ????$dtp2->LoadString($innertext); ????$GLOBALS[‘autoindex’]?=?0; ????$line?=?$row; ????for($i=0;?$i?1)?$artlist?.=?“

rn”; ????????for($j=0;?$j?1)?$artlist?.=?”????

rn”; ????????} ????????//Loop?Col ????????if($col>1)?$i?+=?$col?–?1; ????????if($col>1)?$artlist?.=?”????

rn”; ????} ????//loop?line ????if($col>1)?$artlist?.=?”????

rn”; ????????????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’]?=?““.$row[‘typename’].”“; ????????????????$row[‘image’]?=?“@@##@@”; ????????????????$row[‘imglink’]?=?““.$row[‘image’].”“; ????????????????$row[‘fulltitle’]?=?$row[‘title’]; ????????????????$row[‘title’]?=?cn_substr($row[‘title’],?$titlelen); ????????????????if($row[‘color’]!=”)?$row[‘title’]?=?““.$row[‘title’].”“; ????????????????if(preg_match(‘#b#’,?$row[‘flag’]))?$row[‘title’]?=?““.$row[‘title’].”“; ????????????????$row[‘textlink’]?=?““.$row[‘title’].”“; ????????????????$row[‘plusurl’]?=?$row[‘phpurl’]?=?$GLOBALS[‘cfg_phpurl’]; ????????????????$row[‘memberurl’]?=?$GLOBALS[‘cfg_memberurl’]; ????????????????$row[‘templeturl’]?=?$GLOBALS[‘cfg_templeturl’]; ?????????????????? ????????????????if(is_array($dtp2->CTags)) ????????????????{ ????????????????????foreach($dtp2->CTags?as?$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().”rn”; ????????????} ????????????//if?hasRow ????????????else ????????????{ ????????????????$artlist?.=?”; ????????????} ????????????if($col>1)?$artlist?.=?”????

rn”; ????$dsql->FreeResult(“al”); ????return?$artlist; }

前臺模板調用

{dede:liketags?row='3'?mytypeid='6'?eregtype='all|tag|keyword'?titlelen='250'?infolen='250'} 
  • @@##@@

    [field:title/]

    [field:description?/]

  • {/dede:liketags}dedecms織夢tag keyword怎么調用相關文章dedecms織夢tag keyword怎么調用相關文章

    以上就是

    ? 版權聲明
    THE END
    喜歡就支持一下吧
    點贊11 分享