エントリーとコメントで掲示板。movabletype4とphp

| | コメント(0) | トラックバック(0)

CPA-LABでは合格体験記の執筆者に受験生が質問できるようになっている。以前は、掲示板スクリプトを利用していたが、ムーバブルタイプでのサイト構築にしてから、どのようにすべきか悩んでいた。

で、体験記がひとつの記事でできているのだから、それに質問してもらうようにすればいいかなと考えて、やってみたものの、どうしても質問一覧みたいなページが欲しくなった。

コメントをずらずら並べるようなページであればいいのだが、以下の要件が必要

  1. 誰かがコメントをつけた時に自動更新 ← テンプレートをインデックスで作成する
  2. 体験記カテゴリ以外へのコメントは無視する ← set varを利用し、特定のカテゴリのコメントだけにする
  3. どの記事へのコメントかわかるようにする ← MTEntryCommnentを利用して、コメントでなく、エントリーを主に考える
  4. できればNEWマークつけたい ← phpで対応。よく考えればjavascriptfでもよかったか。
  5. 質問のついていない記事は下部に表示 ← MTIfNonZero tag="EntryCommentCount"を使ってループ2回にした。もっといい方法があるかも。
  6. できれば、コメントの新しい順にツリーを上にもっていきたい ← 面倒なのでやめた

ということでなんとか6以外はなんとかなったかな。

(注意点)

MT4は、デフォルトでは、記事単体ページのコメント部分へのアンカー(id)がプレフィックス付き(comment-)で出力されているのに、タグの MTCommentID は、comment-はつけずに、番号のみを出力する。なので、リンクを作成するときには、#comment-をつけるのを忘れないように。(これでだいぶ時間くった)。

コメントがつけられるたびに更新できるように工夫すれば、個別エントリーやWEBページにもいけるでしょう。

以下は覚書のソース

<!--keijiban taukenki bbs-->

<ul>

<MTEntries category="2007年度版" include_subcategories="1" >
<MTIfCommentsActive>
<MTIfNonZero tag="EntryCommentCount">

  <li>元記事:<a href="<$MTEntryPermalink archive_type="Individual"$>"><$MTEntryTitle$></a></li>
 <ul>
  <MTComments  lastn="50">
    <li><a href="<$MTEntryPermalink archive_type="Individual"$>#comment-<$MTCommentID$>"><$MTCommentAuthor default="who"$></a>
-
<?php
//
//コメントにnewマーク
//
 $last=strtotime('<$MTCommentDate format_name="rfc822"$>');
 if((($now-$last) < NEW_TERM) && ($now > $last)){
  echo '<img src=" ttp://www.cpa-lab.com/mt-static/XXXX/images/XXXX.gif" />
 }
?>
<a class="spok_navi_link" href="<$MTEntryPermalink archive_type="Individual"$>#comment-<$MTCommentID$>">
<$MTCommentBody trim="1" remove_html="1" trim_to="37"$>…
</a>(<$MTCommentDate language="ja" format="%x %X"$>)

<MTCommentsFooter>
<br>  →
<a href="<$MTEntryPermalink archive_type="Individual"$>#comments-open">もっと質問する。</a>
</MTCommentsFooter>

</li>
  </MTComments>
 </ul>
</MTIfNonZERO>
</MTIfCommentsActive>
</MTEntries>

<MTEntries category="2007年度版" include_subcategories="1" >
<MTIfCommentsActive>
<MTIfNonZero tag="EntryCommentCount">
<MTElse>
  <li><a href="<$MTEntryPermalink archive_type="Individual"$>"><$MTEntryTitle$></a>
 (まだ質問はありません)→<a href="<$MTEntryPermalink archive_type="Individual"$>#comments-open">質問する。</a>
</li>
</MTElse>
</MTIfNonZERO>
</MTIfCommentsActive>
</MTEntries>


</ul>

 

NEW_TERMは、ヘッダーにて定数を定義。当初は3日間をNEW期間と定めたので、

define("NEW_TERM",3*24*60*60);

としておいた。

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: エントリーとコメントで掲示板。movabletype4とphp

このブログ記事に対するトラックバックURL: http://www.cpa-lab.com/cgi-bin/mt/mt-tb.cgi/255

コメントする

このブログ記事について

このページは、spokが2008年1月22日 19:23に書いたブログ記事です。

ひとつ前のブログ記事は「mb_strimwidthの幅(文字数の考え方)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01