|
以下是具体实现过程:
以下代码放到/e/class/userfun.php里!
- <?php
- function user_otherlink($limit=5){
- global $dbtbpre,$empire,$navinfor,$class_r;
- if($navinfor[infotags]){
- $classid=(int)$classid;
- $limit=(int)$limit;
- $tbname=$class_r[$navinfor[classid]][tbname];
- $tagarr=explode(",",$navinfor[infotags]);
- $arr=array();
- $num=ceil($limit/count($tagarr));
- foreach($tagarr as $k=>$v){
- if(count($tagarr)==$k+1){
- $num=$limit-count($arr);
- }else{
- if($i<$num){
- $num=ceil(($limit-count($arr))/count($tagarr));
- }
- }
- $t=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$v'");
- if($t[tagid]){
- $sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$t[tagid]");
- $i=0;
- while($s=$empire->fetch($sql)){
- if(in_array($s[id],$arr)||$s[id]==$navinfor[id]){
- continue;
- }else{
- $arr[]=$s[id];
- $i++;
- }
- if($i==$num){
- break;
- }
- if(count($arr)==$limit){
- break 2;
- }
- }
- if($t[num]>$num){
- $linshi=$t[tagid];
- }
- }
- }
- if(count($arr)>0){
- $inid=implode(",",$arr);
- if(count($arr)<$limit&&$linshi){
- $sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$linshi and id not in($inid)");
- while($s=$empire->fetch($sql)){
- $arr[]=$s[id];
- if(count($arr)==$limit){
- break;
- }
- }
- }
- $inid=implode(",",$arr);
- $str="";
- $news=$empire->query("select id,title,titleurl,titlepic from {$dbtbpre}ecms_{$tbname} where id in($inid)");
- while($n=$empire->fetch($news)){
- $str.='<li><a href="'.$n[titleurl].'">'.$n[title].'</a></li>';
- }
- }
- return $str;
- }
- }
- ?>
复制代码 内容页模板用以下代码调用:5为显示数量 自己改
<?=user_otherlink(5)?>
|
上一篇:帝国cms7.5点击加载更多,滚动加载更多 优化版下一篇:帝国cms首页加载更多,滚动无限加载方法
|