エントリーとコメントで掲示板。movabletype4とphp
CPA-LABでは合格体験記の執筆者に受験生が質問できるようになっている。以前は、掲示板スクリプトを利用していたが、ムーバブルタイプでのサイト構築にしてから、どのようにすべきか悩んでいた。
で、体験記がひとつの記事でできているのだから、それに質問してもらうようにすればいいかなと考えて、やってみたものの、どうしても質問一覧みたいなページが欲しくなった。
コメントをずらずら並べるようなページであればいいのだが、以下の要件が必要
- 誰かがコメントをつけた時に自動更新 ← テンプレートをインデックスで作成する
- 体験記カテゴリ以外へのコメントは無視する ← set varを利用し、特定のカテゴリのコメントだけにする
- どの記事へのコメントかわかるようにする ← MTEntryCommnentを利用して、コメントでなく、エントリーを主に考える
- できればNEWマークつけたい ← phpで対応。よく考えればjavascriptfでもよかったか。
- 質問のついていない記事は下部に表示 ← MTIfNonZero tag="EntryCommentCount"を使ってループ2回にした。もっといい方法があるかも。
- できれば、コメントの新しい順にツリーを上にもっていきたい ← 面倒なのでやめた
ということでなんとか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

コメントする