问题:欧美等Linux主机等外国免费空间屏蔽了js调用,导致中文出现乱码。
解决:齐博v9最新、热门、推荐文章等非js调用
效果:通过实践,通用于各个栏目及内容页,代码稳定。
文件:官方 do/global.php 文件中
/** *本栏目文章列表功能函数 **/ function ListThisSort($rows,$leng=50){ global $page,$fid,$fidDB,$webdb,$pre,$Fid_db; if($page<1){ $page=1; } $min=($page-1)*$rows; if($fidDB[listorder]==1){ $DESC='DESC'; $ORDER='A.posttime'; }elseif($fidDB[listorder]==2){ $DESC='ASC'; $ORDER='A.posttime'; }elseif($fidDB[listorder]==3){ $DESC='DESC'; $ORDER='A.hits'; }elseif($fidDB[listorder]==4){ $DESC='ASC'; $ORDER='A.hits'; }elseif($fidDB[listorder]==5){ $DESC='DESC'; $ORDER='A.lastview'; }elseif($fidDB[listorder]==7){ $DESC='DESC'; $ORDER='A.digg_num'; }elseif($fidDB[listorder]==8){ $DESC='DESC'; $ORDER='A.digg_time'; }elseif($fidDB[listorder]==6){ $DESC='DESC'; $ORDER='rand()'; }else{ $DESC='DESC'; $ORDER='A.list'; } if(!$webdb[viewNoPassArticle]){ $SQL_yz=' AND A.yz=1 '; } if($fid){ $_fid_sql=" AND A.fid=$fid "; }else{ $_fid_sql=" AND 1 "; } $erp=$Fid_db[iftable][$fid]?$Fid_db[iftable][$fid]:""; $SQL="A LEFT JOIN {$pre}reply$erp R ON A.aid=R.aid WHERE R.topic=1 $_fid_sql $SQL_yz ORDER BY $ORDER $DESC LIMIT $min,$rows"; $which='A.*,R.content'; $listdb=list_article($SQL,$which,$leng,$erp); return $listdb; }
|
在该文件下 最后一行
的上一行 添加如下代码
/** *非JS形式调用本栏目文章列表功能函数 **/ function ListThisSort_NoJS($listorder,$rows,$leng=50){ global $page,$fid,$fidDB,$webdb,$pre,$Fid_db; if($page<1){ $page=1; } $min=($page-1)*$rows; if($listorder==1){ $DESC='DESC'; $ORDER='A.posttime'; }elseif($listorder==2){ $DESC='ASC'; $ORDER='A.posttime'; }elseif($listorder==3){ $DESC='DESC'; $ORDER='A.hits'; }elseif($listorder==4){ $DESC='ASC'; $ORDER='A.hits'; }elseif($listorder==5){ $DESC='DESC'; $ORDER='A.lastview'; }elseif($listorder==7){ $DESC='DESC'; $ORDER='A.digg_num'; }elseif($listorder==8){ $DESC='DESC'; $ORDER='A.digg_time'; }elseif($listorder==6){ $DESC='DESC'; $ORDER='rand()'; }else{ $DESC='DESC'; $ORDER='A.list'; } if(!$webdb[viewNoPassArticle]){ $SQL_yz=' AND A.yz=1 '; } if($fid){ $_fid_sql=" AND A.fid=$fid "; }else{ $_fid_sql=" AND 1 "; } $erp=$Fid_db[iftable][$fid]?$Fid_db[iftable][$fid]:""; $SQL="A LEFT JOIN {$pre}reply$erp R ON A.aid=R.aid WHERE R.topic=1 $_fid_sql $SQL_yz ORDER BY $ORDER $DESC LIMIT $min,$rows"; $which='A.*,R.content'; $listdb=list_article($SQL,$which,$leng,$erp); return $listdb; }
|
其实也就是把
function ListThisSort($rows,$leng=50)
修改为
function ListThisSort_NoJS($listorder,$rows,$leng=50)
把官方默认的
if($fidDB[listorder]==1)
修改为
if($listorder==1)
而已
ok 代码已经修改完毕
现在来说在模板中出现的调用代码
<!-- EOT; $listdbs=ListThisSort_NoJS(1,5,30); foreach($listdbs AS $key=>$rs){ print <<<EOT --> <SPAN id=article_Newtopic> <DIV class=side_t style="PADDING-LEFT: 15px; HEIGHT: 24px"><a href="bencandy.php?fid=$rs[fid]&id=$rs[aid]" target="$target" title='$rs[full_title]'>$rs[title]</a></div></SPAN> <!-- EOT; } print <<<EOT -->
|
样式如下:推荐栏目
[手机软件] 战争世界 v109内购破解单.. 2031-03-01
<div class="rightnews"> <div class="left_title"> <div class="left_l">推荐{$fidDB[M_alias]}</div> </div> <ul style="margin:0px;padding:0px;"> {$label[article_hei_list2]} </ul> <ul style="padding:10px 5px;text-align:center;border-bottom: #F5F5F5 1px solid;"> <!-- EOT; $listdbs=ListThisSort_NoJS(5,10,26); foreach($listdbs AS $key=>$rs){ print <<<EOT --> <SPAN id=article_Newtopic> <DIV class=side_t style="PADDING-LEFT: 5px; HEIGHT: 24px"><span style="float:left;"><font color="#948E8C">[<A HREF="list.php?fid=$rs[fid]" style="color:#BFBEBD;">{$rs[fname]}</A>]</font></span><span style="float:left;PADDING-LEFT: 5px;"><a href="bencandy.php?fid=$rs[fid]&id=$rs[aid]" target="$target" title='$rs[full_title]'>$rs[title]</a></span><span style="float:right;padding-right:5px;"><font color="#B6BCBC">{$rs[posttime]}</font></span></div></SPAN> <!-- EOT; } print <<<EOT --> </ul> </div> </div> </div> <div style="clear:both;"></div> </div>
|
以上样式结合显示了:【栏目】文章标题 时间
其中$listdbs=ListThisSort_NoJS(1,5,30);
1代表 最新文章
5代表 显示行数量
30代表 每篇标题的字数
1 可以分别修改成 1-8
显示效果有:
1.代表 最新文章(升序 倒序)
2.代表 热门文章
3.代表 最近浏览
5.代表 推荐文章
随机文章
digg排行(升序 倒序)等