dedecms织梦tag keyword调用相关文章的方法
发表于:2024-10-30 作者:千家信息网编辑
千家信息网最后更新 2024年10月30日,这篇文章给大家分享的是有关dedecms织梦tag keyword调用相关文章的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。dedecms织梦tag keyword怎
千家信息网最后更新 2024年10月30日dedecms织梦tag keyword调用相关文章的方法\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 .= "
\r\n"; $dsql->FreeResult("al"); return $artlist;} {/dede:liketags}
这篇文章给大家分享的是有关dedecms织梦tag keyword调用相关文章的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
dedecms织梦tag keyword怎么调用相关文章?
DEDE官方的dede:likearticle是利用文章中输入的关键词或者自动分词形成的关键词来关联文章,但是有时候自动生成的关键词并不精确,造成关联不准,这里我们通过自定义一个类库文件来实现精准获取相关文章
可以单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序)
在 \include\taglib\ 下添加一个liketags.lib.php 代码如下
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 = "
\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'] = "".$row['typename'].""; $row['image'] = "<]#","",$row['title'])."'>"; $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()."\r\n"; } //if hasRow else { $artlist .= ''; } if($col>1) $artlist .= " | \r\n"; } //Loop Col if($col>1) $i += $col - 1; if($col>1) $artlist .= "
前台模板调用
{dede:liketags row='3' mytypeid='6' eregtype='all|tag|keyword' titlelen='250' infolen='250'}
[field:title/]
感谢各位的阅读!关于dedecms织梦tag keyword调用相关文章的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文章
关键
关键词
方法
内容
更多
关联
不错
实用
特殊
精准
精确
代码
前台
字段
官方
库文件
有时候
模板
看吧
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
查看服务器文件系统
mmp 数据库
网络安全规范的通知
sql2000数据库恢复
hp机箱16刀片服务器
武汉员工服务管理软件开发
属于网络安全法中明确的个人信息
厦门服务器生产厂
香橙派搭建服务器
软件开发华为认证
国内服务器服务商龙头
无线中继网络安全不
网络安全包括几方面的内容
科技互联网的户型图
网络安全学生读后感
新华互联网科技字体设计
广州服务器电源报价多少钱
惠普服务器闪红灯
rds数据库关闭连接
app的服务器在哪
女生找软件开发的工作
重庆应用软件开发多少钱
添加数据库中的列的约束
高效的数据库管理方法
安徽正规网络技术
nas搭建主机游戏服务器
外包软件开发付款比例
如何查看数据库运行情况
在哪里可以接软件开发项目
我的世界pe服务器吧