迴響

### Movable Type 使用手冊：迴響

« 目錄

- 迴響

- 預覽迴響
- 發表迴響出錯

# 迴響

Movable Type 具備有內建的迴響系統功能。妳可以選擇特定的文章項目來編輯，然後找到編輯迴響的區域，於是也可以修改特定文章項目的迴響內容。迴響都會列在這邊，妳祇要在迴響作者的名字上點選，就可以在結果頁面中修改迴響內容。妳同時也可以先核選某些迴響的核選框，然後按下`刪除所選`按鈕來刪除迴響。

跟 Movable Type 一起發行的預設模版中，就已經納入了迴響的功能了。也就是說，妳根本不需要另外再編輯迴響模版，就已經可以使用迴響功能。在這組預設的模版中，迴響會以彈出式視窗呈現（也就是在主索引模版中的鏈結），也會出現在單篇彙整頁面裡。妳可以藉由改變合適的模版來修改這個預設的作用方式。

Movable Type 的迴響系統可以有兩種運作方式（也可以同時併行）：

- 嵌入
  如果妳用了單篇彙整（請參見彙整小節），而要讓每一個彙整頁面都把該文章項目的迴響包含其中，妳可能會用如下的模版：

      <p><font class="title"><$MTEntryTitle$></font></p>
      <$MTEntryBody$>
      <MTComments>
      <$MTCommentBody$>
      <font class="post">由 <$MTCommentAuthorLink$> 所發表</font><br /><br />
      </MTComments>

  事實上預設的單篇彙整模版就包含了一樣的結構。

- 彈出式視窗
  如果妳使用了任何其他種類的彙整 -- 也就是說在同一頁裡會有不祇一則文章項目的時候 -- 把相對應的迴響鑲嵌其中似乎就不是很合適的作法。在這種情況下， Movable Type 也支援動態生成的彈出式視窗，來讓妳顯示相對應的迴響（ &agrave; la Blog Voices 之類的）。妳可以在跟著 Movable Type 一併釋出的列出迴響模版中看到這樣的作法：

      <MTComments>
      <$MTCommentBody$>
      <font class="post">由 <$MTCommentAuthorLink$> 所發表</font><br /><br />
      </MTComments>

  下列的 Javascript 會在彈出式視窗的鏈結中用到：

      <script type="text/javascript">
      function OpenComments (c) {
          window.open(c,
                     'comments',
                     'width=480,height=480,scrollbars=yes,status=yes');
      }
      </script>

  緊接著這個 Javascript 會在下列的網頁碼中被叫用：

      <MTEntryIfAllowComments>
      <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href);
      return false">迴響 (<$MTEntryCommentCount$>)</a>
      </MTEntryIfAllowComments>

當然，在這種情境下，妳也會想要提供某份表格，讓讀者可以輸入新的迴響。這份表格看起來可能像是這樣：

    <form method="post" action="<$MTCGIPath$><$MTCommentScript$>">
    <input type="hidden" name="entry_id" value="<$MTEntryID$>">
    姓名： <input name="author"><p>
    E-mail 地址： <input name="email"><p>
    網頁網址： <input name="url"><p>
    迴響內容： <textarea name="text" rows="10" cols="50"></textarea><p>
    <input type="submit" name="preview" value="預覽">
    <input type="submit" name="post" value="送出">
    </form>

如果妳正在使用靜態/嵌入式迴響，請注意妳得按照下列的範例多增加一個隱藏的輸入欄位：

    <input type="hidden" name="static" value="1">

這一列會告訴系統妳正在使用嵌入式迴響，所以需要強迫系統在某人發表了新的迴響之後，重建相關的彙整頁面和索引頁面。

同時請注意，不論是在哪一種情況 -- 嵌入式迴響或彈出式迴響 -- 下，妳的索引頁面都會在某個人發表了迴響後被重建，同時也會更新該則文章項目的迴響計數器（請參見模版標籤中的 `MTEntryCommentCount` ）。除此之外，如果妳正在使用嵌入式迴響的話，該則文章項目的彙整頁面也會被重建，好讓新的迴響可以增加到那份單篇彙整下方。

## 預覽迴響

Movable Type 也內建了預覽迴響的功能，所以妳的讀者可以在發表迴響之前先行預覽。這個功能同樣地也提供在預設的模版之中；如果妳想要把這個功能拿掉的話，僅需要從迴響表格裡刪去`預覽`按鈕即可。預覽迴響的板面安排則是由`預覽迴響`模版所定義的，妳可以用 `<$MTCommentPreview*$>` 標籤附加上全域標籤屬性 `encode_html` 來做出可以編輯的預覽迴響表格；這麼一來，讀者不但可以預覽他們將發表的迴響，還可以再行編輯，最後纔真的送出。預設的模版當中就有這麼一個例子。

當妳要建立可編輯的預覽迴響模版時，妳都得在妳的`預覽迴響`和`發表迴響出錯`模版中加入這一個隱藏的輸入欄位：

    <input type="hidden" name="static" value="<$MTCommentPreviewIsStatic$>">

這一個神奇的標籤會告訴系統讀者到底是從單篇彙編發表迴響的，還是從彈出式視窗。所以在迴響發表之後，使用者會被轉到正確的頁面去。

當然妳也可以再把其他對這一篇文章項目所發表的迴響也一起列出來，祇需要用標準的 <MTComments> 容器標籤就可以辦到：

    之前的迴響：
    <MTComments>
    <$MTCommentBody$>
    由 <$MTCommentAuthorLink$> 於 <$MTCommentDate$> 所發表
    </MTComments>

## 發表迴響出錯

如果在發表迴響的時候出了差錯 -- 像是說妳不允許匿名發表迴響，可是要發表迴響的讀者卻沒有提供名字或E-mail 地址等資訊的情況 -- 這個時候妳可以使用`迴響出錯模版`來決定要讓讀者看到怎麼樣的錯誤訊息。妳也可以用這個模版來提供另一個表格，讓讀者得以把錯誤的地方更正，然後重新發表（或預覽）迴響。事實上預設的模版組合中，就有一個這樣的`迴響出錯模版` ( http://www.movabletype.org/default_templates.shtml ) 。

Copyright © 2001-2003 Six Apart. All Rights Reserved.