问题:欧美等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排行(升序 倒序)等