LifeType 中文開發論壇

支援 => 安裝與設定 => 主題作者是: evenrain 於 四月 06, 2005, 11:15:08 下午



主題: 被閱讀次數
作者: evenrain四月 06, 2005, 11:15:08 下午
今天剛把 plog 升級到 1.0,發現一個很有趣的問題
在 summary page 右下的最多人閱讀文章似乎重新計算?
但是進到管理面板, 文章閱讀總數看起來又像是正常的,
變成兩邊資料不太同步了 :p


主題: 被閱讀次數
作者: markwu四月 06, 2005, 11:44:23 下午
這不是 bug... 這是因為 cache 的關係!

你可以做一個實驗,把 template_cache, http_cahce 全關掉,你看他會不會一致。

如果每讀一次文章就要去 update 一次,那麼有 cache 跟 沒 cache 就一樣了! :-)

Mark


主題: 被閱讀次數
作者: evenrain四月 06, 2005, 11:50:52 下午
我想 mark 你誤會我的意思 :)
由於我是從舊版本升級上來,
所以原本就會有每篇文章閱讀次數的資料了,
但是 summary page 顯示的最多人閱讀文章
跟我記憶中有極大的出入,不曉得是什麼狀況 @_@


主題: 被閱讀次數
作者: Anonymous四月 06, 2005, 11:51:32 下午
BTW, 我的 template_cache, http_cahce 兩個都是關掉的 :)


主題: 被閱讀次數
作者: markwu四月 07, 2005, 12:03:45 上午
引用自: evenrain
我想 mark 你誤會我的意思 :)
由於我是從舊版本升級上來,
所以原本就會有每篇文章閱讀次數的資料了,
但是 summary page 顯示的最多人閱讀文章
跟我記憶中有極大的出入,不曉得是什麼狀況 @_@


瞭解!我剛剛去看了一下,最多人閱讀的是 『半身人(26)』,在管理介面中是幾次呢?

Mark


主題: 被閱讀次數
作者: Anonymous四月 07, 2005, 10:37:30 上午
引用自: markwu
引用自: evenrain
我想 mark 你誤會我的意思 :)
由於我是從舊版本升級上來,
所以原本就會有每篇文章閱讀次數的資料了,
但是 summary page 顯示的最多人閱讀文章
跟我記憶中有極大的出入,不曉得是什麼狀況 @_@


瞭解!我剛剛去看了一下,最多人閱讀的是 『半身人(26)』,在管理介面中是幾次呢?

Mark


ㄟ 我的意思是 我確定有很多篇的閱讀次數大於 26
但是選出來的卻是這幾篇
btw, 去哪裡看個別篇數的閱讀次數啊 XD


主題: 被閱讀次數
作者: evenrain四月 07, 2005, 10:44:36 上午
老是忘了留 ID...
上面是我 post 的 :$


主題: 被閱讀次數
作者: markwu四月 07, 2005, 11:20:33 上午
ㄟ... 我到現在才『瞭解』你問的問題。 sigh ... 真是不好意思。

你可以幫忙做個實驗嗎?用 topreadpost 這個 plugin 來看個別網誌的文章閱讀次數跟摘要顯示的是不是一樣。

另外,你是對的!管理介面我竟然找不到閱讀次數。 :( 怪了!為什麼我一直以為有。

MArk


主題: 被閱讀次數
作者: evenrain四月 07, 2005, 12:33:24 下午
引用自: markwu
ㄟ... 我到現在才『瞭解』你問的問題。 sigh ... 真是不好意思。

你可以幫忙做個實驗嗎?用 topreadpost 這個 plugin 來看個別網誌的文章閱讀次數跟摘要顯示的是不是一樣。

另外,你是對的!管理介面我竟然找不到閱讀次數。 :( 怪了!為什麼我一直以為有。

MArk


裝好了 麻煩你看一下 (http://blog.evenrain.net/index.php?blogId=1)
以我的 blog 來說,最多閱覽次數的應該是 輕鬆架設pLog (2596)
但是 summary page 卻沒抓到這篇?


主題: 被閱讀次數
作者: markwu四月 07, 2005, 02:22:34 下午
詭異!呵呵。可能是 summary 的 sql,得來看看了。

Mark


主題: 被閱讀次數
作者: markwu四月 07, 2005, 02:32:31 下午
你看一下在 /class/summary/dao/summarystates.class.php 這一支程式。裡面 getMostReadArticles 這個 function 中的 sql:

程式碼:
            $prefix = $this->getPrefix();
$query = " SELECT
                                   a.id as id,
                                   a.properties as properties,
                                   a.date as date,
                                   a.user_id as user_id,
                                   a.blog_id as blog_id,
                                   a.status as status,
                                   a.num_reads as num_reads,
                                   a.slug as slug,
                                   t.article_id as article_id,
                                   t.text as text
                               FROM {$prefix}articles a, {$prefix}articles_text t, {$prefix}blogs b
                               WHERE a.id = t.article_id
                                   AND a.status = ".POST_STATUS_PUBLISHED."
      AND TO_DAYS(NOW()) - TO_DAYS(date) < 7
      AND a.blog_id = b.id AND b.status = ".BLOG_STATUS_ACTIVE;


他是去選 7 天內被閱讀做多次的文章,而不是針對所有的文章去做排序。這應該就是原因了吧!如果你要修改,就修改這一句吧:

程式碼:
AND TO_DAYS(NOW()) - TO_DAYS(date) < 7 


不過建議別去動他。因為你要是真的全部文章一起 query, 那是會很慢的,請自行斟酌。

Mark


主題: 被閱讀次數
作者: evenrain四月 07, 2005, 02:58:39 下午
引用自: markwu
你看一下在 /class/summary/dao/summarystates.class.php 這一支程式。裡面 getMostReadArticles 這個 function 中的 sql:

他是去選 7 天內被閱讀做多次的文章,而不是針對所有的文章去做排序。這應該就是原因了吧!如果你要修改,就修改這一句吧:

程式碼:
AND TO_DAYS(NOW()) - TO_DAYS(date) < 7 


不過建議別去動他。因為你要是真的全部文章一起 query, 那是會很慢的,請自行斟酌。

Mark


嗯 我剛剛也看到這段 SQL 了,謝謝囉 :)