MovableType で本サイトとは別の
ブログにエントリを一つ作り、そのエントリの
コメント欄を掲示板や一言 BBSとして利用する方法が広く使われているようです。しかし、この方法では返信された
コメントが時系列で一列に並んでしまうために、特定の話題について読むのが大変になります。
もし、ビジタがトピックに応じて自由にエントリを立てることができれば、更に柔軟に、効果的に掲示板を運用することが可能になるのではないでしょうか? このエントリでは、これを実現する
MovableType のための小さな
CGI を紹介し、ビジタが自由にトピック立てできる掲示板の作成方法を紹介しています。
MTBBSを
ダウンロードできます。
MTBBS

3a2819a2fa9b0b0accd6676720b10371
ver.0.20,
'06/05/19,
1908butes,
MovableType 3.2ja2 で動作確認
- カテゴリを指定してトピック立てできるようにしました
- トピックのコメント受付け設定を上書きするようにしました
|
動作の概要
MTBBSは、実行されると
MovableType管理画面経由せずに、
MovableTypeに直接エントリを新規投稿するための
CGIです。
CGI内部から
MovableTypeの各種メソッドを呼び出し、これを実現しています。
エントリ毎の
コメント投稿フォームとは別に、新規トピック作成のためのフォームを用意し、
そこから
MTBBSを呼び出すようにします。
導入方法
- MovableType の管理画面から、掲示板として使用するブログを新規作成します
- ここで新規作成したブログのブログIDを控えておきます
ブログIDはURLにある(MT のインストールパス)/mt.cgi?ほにゃらら&blog_id=XXXのXXX(数字)部分です
- 作成したブログに投稿できるユーザを設定し、そのユーザの投稿者IDを控えておきます
投稿者IDはURLにある(MT のインストールパス)/mt.cgi?ほにゃらら&author_id=XXXのXXX(数字)部分です
- ダウンロードしたアーカイブを解凍します
- mtbbs-create-entry.cgiをエディタで開き、環境設定を行います(後述)
- mtbbs-create-entry.cgiをMovableTypeのインストールディレクトリ(mt.cgiと同じディレクトリ)にアップロードします
- mtbbs-create-entry.cgiがCGIとして動作するよう実行権限(700 or 755)を与えておきます
- 作成したブログのテンプレートを修正し、mtbbs-create-entry.cgiを呼び出します(後述)
MTBBSの環境設定
使用の前に、
mtbbs-create-entry.cgiを修正する必要があります。
mtbbs-create-entry.cgiの動作設定は、
ファイルの先頭付近に以下のような書式でまとめて記述してあります。
これ以外の部分については触る必要はありません。
- BLOG_ID
-
導入する際に控えておいたブログIDを指定します。
新規トピックは、ここで指定されたブログに新規エントリとして作成されます。
- AUTHOR_ID
-
導入する際に控えておいた投稿者IDを指定します。
新規トピックは、実際にはこの投稿者によって新規投稿されたエントリとして扱われます。
BLOG_IDで指定されたブログに対して投稿権限を持っていなければなりません。
- DEFAULT_CATEGORY_ID

-
新規トピックのカテゴリが指定されなかった場合、ここで指定されたカテゴリに投稿されます。
MovableTypeのカテゴリ管理画面から、カテゴリIDを控えておきます。
undefを指定すると、カテゴリは設定されません。
プライマリカテゴリのみ設定できます。複数のカテゴリを設定することはできません。
- INIT_STATUS
-
新規トピックの初期の公開状態です。
"公開"(MT::Entry::RELEASE())または"下書き"(MT::Entry::HOLD())を指定します。
"下書き"の場合は、ブログ管理者が手作業で新規トピックを承認(下書き状態のエントリを公開に変更)する必要があります。
- DEFAULT_ALLOW_COMMENTS

