web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

dedecms织梦tag keyword调用相关文章

503 ℃
           

DEDE官方的dede:likearticle是利用文章中输入的关键词或者自动分词形成的关键词来关联文章,但是有时候自动生成的关键词并不精确,造成关联不准,这里我们通过自定义一个类库文件来实现精准获取相关文章

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

在 /include/taglib/ 下添加一个liketags.lib.php 代码如下

<?phpif(!defined(‘DEDEINC’)) exit(‘Request Error!’);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->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 .= " AND FIND_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 = " tag like ‘".join("’ OR tag like ‘", $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", "Select aid From `dede_taglist` where tid in($tid) And arcrank > -1 group by aid order by aid desc");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 = " 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.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-1 and arc.id in($idsStr) $typeid order by arc.id desc limit 0, $row";}else{$limitRow = $row – count($ids);$keyword = ”;if(!empty($refObj->Fields[‘keywords’])){$keywords = explode(‘,’ , trim($refObj->Fields[‘keywords’]));$keyword = ”;$n = 1;foreach($keywords as $k){if($n > 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->Fields[‘id’]) ? $refObj->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.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-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.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-1 and $typeid $orderquery limit 0, $row";}}} $innertext = trim( $ctag->GetInnerText() ); if($innertext==”) $innertext = GetSysTemplets(‘part_arclist.htm’); $dsql->SetQuery($query); $dsql->Execute(‘al’); $artlist = ”; if($col > 1){ $artlist = "<table width=’$tablewidth’ border=’0′ cellspacing=’0′ cellpadding=’0′>/r/n"; } $dtp2 = new DedeTagParse(); $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 .= " <td width=’$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’] = "<a href=’".$row[‘typeurl’]."’>".$row[‘typename’]."</a>"; $row[‘image’] = "<img src=’".$row[‘picname’]."’ border=” width=’$imgwidth’ height=’$imgheight’ alt=’".preg_replace("#[‘><]#","",$row[‘title’])."’>"; $row[‘imglink’] = "<a href=’".$row[‘filename’]."’>".$row[‘image’]."</a>"; $row[‘fulltitle’] = $row[‘title’]; $row[‘title’] = cn_substr($row[‘title’], $titlelen); if($row[‘color’]!=”) $row[‘title’] = "<font color=’".$row[‘color’]."’>".$row[‘title’]."</font>"; if(preg_match(‘#b#’, $row[‘flag’])) $row[‘title’] = "<strong>".$row[‘title’]."</strong>"; $row[‘textlink’] = "<a href=’".$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->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()."/r/n"; } //if hasRow else { $artlist .= ”; } if($col>1) $artlist .= " </td>/r/n"; } //Loop Col if($col>1) $i += $col – 1; if($col>1) $artlist .= " </tr>/r/n"; } //loop line if($col>1) $artlist .= " </table>/r/n"; $dsql->FreeResult("al"); return $artlist;}

前台模板调用

{dede:liketags row=’3′ mytypeid=’6′ eregtype=’all|tag|keyword’ titlelen=’250′ infolen=’250′}<li><a href="[field:arcurl/]" title="[field:title/]" target="_blank"><div class="list-img"><img src="[field:litpic/]" alt="[field:title/]"/></div><div class="list-info"><p class="title">[field:title/]</p><p class="meta">[field:description /]</p></div></a></li>{/dede:liketags}

织梦cms相关文章likearticle显示缩略图

dede织梦tag keyword调用相关文章{dede:liketags}

DedeCMS调用相关文章likearticle附加自定义字段

织梦cms5.7全站按TAG和关键字调用相关文章

标签: likearticle

上面是“dedecms织梦tag keyword调用相关文章”的全面内容,想了解更多关于 织梦cms 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_479.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > 织梦cms
本文共计6599个字,预计阅读时长44分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款完全免费的 Windows 软件卸载、清理工具——HiBit Uninstaller
下一篇: 推荐一款可免费商用圆体字库——江城圆体
x 打工人ai神器