国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

emlog熱門日志修改具體介紹

2024-08-30 19:06:39
字體:
來源:轉載
供稿:網友

emlog博客程序默認是的總的瀏覽數排序,這段熱門日志的代碼在include/model/log_model.php文件中第342~355行,官方默認的log_model.php文件,你自己修改過的,我也不知道在哪行.

其中第346行的mysql查詢語句,代碼如下:

$sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY views DESC, comnum DESC LIMIT 0, $num";

從emlog_blog讀出不隱藏(hide='n')和是日志的(type='blog',這個去掉了頁面)日志,ORDER BY views DESC,comnum DESC LIMIT 0,$num這里$num設置顯示的條數比如5條,那么以views(瀏覽數)降序排列,如果瀏覽數相同的話以評論數定先后順序,取5條。

從上面代碼中可以看出,越早以前的文章的話閱讀數肯定是比較多,那么導致這個熱門日志排行上的文章幾乎是不變的,所以個人認為有點不妥.

下面來改造代碼(屬于官方解釋的HACK程序,有一定的危險,操作前先備份數據).

1.熱門日志改成熱評日志(以評論數作為排行,評論數相同以瀏覽數定先后順序),只要交換下views和comnum就可以了,修改后的代碼如下:

$sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY comnum DESC,views DESC LIMIT 0, $num";

PS:適合平常日志評論比較多的博客,如果平常評論比較少的話,變化也是不大的.

2.熱門日志改成本月熱門日志,規定取日志發表的時間范圍后以瀏覽數降序,相同瀏覽數的以評論數的降序排列,這里要分2種情況:一種是本月的,還有一種是最近30天的.

那么先來說說本月的,得到本月起點的時間戳,代碼如下:

  1. $t   =   mktime(0,0,0,date("m",time()),1,date("Y",time())); //本月起點的時間戳 $sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' and date>$t ORDER BY views DESC, comnum DESC LIMIT 0, $num"; 

修改后的完整代碼:

  1. function getHotLog($num) { 
  2.     $t   =   mktime(0,0,0,date("m",time()),1,date("Y",time()));    
  3.     $sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' and date>$t ORDER BY views DESC, comnum DESC LIMIT 0, $num";//開源軟件:Vevb.com 
  4.     $res = $this->db->query($sql); 
  5.     $logs = array(); 
  6.     while ($row = $this->db->fetch_array($res)) { 
  7.         $row['gid'] = intval($row['gid']); 
  8.         $row['title'] = htmlspecialchars($row['title']); 
  9.         $logs[] = $row
  10.         } 
  11.     return $logs
  12.     } 

那么最近30天也就簡單了,只要把$t的那個改改就可以了,代碼如下:

$t = time() - 3600 * 24 * 30;//以當前訪問的時間戳最近30天

3.全部文章按當月的瀏覽數降序排列,相同瀏覽數的按評論數降序排列,這里對數據庫就需要添加2個字段,執行下面查詢語句,數據庫前綴默認為emlog.

添加最后瀏覽的時間的字段:

ALTER TABLE emlog_blog ADD lastview bigint(20) NOT NULL default '0'

添加本月瀏覽數的字段:

ALTER TABLE emlog_blog ADD monviews mediumint(8) unsigned NOT NULL default '0'

數據庫修改完畢,下面是log_model.php程序的修改。第289~296行增加閱讀次數,這里這個執行總瀏覽數和當月瀏覽數每次瀏覽+1,還有下月清0,完整代碼如下:

  1. //[2013-05-30]更新代碼:合并update語句 
  2.  /** 
  3.   * 增加閱讀次數,修改最后閱讀時間,增加本月閱讀次數 
  4.   * 
  5.   * @param int $blogId 
  6.   */ 
  7.  function updateViewCount($blogId) { 
  8.   $this->db->query("UPDATE " . DB_PREFIX . "blog SET views=views+1 WHERE gid=$blogId"); 
  9.   $res=$this->db->query("SELECT date,lastview FROM " . DB_PREFIX . "blog WHERE gid=$blogId"); 
  10.   $row = $this->db->fetch_array($res); 
  11.         if(date("m",time())!=date("m",$row['lastview']) && date("m",time())!=date("m",$row['date'])) 
  12.   {$this->db->query("UPDATE " . DB_PREFIX . "blog SET monviews=0,lastview=".time());} 
  13.   $this->db->query("UPDATE " . DB_PREFIX . "blog SET monviews=monviews+1,lastview=".time()." WHERE gid=$blogId"); 
  14.  } 
  15.  
  16. //[2012-11-30]代碼: 
  17.  
  18. /** 
  19. * 增加閱讀次數,修改最后閱讀時間,增加本月閱讀次數 
  20. * 
  21. * @param int $blogId 
  22. */ 
  23. function updateViewCount($blogId) { 
  24.     $this->db->query("UPDATE " . DB_PREFIX . "blog SET views=views+1 WHERE gid=$blogId");//總瀏覽數每次瀏覽+1 
  25.     $res=$this->db->query("SELECT date,lastview FROM " . DB_PREFIX . "blog WHERE gid=$blogId");//查詢日志發表時間和最后瀏覽時間 
  26.     $row = $this->db->fetch_array($res); 
  27.     if(date("m",time())!=date("m",$row['lastview']) && date("m",time())!=date("m",$row['date']))//判斷當前時間的月份和最后瀏覽時間的月份,以及判斷最后瀏覽時間的月份和發表時間的月份是否一樣。 
  28.     {$this->db->query("UPDATE " . DB_PREFIX . "blog SET monviews=0");//執行當月瀏覽數清0 
  29.     $this->db->query("UPDATE " . DB_PREFIX . "blog SET lastview=".time());//設置最后瀏覽時間到當前時間 
  30.     $this->db->query("UPDATE " . DB_PREFIX . "blog SET monviews=monviews+1 WHERE gid=$blogId");//執行當月瀏覽數+1 
  31.     $this->db->query("UPDATE " . DB_PREFIX . "blog SET lastview=".time()." WHERE gid=$blogId");//更新最后瀏覽時間到當前時間 
  32.     } 

修改熱門日志代碼中的views改為monviews,代碼如下:

$sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY monviews DESC, comnum DESC LIMIT 0, $num";

PS:最后再說幾句,這里只是簡單的修改下,還有很多種修改熱門日志排列的方法.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁化县| 岚皋县| 尖扎县| 洛阳市| 磐安县| 焦作市| 衡阳市| 建湖县| 盐源县| 东乌| 尼玛县| 马鞍山市| 阳东县| 石狮市| 岳普湖县| 临西县| 运城市| 岳阳县| 乌鲁木齐市| 闵行区| 平乡县| 明光市| 潜江市| 阜城县| 阳曲县| 宁河县| 德化县| 潞城市| 温宿县| 三河市| 大丰市| 东乡族自治县| 茶陵县| 淮安市| 南雄市| 德江县| 兴文县| 屏东县| 教育| 宽甸| 上思县|