帝国CMS调用相关文章的全面指南
帝国cms调用相关文章的方法有很多,以下是一些常见的方法: 1. 使用[!--news.url--]标签调用上一篇或下一篇文章。 2. 使用[!--news.prenext--]标签调用上一篇或下一篇文章。 3. 使用[!--news.navlist--]标签调用文章列表。 4. 使用[!--news.toplist--]标签调用头条新闻列表。 5. 使用[!--news.hotlist--]标签调用热点新闻列表。 6. 使用[!--news.mytag--]标签调用当前用户添加的带有指定Tag的文章列表。
帝国cms调用相关文章有默认的调用标签方法:[otherlink],但是[otherlink]调用效率不高,不能满足所有情况下的相关调用,这里我们就需要自己写SQL了。
调用相关信息原理也就是依照一个字段条件,匹配他们的关联系了,下面菜鸡源码分享几种匹配方法的调用相关信息方法。
[otherlink]方法
[otherlink]标签模板ID,操作对象,调用条数,标题截取字数,是否显示栏目名,操作类型,只显示标题图片的信息[/otherlink]
SQL匹配截取标题关键词
<?phpecho$navinfor[title];$v=mb_substr($navinfor[title],0,4,'UTF-8');?>//获取当前文章标题,截取4个字符,并赋值给$v变量[e:loop={"select*fromphome_ecms_newswheretitlelike'%$v%'orderbyrand()desclimit10",10,24,0}]//把$v加入到查询语句中,随机查询新闻表中title字段包含$v值的标题的文章,取出10条<li><ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=$bqr['title']?></a></li>[/e:loop]
灵动标签匹配全标题
[e:loop={'news',10,3,0,"titlelike'%$navinfor[title]%'",''}]<li>·<ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=esub($bqr[title],24)?></a></li>[/e:loop]
①、比较粗糙的匹配,可能不太精确:title like '%$navinfor[keyboard]%'
②、精确的匹配,比较消耗资源:title regexp '(^|,)$navinfor[keyboard]($|,)'
当然也可以用关键字匹配
①、比较粗糙的匹配,可能不太精确:keyboard like '%$navinfor[keyboard]%'
②、精确的匹配,比较消耗资源:keyboard regexp '(^|,)$navinfor[keyboard]($|,)'
在没有关键字时,调用最新的文章来替代
<?if($navinfor[keyboard]){$xgkey2=explode(",",$navinfor[keyboard]);for($i=0;$i<count($xgkey2);$i++){if($i==0){$xg2.="keyboardlike'%".$xgkey2[$i]."%'";}else{$xg2.="orkeyboardlike'%".$xgkey2[$i]."%'";}}$xgsql2=$empire->query("select*from{$dbtbpre}ecms_newswhere$xg2andid!='$navinfor[id]'orderbynewstimedesclimit10");while($xgs2=$empire->fetch($xgsql2)){?><h2><ahref="<?=$xgs2['titleurl']?>"title="<?=$xgs2['title']?>"><strong><?=$xgs2['title']?></strong></a></h2><?}}else{$tsql=$empire->query("select*from{$dbtbpre}ecms_newsorderbynewstimedesclimit10");while($r=$empire->fetch($tsql)){?><h2><ahref="<?=$r['titleurl']?>"title="<?=$r['title']?>"><strong><?=$r['title']?></strong></a></h2><?}}?>