-
新規トピックのコメントの受付け状態を指定します。通常は 1 を設定し、変更の必要はありません。
- URL_ERROR
-
処理中にプログラム内部でエラーが発生した場合にリダイレクトされるページのURLを指定します。
undef を指定した場合、CGIのエラー画面が表示されます。
- URL_IPBANNED
-
新規トピックの要求があったリモートホストが、MovableTypeの拒否IPリストにあった場合、
リダイレクトされるページのURLを指定します。
undef を指定した場合、CGIのエラー画面が表示されます。
- URL_SUCCEED
-
新規トピックが正常に作成された場合にリダイレクトされるページのURLを指定します。
- CHECK_EMPTY_TITLE
- CHECK_EMPTY_TEXT
- CHECK_EMPTY_TEXT_MORE
- CHECK_EMPTY_EXCERPT
- CHECK_EMPTY_KEYWORDS
-
順に、タイトル、本文(body)、追記(extend)、概要、キーワードについて、
パラメータに1を指定すると、そのフィールドをチェックし、空欄の場合にエラーとします。
- CHECK_EMPTY_CATEGORY

-
トピック立てされる時に、カテゴリ指定を強制します。
MTBBSの使い方
掲示板として使用する
ブログで、ビジタが新規トピックを立てるためのフォームを用意します。
それぞれのフィールド名と、
MovableTypeのエントリの対応は次の通りです。
どのフィールドをどの用途に使うかは自由ですが、
掲示板
デザインで使用した
テンプレートタグと合わせておく必要があります。
例えば、トピック立てしたユーザの名前をtext_moreフィールドとした場合、
テンプレートタグには「投稿者:<$MTEntryMore$>」と書く必要があります。
フォームのフィールド名| 対応するMovableTypeのフィールド
| | title | タイトル
| | text | エントリーの内容(body)
| | text_more | 追記(extend)
| | excerpt | 概要(excerpt)
| | keywords | キーワード
| category  | プライマリカテゴリ
| |
|---|
MTBBS使用上の注意
MTBBSを便利に使うためのヒント
トラブルシューティング
- 本文・追記が <p> タグで囲まれてしまう
-
MovableType の仕様で、エントリの改行設定が"改行を変換する"に設定されている場合に発生します。
スタイルシートを使って、マージンを 0 に指定するなどして回避してください。
その他
寄せられたコメント (全 23 件中、最新 5 件まで表示しています)
試せていないので的外れかもしれませんが,投稿フォームの設置されているページのHTMLには,ブログで使用しているものと同じ文字コードが指定されているでしょうか?
例えば,ShiftJISのサイトなのに,文字コードの指定がされておらずにUTF-8でフォームが送信されてしまっている,などの理由が思いつきます。
いつもお世話になっております。
MTBBSをMT4.2で使わせていただいているのですが
ここで聞くのは間違いかもしれないのですが、これで携帯用
の掲示板を現在作成中なのですが、どうしても記事を投稿
する際に、SoftBank端末のみ文字化けが発生します。
というか、文字が何も入力されずに投稿が完了してしまいます。
DoCoMo、auは問題ないのですが、なんとかできないものでしょうか?
宜しくお願いします。
画像も一緒にアップできると良いですね。
カスタムフィールドとの連携が出来れば最高です!
MTBBS使わせていただいております!ありがとうございますっ。
そして早速なんですが…SPAM攻撃にあっています…。
CGIの知識に乏しいので、具体的な策がとれずにいます。
何かアドバイがありましたら、宜しくお願い致します!!!
む…↓このしたの確認用数字、使えそうですね。
はじめまして。
MTBBSを使用させていただいているのですが、
BBSのフォームから投稿したあとに「ページが表示されません」
というページが出ます。
BLOG IDやAUTHOR IDもすべてチェックしました。
ログイン画面は表示されませんが、投稿そのものはきちんとできています。
考えられる原因は、何でしょうか?
お忙しいとは思いますが、ご回答のほどよろしくお願いいたします。