雷达智富

首页 > 内容 > 网页技术 > 正文

网页技术

排行显示页:发布时间、浏览、评论、收藏的顶的次数

2021-11-19 235

打开 inc/artic_function.php

把 function ListThisSort($rows,$leng=50){的函数代码换成:

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]==9){  //评论最多
        $DESC='DESC';
        $ORDER='A.comments';
    }elseif($fidDB[listorder]==10){  //收藏最多
        $DESC='DESC';
        $ORDER='A.collection';
    }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;
}

在do目录新建一个 countlist.php 代码如下:

<?php
require_once(dirname(__FILE__)."/"."global.php");
//显示多少篇
$rows=20;    
if($job=='hits'){
    $fidDB[listorder]=3;     //浏览最多
}
elseif($job=='comment'){
    $fidDB[listorder]=9;     //评论最多
}
elseif($job=='collection'){
    //增加collection-收藏文章次数的字段
    if( !table_field("{$pre}article",'collection') )
    {
        $db->query("ALTER TABLE `{$pre}article` ADD `collection` MEDIUMINT( 7 ) NOT NULL");
    }
    //统计和写入被收藏文章的数据
    $querycollection = $db->query("SELECT * FROM {$pre}article WHERE yz=1 ORDER BY aid DESC");
        while($rs=$db->fetch_array($querycollection)){
        @extract($db->get_one("SELECT COUNT(id) AS MUCH FROM {$pre}collection WHERE aid=$rs[aid]"));
        $rs[much]=$MUCH;
        $db->query("UPDATE {$pre}article SET collection='$rs[much]' WHERE aid='$rs[aid]' ");
    }
    $fidDB[listorder]=10;     //收藏最多
}
elseif($job=='digg'){
    $fidDB[listorder]=7;     //顶次数最多
}else{
    $fidDB[listorder]=1;   //发布时间
}
$listdb=ListThisSort($rows);        //文章列表
$showpage=getpage("{$pre}article","WHERE yz=1","?",$rows);    //分页
require(ROOT_PATH."inc/head.php");
require(html("countlist"));  //模板文件名
require(ROOT_PATH."inc/foot.php");
//伪静态处理
if($webdb[NewsMakeHtml]==2)
{
    $content=ob_get_contents();
    ob_end_clean();
    ob_start();
    $content=fake_html($content);
    echo "$content";
}
?>

再新建countlist.htm在对应风格模板目录下,默认在template/default, 代码如下:

<!--
<?php
print <<<EOT
-->
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" class="MainTable">
  <tr>
    <td width="100%" height="393" valign="top" class="Main">
      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dragTable">
        <tr>
          <td class="head">
            <h3 class="L"></h3>
            <span class="TAG"><a href="countlist.php">发布时间</a> <a href="?job=hits">浏览最多</a> <a href="?job=comment">评论最多</a> <a href="?job=collection">收藏最多</a> <a href="?job=digg">被顶最多</a></span>
            <h3 class="R"></h3>
          </td>
        </tr>
        <tr>
          <td class="middle">
         <!--
EOT;
foreach($listdb AS $key=>$rs){
$target=$rs[target]?'_blank':'_self';
print <<<EOT
-->   <table width="100%" border="0" cellspacing="0" cellpadding="0" >
              <tr>
                <td class="title"><a href="bencandy.php?fid=$rs[fid]&id=$rs[aid]" target="$target" title='$rs[full_title]'><b>$rs[title]</b></a>  --- ({$rs[posttime]})</td>
              </tr>
            </table>
            <!--
EOT;
}
print <<<EOT
-->
            <div class="page">$showpage</div>
          </td>
        </tr>
        <tr>
          <td class="foot">
            <h3 class="L"></h3>
            <h3 class="R"></h3>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<!--
EOT;
?>
-->

赞一波!2

文章评论

全部评论