LifeType 中文開發論壇

支援 => 使用與操作 => 主題作者是: bibicall 於 五月 31, 2005, 03:29:05 下午



主題: Summary「最近發表的文章」會重複
作者: bibicall五月 31, 2005, 03:29:05 下午
請問有人跟我一樣嗎?
發表文章時如果選了兩個不同的文章分類
在Summary「最近發表的文章」裡
那篇文章就會出現兩次 ^o)
將文章的分類修改成1個
Summary就只顯示一篇
這樣算是bug嗎?

我的Summary有改過

summarystats.class.php修改部分
程式碼:
function getRecentArticles( $maxPosts )
{  
    ........
    while( ($row = $result->FetchRow()) && ($i < $maxPosts) ) {
         //if (!in_array($row["blog_id"], $blogs))
         //{
         //     $blogs[] = $row["blog_id"];
               array_push( $posts, $articles->_fillArticleInformation($row) );
         //      $i++;
         //}
    }
    return $posts;
}


還有Mark前輩說的部分
引用自: markwu
如果你真的只要最後 15 篇,從改 SQL 著手是最快的吧,你看一下 getRecentArticles() 中的 SQL,

1. 把 AND TO_DAYS(NOW()) - TO_DAYS(a.date) < 7 拿掉。因為他只 query 最近 7 天內的文章。但是,注意喔,當你文章很多,這個可是會花很久時間的。
2. 把 $query .= " GROUP BY a.id HAVING COUNT(a.blog_id) = 1 ORDER BY a.date DESC LIMIT 0, $maxPosts"; 改為  $query .= " ORDER BY a.date DESC LIMIT 0, $maxPosts";  讓他不需再 by blogid 來作 group
3. 照 lss 說的把那一段拿掉。

應該就可以了!這是我用目測的,還沒試過,你可能要自己試試看。

另外,記得清 /tmp 下的 cache,因為你改完程式後,pLog 不知你改了,所以不會幫你清 cache。

Mark


主題: Summary「最近發表的文章」會重複
作者: markwu五月 31, 2005, 03:43:11 下午
把上面我寫的那一段 query 改為

程式碼:
$query .= " GROUP BY a.id ORDER BY a.date DESC LIMIT 0, $maxPosts";


竟然沒發現我竟然把 a.id 也拿掉了,真是的。 sorry.

Mark


主題: Re: Summary「最近發表的文章」會重複
作者: 3gboke一月 24, 2006, 05:43:01 上午
 :-S 实在不好意思翻老贴出来..
 
请问

1. 把 AND TO_DAYS(NOW()) - TO_DAYS(a.date) < 7 拿掉。因為他只 query 最近 7 天內的文章。但是,注意喔,當你文章很多,這個可是會花很久時間的。

这一段是在class/summary/dao/summarystats.class.php  里面的么?   getRecentArticles()  (行260-行309)   下好象没有此段内容 .  我用的是1.03

按照上面的方法 我已经修改了第2条  和 lss 老师的方法.. 可就没找到第1条的内容   :'(


主題: Re: Summary「最近發表的文章」會重複
作者: markwu一月 24, 2006, 11:59:39 上午
到 1.0.3 已經改了方法

程式碼:
WHERE a.date >= ".$this->_sevenDaysAgo." AND a.date <= ".$this->_now."

Mark


主題: Re: Summary「最近發表的文章」會重複
作者: 3gboke一月 24, 2006, 03:39:07 下午
 :-P  3Q
 
改成  WHERE a.date <= ".$this->_now."         就OK拉.