帝国cms怎么设置按照tag标签相关文章教程

最近用帝国cms折腾一个网站,需要按照tag来设置相关文章,帝国默认是按照关键字来弄的,找了一些方法,感觉还是自定义函数是最简单和实用的,其它的需要修改帝国系统文件的都不是很理想,记录一下。

帝国cms设置按照tag标签相关文章教程

1、首先自定义函数

userfun.php是帝国cms专门用来自定义函数使用的。

打开e/class/userfun.php文件,写入如下代码:

//根据tag获取相关信息

function user_OtherLink($num,$classid=0,$mid=0){

global $dbtbpre,$empire,$navinfor,$class_r;

if(empty($navinfor['infotags'])){

return '暂无相关信息';

}

if($mid&&$classid&&$class_r[$classid]['modid']!=$mid){

return '暂无相关信息';

}

$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");

$temp_r=explode("[!--empirenews.listtemp--]",$tr['otherlinktemp']);

$str='';

$tagsql=$empire->query("select * from {$dbtbpre}enewstagsdata where id='$navinfor[id]' and classid='$navinfor[classid]'");

$i=0;

$isprint=array();

while($tagr=$empire->fetch($tagsql)){

if($i>=$num){

break;

}

$gsql=$empire->query("select * from {$dbtbpre}enewstagsdata where tagid='$tagr[tagid]'");

while($gr=$empire->fetch($gsql)){

$myprint='id'.$gr['id'].'class'.$gr['classid'];

if(array_search($myprint,$isprint)!==false){

continue;

}

$isprint[]=$myprint;

if($classid&&$classid!=$gr['classid']){

continue;

}

if($mid&&$mid!=$gr['mid']){

continue;

}

if($gr['id']==$navinfor['id']&&$gr['classid']==$navinfor['classid']){

continue;

}

$tbname=$class_r[$gr['classid']]['tbname'];

if(!$tbname||InfoIsInTable($tbname)){

continue;

}

$r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$gr[id]' limit 1");

if(!$r['id']){

continue;

}

$str.=RepOtherTemp($temp_r[1],$r,$tr);

$i+=1;

if($i>=$num){

break;

}

}

}

$keyboardtext=$temp_r[0].$str.$temp_r[2];

if($str){

return $keyboardtext;

}else{

return '暂无相关信息';

}

}

2、帝国cms按照tag调用相关文章方法

函数说明:user_OtherLink(调用条数,指定栏目id,指定模型id) ;

相关文章模板采用的是公共模板里的相关信息模板。

调用示例:

<?=user_OtherLink(10,0,1)?>

模型id指的是系统模型,系统设置——管理数据表,这里可以看到系统自带的数据模型id,比如新闻系统模型id为1.

3、修改相关信息模板

显示模板到模板——公共模板——相关信息模板里面设置,比如默认的标题50个字肯定是太长,改为38个字符比较恰当。

经测试,此自定义函数效果非常好用,留存记录。