歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 23, 2024, 10:00:13 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  模版設計  |  最活躍的網誌問題仍是沒有解決 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 最活躍的網誌問題仍是沒有解決  (閱讀 21367 次)
nokia
新手見習
*
文章: 10


檢視個人資料
« 於: 一月 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"}
已記錄
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #1 於: 一月 18, 2006, 09:07:55 下午 »

Hi, nokia

你的 LifeType是哪一個版本?
除了模版之外,你還有修改哪些地方?

你有修改過
/class/summary/dao/summarystats.class.php
這個檔案嗎?
« 最後編輯時間: 一月 18, 2006, 09:09:29 下午 由 bibicall » 已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #2 於: 一月 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
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #3 於: 一月 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行刪除掉或在前面加上 // 註解,這樣就可以了。
總之,我改回原來的,最活躍的網誌仍是沒有出現。真是傷腦筋。
已記錄
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #4 於: 一月 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.
                       " WHERE a.date >= ".$this->_sevenDaysAgo." AND a.date <= ".$this->_now."
                       GROUP BY a.blog_id ORDER BY rank DESC ";

將那一行刪掉試試看
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #5 於: 一月 19, 2006, 05:16:17 下午 »

bibicall 您的回覆真是快,可是照您所說的刪掉那一行,這個摘要會變成空白一片,而且把剛刪掉的那一行貼回去還不行,要複製一個全新的檔案才會再度出現,真是傷腦筋。還有沒有其他方法。麻煩您了。
已記錄
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #6 於: 一月 19, 2006, 05:48:44 下午 »

你可能不小心多刪掉(或少刪掉)一個 「 " 」
你試試看我上傳的檔案
這是我目前正常使用的檔案
如果還是不行,你在用原始的檔案覆蓋回去
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #7 於: 一月 19, 2006, 08:35:04 下午 »

還是不行,也用了您所提供的檔案。雖然沒解決,還是感謝您。
已記錄
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #8 於: 一月 19, 2006, 09:00:12 下午 »

hi nokia:

把你的 class/summary/action/summarydefaultaction.class.php 打包後看是丟上來或是提供個下載的連結,我幫你看看這裡有沒有問題。

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #9 於: 一月 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
已記錄

nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #10 於: 一月 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
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #11 於: 一月 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
« 最後編輯時間: 一月 20, 2006, 12:30:09 下午 由 markwu » 已記錄

nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #12 於: 一月 22, 2006, 03:25:44 下午 »

不好意思,目前正在放假中,而且MARK所說的一些資料要上傳的部分我亦不懂,因為我不是主要架站人,而且我有改過的部分我都複製回去了,問題是我還沒更改時就已經這樣了,我會連絡他來試試看,謝謝了。
已記錄
nokia
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #13 於: 二月 04, 2006, 08:26:31 上午 »

真的感謝MARK,根據消息回傳,果然是少了那一個+,謝謝所有人的辛苦,可是為什麼會造成這種情況呢?
已記錄
james
版主
超級會員
*****
文章: 823


哼!!你不說,誰會知道你做過那些修改呢!? (丟滑鼠~~)


檢視個人資料 個人網站
« 回覆文章 #14 於: 二月 04, 2006, 11:14:08 上午 »

真的感謝MARK,根據消息回傳,果然是少了那一個+,謝謝所有人的辛苦,可是為什麼會造成這種情況呢?
呵~~少了那個"+"號 sql語法就錯囉  吐舌頭
所以當然會出現那個錯誤訊息囉 ^_^ (亂入~逃 XD)

James.
已記錄

記得發問前,先使用搜尋功能找找看有沒相關的解答。
如果找不到,請依照如何在LifeType論壇發問來提問喔。
頁: [1]
LifeType 中文開發論壇  |  開發  |  模版設計  |  最活躍的網誌問題仍是沒有解決 « 上篇主題 下篇主題 »
    前往: