帝国cms相关文章调用(帝国cms简介标签)
功能:
例如有3个TAG,每个TAG下有4篇文章。现在规定要展示10篇文章,那么每个TAG必须展示4篇文章,总共12篇文章。这12篇文章最终会被打乱,然后有10篇文章有3个TAG,每个TAG有3篇文章。现在规定展示10篇文章,那么每个TAG必须展示3篇文章。共有9篇文章,3个TAG。 A 有2 篇文章,B 有5 篇文章,C 有3 篇文章,现在要显示10 篇文章,那么A 取出2 篇文章,B 取出5 篇文章,C 取出3 篇文章,总共10 篇文章。如果A、B、C除了当前文章之外,如果还有相同的文章,则重复的文章将被扣除,只取一次。因此,规定的数量会有偏差。
将以下代码放入/e/class/userfun.php!
?phpfunctionuser_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($tagar) ));foreach($tagarras$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('selecttagid,numfrom{$dbtbpre}enewstagswheretagname='$v'' );if($t[tagid]){$sql=$empire-query('selectidfrom{$dbtbpre}enewstagsdatawheretagid=$t[tagid]');$i=0;while($s=$empire-fetch( $sql)){if(in_array($s[id],$arr)||$s[id]==$navinfor[id]){继续;}else{$arr[]=$s[id]; $i++;}if($i==$num){break;}if(count($arr)==$limit){break2;}}if($t[num]$num){$linshi=$t [tagid];}}}if(count($arr)0){$inid=implode(',',$arr);if(count($arr)$limit$linshi){$sql=$empire-query ('selectidfrom{$dbtbpre}enewstagsdatawheretagid=$linshiandidnotin($inid)');while($s=$empire-fetch($sql)){$arr[]=$s[id];if(count($arr) )==$limit){break;}}}$inid=implode(',',$arr);$str='';$news=$empire-query('selectid,title,titleurl,titlepicfrom{$dbtbpre }ecms_{$tbname}whereidin($inid)');while($n=$empire-fetch($news)){$str.='liahref=''.$n[titleurl].'''.$ n[title].'/a/li';}}return$str;}}?调用内容页,代码如下:5为显示数量,可自行更改
?=user_otherlink(5)?