主題: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 18, 2006, 07:45:50 下午 我已經從新的一個summary中從新修改,並且兩邊互相對照,仍是沒有結果。網址是http://140.111.107.2/blog/summary.php
我看全新的summary最活躍的網誌後面都會有一個RSS,可是這一個有缺失的summary後面並沒有,是不是在其他地方出了問題呢,我已經找了論壇裡面的好多文章,還是不知為什麼會這樣,請大家協助解決吧。 附上原始檔如下 {include file="summary/header.template" selected="index"} <div id="column-left"> <form id="loginForm" method="post" action="admin.php"> <fieldset class="inputField"> <h4>{$locale->tr("login")}</h4> <div class="field"> <label for="userName">{$locale->tr("username")}</label> <input type="text" tabindex="10" name="userName" id="userName" value="" maxlength="50" /> </div> <div class="field"> <label for="userPassword">{$locale->tr("password")}</label> <input type="password" tabindex="11" name="userPassword" id="userPassword" maxlength="50" /> </div> <input type="submit" class="button" name="Login" value="{$locale->tr("login")}" tabindex="12" /> <input type="hidden" name="op" value="Login" /> <br/> <a href="?op=resetPasswordForm">{$locale->tr("password_forgotten")}</a> </fieldset> </form> <h4>{$locale->tr("summary_most_read_articles")} {if $readestBlogs} <a href="{$url->getRssUrl()}?summary=1&type=mostread"> <img src="{$url->getUrl("/imgs/rss_logo_small.gif")}" alt="RSS" /></a> {/if} </h4> {foreach name=readest from=$readestBlogs item=post} {if $smarty.foreach.readest.first} <ul class="itemList"> {/if} {assign var="blog" value=$post->getBlogInfo()} {assign var="url" value=$blog->getBlogRequestGenerator()} <li class="item"> <a href="{$url->postPermalink($post)}">{$post->getTopic()|strip_tags}</a> ({$post->getNumReads()})<br /> </li> {if $smarty.foreach.readest.last} </ul> {/if} {/foreach} </ul> <h4>{$locale->tr("summary_most_active_blogs")} {if $activeBlogs} <a href="{$url->getRssUrl()}?summary=1&type=mostactiveblogs"> <img src="{$url->getUrl("/imgs/rss_logo_small.gif")}" alt="RSS" /></a> {/if} </h4> <ul class="itemList"> {foreach from=$activeBlogs item=blog} {assign var="url" value=$blog->getBlogRequestGenerator()} <li class="item"><a href="{$url->blogLink()}">{$blog->getBlog()|strip_tags}</a></li> {/foreach} </ul> </div> <div id="maincolumn"> {include file="summary/recent.template"} </div> <div id="column-right"> <form id="searchForm" method="post" action="{$smarty.server.PHP_SELF}"> <fieldset class="inputField"> <h4>{$locale->tr("summary_search_blogs")}</h4> <div class="field"> <label for="searchTerms">{$locale->tr("search_terms")}</label><br /> <input type="text" tabindex="20" name="searchTerms" id="searchTerms" value="" /> </div> <input type="hidden" name="op" value="summarySearch" /> <input type="submit" class="button" name="summarySearch" value="{$locale->tr("search")}" tabindex="21" /> </fieldset> </form> <h4>{$locale->tr("summary_most_commented_articles")} {if $commentedPosts} <a href="{$url->getRssUrl()}?summary=1&type=mostcommented"> <img src="{$url->getUrl("/imgs/rss_logo_small.gif")}" alt="RSS" /></a> {/if} </h4> {foreach name=commented from=$commentedPosts item=post} {if $smarty.foreach.commented.first} <ul class="itemList"> {/if} {assign var="blog" value=$post->getBlogInfo()} {assign var="url" value=$blog->getBlogRequestGenerator()} <li class="item"> <a href="{$url->postPermalink($post)}">{$post->getTopic()|strip_tags}</a> ({$post->getTotalComments()})<br /> </li> {if $smarty.foreach.commented.last} </ul> {/if} {/foreach} </div> {include file="summary/footer.template"} 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: bibicall 於 一月 18, 2006, 09:07:55 下午 Hi, nokia
你的 LifeType是哪一個版本? 除了模版之外,你還有修改哪些地方? 你有修改過 /class/summary/dao/summarystats.class.php 這個檔案嗎? 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: lss 於 一月 18, 2006, 10:50:29 下午 hi nokia:
我假設你只有改模版,沒有動過 bibicall 版主所說的檔案。除了那個,還有 class/summary/summarydefaultaction.class.php 我也假設你沒動過。如果有動過,請先把他復原吧。 剩下的,目前我猜想唯一可能的原因是 summary 模版 cache 在你之前修改錯誤時的狀態。為了效能, summary 頁面是有做 cache 的,在一定的時間之後才會更新資料。所以你所做的模版更動不會立即生效,你試試把 tmp/summary 目錄清除後,重新連一次摘要網頁看看。 還有,預設的 summary 模版能工作嗎?若可以,我們可以確定問題在你修改後的模版,若不行,問題可能出在你修改了上述的兩個 class/summary 裡的檔案。 記得先清除 ./tmp/summary 目錄再確認。 lss 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 19, 2006, 04:21:59 下午 我已經遵照大家所說的將檔案復原了,可是最活躍網誌還是沒有出現,我也清除了 ./tmp/summary ,雖然之前我有更改過/class/summary/dao/summarystats.class.php,可是我是依照論壇中別人所提供的增加最新發表的文章,如下
修改 ./class/summary/dao/summarystats.class.php 找到(從後面開始找比較快,約296行開始) while( ($row = $result->FetchRow()) && ($i < $maxPosts) ) { // if (!in_array($row["blog_id"], $blogs)) // { // $blogs[] = $row["blog_id"]; array_push( $posts, $articles->_fillArticleInformation($row) ); // $i++; // } } 將上面綠色的那5行刪除掉或在前面加上 // 註解,這樣就可以了。 總之,我改回原來的,最活躍的網誌仍是沒有出現。真是傷腦筋。 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: bibicall 於 一月 19, 2006, 04:57:09 下午 我假設你是使用1.02版本
請你開啟 class/summary/dao/summarystats.class.php 檢查: function getMostActiveBlogs( $maxBlogs = 0 ) →約180行左右 引用 function getMostActiveBlogs( $maxBlogs = 0 ) { $prefix = $this->getPrefix(); $query = "SELECT COUNT(*) as t, SUM((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) + 1)) ) as rank, b.* FROM {$prefix}articles AS a INNER JOIN {$prefix}blogs AS b ON b.id=a.blog_id AND b.status=".BLOG_STATUS_ACTIVE. " GROUP BY a.blog_id ORDER BY rank DESC "; 將那一行刪掉試試看 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 19, 2006, 05:16:17 下午 bibicall 您的回覆真是快,可是照您所說的刪掉那一行,這個摘要會變成空白一片,而且把剛刪掉的那一行貼回去還不行,要複製一個全新的檔案才會再度出現,真是傷腦筋。還有沒有其他方法。麻煩您了。
主題: Re: 最活躍的網誌問題仍是沒有解決 作者: bibicall 於 一月 19, 2006, 05:48:44 下午 你可能不小心多刪掉(或少刪掉)一個 「 " 」
你試試看我上傳的檔案 這是我目前正常使用的檔案 如果還是不行,你在用原始的檔案覆蓋回去 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 19, 2006, 08:35:04 下午 還是不行,也用了您所提供的檔案。雖然沒解決,還是感謝您。
主題: Re: 最活躍的網誌問題仍是沒有解決 作者: lss 於 一月 19, 2006, 09:00:12 下午 hi nokia:
把你的 class/summary/action/summarydefaultaction.class.php 打包後看是丟上來或是提供個下載的連結,我幫你看看這裡有沒有問題。 lss 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: markwu 於 一月 19, 2006, 10:27:32 下午 Hi nokia:
你這樣是找不出問題的! 1. 看看有沒有 error.log http://forum.lifetype.org.tw/index.php?topic=2.0,包含 lifetype/tmp 下的 sql_error.loh 2. 如果有 error.log 請把 error 的訊息 post 上來 仔細看我給你的連結,把那些問問題要準備的資訊準備好。否則很難猜。 :-( Mark 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 20, 2006, 10:49:36 上午 請幫我看一下SQL_error.log的資料
19-01-2006 17:15:44 ERROR - The following query = SELECT COUNT(*) as t, SUM((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) 1)) ) as rank, b.* FROM plog_articles AS a INNER JOIN plog_blogs AS b ON b.id=a.blog_id AND b.status=1 WHERE a.date >= 20060112171544 AND a.date <= 20060119171544 GROUP BY a.blog_id ORDER BY rank DESC LIMIT 0,30 generated the following error message = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1)) ) as rank, b.* FROM plog_articles AS a ' at line 1 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: markwu 於 一月 20, 2006, 12:28:25 下午 請幫我看一下SQL_error.log的資料 19-01-2006 17:15:44 ERROR - The following query = SELECT COUNT(*) as t, SUM((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) 1)) ) as rank, b.* FROM plog_articles AS a INNER JOIN plog_blogs AS b ON b.id=a.blog_id AND b.status=1 WHERE a.date >= 20060112171544 AND a.date <= 20060119171544 GROUP BY a.blog_id ORDER BY rank DESC LIMIT 0,30 generated the following error message = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1)) ) as rank, b.* FROM plog_articles AS a ' at line 1 我真的建議你,下次如果不確定請不要亂改核心程式。如果你還是執意要改要練習,那我很支持,但是至少先備份一下你改之前的檔案,這樣發生錯誤能回復。 這個錯誤『我猜』是因為你把 sql 裡面的 + 給去掉了。 原來的: 引用 function getMostActiveBlogs( $maxBlogs = 0 ) { $prefix = $this->getPrefix(); $query = "SELECT COUNT(*) as t, SUM((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) + 1)) ) as rank, b.* 下面是你的(我猜的): 引用 function getMostActiveBlogs( $maxBlogs = 0 ) { $prefix = $this->getPrefix(); $query = "SELECT COUNT(*) as t, SUM((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) 1)) ) as rank, b.* 我要你看哪一文章,不知道你是否有看?裡面有說除了 error.log 外,還要把改過的程式、模版 附上來,這樣才有辦法來幫你除錯。 如果你可以一開始把這些資料準備齊全,那就不用來來回回好幾遍!下次請務必記得。 Mark 主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 一月 22, 2006, 03:25:44 下午 不好意思,目前正在放假中,而且MARK所說的一些資料要上傳的部分我亦不懂,因為我不是主要架站人,而且我有改過的部分我都複製回去了,問題是我還沒更改時就已經這樣了,我會連絡他來試試看,謝謝了。
主題: Re: 最活躍的網誌問題仍是沒有解決 作者: nokia 於 二月 04, 2006, 08:26:31 上午 真的感謝MARK,根據消息回傳,果然是少了那一個+,謝謝所有人的辛苦,可是為什麼會造成這種情況呢?
主題: Re: 最活躍的網誌問題仍是沒有解決 作者: james 於 二月 04, 2006, 11:14:08 上午 真的感謝MARK,根據消息回傳,果然是少了那一個+,謝謝所有人的辛苦,可是為什麼會造成這種情況呢? 呵~~少了那個"+"號 sql語法就錯囉 :-P 所以當然會出現那個錯誤訊息囉 ^_^ (亂入~逃 XD) James. |