movabletype.jp
検索

連載その1「何ができるか?コミュニティ掲示板の作成」

このドキュメントとは?

  • 既にmovable.jp内に掲載されているコミュニティ・ソリューションの解説を補強するものです。
  • Movable Type(以降 MT)を利用しているがコミュニティ・ソリューションを利用していない方を想定しています。
  • MTのテンプレートをある程度理解されている方を想定しています。
  • コミュニティ・ソリューションを利用して実際にサイト(今回は例としてカフェのウェブサイト)を作成していきます。

コミュニティ・ソリューションとは?

コミュニティ・ソリューションはソーシャルメディア的な機能(お気に入り投稿とランキング表示、掲示板など)をMTで利用可能にする物です。MT4.2からMTにバンドルされるようになりました。

オンラインでの自動登録機能や、トピックのお気に入り機能など多くの機能が利用できます。

ウェブサイトの構成

以下の構成でウェブサイトを作成します。

  • ウェブサイトトップページ > カフェトップページ
  • クラシックブログ > 本日のおすすめ
  • コミュニティ掲示板 >
    1. カフェ
      1. ご質問・ご要望
      2. 店長の独り言
    2. お客様
      1. フリートーク

更新履歴の有効化

更新履歴を有効化すると、記事/ページやテンプレートの更新履歴を保存できます。

作業中に問題が発生した場合、この更新履歴から過去の更新履歴に戻す事が可能になります。

ウェブサイトやブログの 再度メニューから [設定][全般][更新履歴] で設定が可能です。(デフォルトオン)

[記事/ページの更新履歴数] は設定通りで20のまま。

[テンプレート更新履歴数] はテンプレート修正中は多め(例:100)に設定し、通常運用に移る際にデフォルトの20に戻します。

コミュニティ掲示板の作成

既に MTサイトを構築済みとして話を進めます

インストール前だった場合は以下を参考にし、クラシックウェブサイトを作成してください。

  • ウェブサイトのURL:http://www.sixapart.com/
  • ウェブサイトのサイトパス:/home/sixapart/www/

以下の手順でコミュニティ掲示板を作成します。

  1. コミュニティ掲示板作成の手順はクラシックブログを作成するのと基本的に同じですが、作成するブログで利用する (作成するコンテンツの種類) として「コミュニティ掲示板」を選択します。
  2. コミュニティ掲示板の、サイトURLとサイトパス:forum

クラシックブログの作成(本日のおすすめブログ)

  1. 作成するブログで利用する (作成するコンテンツの種類) として「クラシックブログ」を選択します。
  2. クラシックブログの、サイトURLとサイトパス:blog

コミュニティ掲示板の初期設定

  1. mt.cgi のリネーム

    掲示板のユーザーがmt.cgiにログインし管理画面から作業できないように mt.cgi をリネームします。

    変更する名前は任意です。自分で解りやすく、他人にわかりづらいものにします。

    Linux系の場合
    $ mv mt.cgi mt-sixapart-2010.cgi
    
    Windowsの場合
    mt.cgi を右クリック > 名前の変更 > "mt-sixapart-2010.cgi"に変更
    

    mt-config.cgi に以下の1行を追加します。

    AdminScript mt-sixapart-2010.cgi
    
  2. コミュニティの設定

    [ブログメニュー] の [設定] > [コミュニティ] を選択し、[匿名での投票] のチェックを外し、[アップロード先] に[サイトパス] > [cs_image] と入力して [変更を保存] ボタンをクリックします。

  3. ユーザー登録の許可

    [システムメニュー] の [設定] > [ユーザー] を選択し、[ユーザー登録] > [コメント投稿者が...] にチェックをし、[システム管理者選択] で、コミュニティの管理者を選択しておきます。

    [ブログメニュー] の [設定] > [登録/認証] を選択し、[ユーザー登録] チェックボックスをチェックします。ここで [認証方式] でチェックを入れたものがコメント等の認証局となります。今回はOpenIDなど外部の認証システムを使わず、全員MTに登録してもらうようにしたいので、[認証方式] は [Movable Type] のみとし、"LiveJournal"、"Vox" のチェックを外します。

  4. カテゴリの設定

    掲示板トピックを分類するカテゴリの作成は、通常のブログのカテゴリの作成とは若干利用方法が異なります。掲示板では、カテゴリは二階層のみ設定できます。トップレベル (一階層目) のカテゴリは、カテゴリグループとして機能します。サブカテゴリ (二階層目) は、トピック (話題) を投稿する際に選択するカテゴリです。今回はコミュニティ掲示板に、以下のようにカテゴリを作成します。

    • カフェ
      1. ご質問・ご要望
      2. 店長の独り言
    • お客様
      1. フリートーク
  5. 新規登録ユーザーの権限設定
    • [システム]メニュー の [設定] > [権限] を選択します。
    • 権限の管理ページの [ユーザーにブログの権限を割り当てる] をクリックします。
    • 権限の付与ウィンドウが表示されるので、[(新規ユーザー)] というユーザー名を選択して [次へ] をクリックします。
    • ユーザーにあたえる権限として [ユーザー] を選択し [次へ] をクリックします。
    • 権限を許可したいコミュニティブログや掲示板を選択し [OK] をクリックします。
  6. ユーザープロフィール項目の追加

    管理者は、ユーザーのプロフィール項目をカスタマイズすることができます。これにより、コミュニティ参加者の様々なデータをプロフィール項目として表示できます。以下は例として「性別」をユーザーから取得するように出来るようにする設定です。ここで追加された情報は特に設定せずにユーザープロフィール画面に表示されます。この仕組みはMTのカスタムフィールドを使って実装されています。

    • [システム] メニューから、[カスタムフィールド] > [一覧] を選択します。
    • [フィールドを作成] をクリックし、[システムオブジェクト] から [ユーザー] を選びます。
    • 他の項目も入力します。

      これでプロフィール記入時に設定した値を聞かれるようになり、プロフィール画面にも表示されるようになります。

  7. ブログの新着記事を、ウェブサイトで表示する

    ウェブサイトのトップページで、ウェブサイト内のブログの新着記事を表示できます。そのためには、ブログが更新したときに、ウェブサイトのトップページを再構築するための設定が必要です。これを"Multiblogの再構築トリガー"と呼びます。詳しい設定方法は、以下を参照してください。

サイト構築の結果と ToDo

作成されたサイトは以下の3つから成り立っています。それぞれ作業の積み残しがありますが、ここでは紹介のみとし具体的な作業については、他のドキュメントや書籍を参考にして下さい。

  1. ウェブサイト(Six Apart Cafe トップページ)
    • デザイン(テンプレート、CSS )
    • MultiBlog 関連の設定(本日のおすすめ、と掲示板の連携)
    • 「店舗情報」や「メニュー」をウェブページで作成
  2. ブログ(本日のおすすめ)
    • デザイン(テンプレート、CSS )
  3. コミュニティ掲示板(Six Apart Cafe 掲示板)
    • デザイン(テンプレート、CSS )

コミュニティ掲示板のデザインについては他章で行います。

登録、トピック投稿の流れ

設定が完了しオープンした後の流れを解説します。

    • 登録の流れ
    • 画面右上の [登録] ボタンをクリックします。
    • 「サインアップ」画面が表示されるので、内容を記載します。
    • 入力が必須とされているものは「ユーザー名」「表示名」「電子メール」「初期パスワード」「パスワード再入力」の5つです
    • 「ウェブサイトUR」 の記入欄は必須項目ではありません。
    • 必須項目を埋めずに [サインアップ] ボタンを押した場合「パスワードは必須です。」のようにエラーとなります。
    • 各項目の入力制限は以下の通りです。
      • ユーザー名に255文字以上入力できますが、255文字でカットされます。
      • 表示名に255文字以上入力できますが、255文字でカットされます。
      • 電子メールに誤った値を記入すると「不正なメールアドレスです。」エラーになります。
      • 初期パスワードに8文字以上入力できますが、8文字でカットされます。
      • パスワード再入力に8文字以上入力できますが、8文字でカットされます。
      • ウェブサイトURLに誤った値を記入すると「URLが不正です。」エラーになります。255文字以上入力できますが、255文字でカットされます。
    • その他、カスタムフィールドで追加した項目についてと制限は以下のページを参照して下さい。サインアップ画面で表示されている「性別」項目はカスタムフィールドで追加したものです。
    • 入力後 [サインアップ] ボタンを押すと、MT側から登録したメールアドレス宛に確認メールが送られます。
    • この状態でユーザーアカウントは一旦「保留」ステータスになっているため、ユーザーはサインインできません。

    • ユーザーに届いたメールに書かれている URI(下の絵ではモザイクになっている部分)をクリックするとユーザーアカウントは「有効」となり、サインイン画面が表示されます。
    • 全体図
    • 登録時に利用規約やプライバシーポリシーの許諾を取る機能は、MTのデフォルト状態で準備されていないため、別途修正をする必要があります。
  1. トピックを投稿
    • 「トピックを投稿」をクリックします。
    • 「トピックの投稿」画面が表示されます。
    • 「トピックを投稿」する権限を持ったユーザーだった場合、「トピックの投稿」画面が表示されます。

      「サインインしてブログ記事を投稿してください。」の表示が出た場合、その文言か、画面右上の「サインイン」リンクをクリックしてください。

      サインインが完了すると、「トピック」、「本文」、「掲示板(設定された2階層カテゴリ)」プルダウンなどがあり、入力が済んだら「投稿」ボタンをクリックします。

      ただし、ブログ記事を投稿できる権限以下の「コメント投稿者」などが設定されている場合、「投稿する権限がありません。」エラーが発生し新しくトピックを投稿することはできません。

      また、権限が「ユーザー」などであれば投稿したトピックは自動で公開されますが、「ライター」などだった場合、投稿した内容は一旦保留され、公開権限をもったユーザーが公開するまでトピックは表示されません。

    • 全体図

FastCGIの利用

コミュニティ・ソリューションでは各種情報を取得する際に、毎回 mt-cp.cgi へのアクセスを行っています。

そのため利用ユーザーの多いコミュニティ・ソリューション サイトではCGIプロセスの初期化とCGIの初期化、処理後の終了処理が毎回発生し、それがオーバーヘッドとなりサーバー負荷が上昇しレスポンスが悪くなります。

そのための対策として FastCGI の利用が挙げられます。FastCGIは一度起動すると半永続的にプロセスの使いまわしが出来るためオーバーヘッドの減少に寄与します。

プロセスの終了は FastCGI のタイムアウト設定など指定したタイミングで行われます

CGIとFastCGIの起動、(待機)、終了

mt-cp.cgi を直接呼び出している箇所が多く、mt-cp.fcgi とリネームするのが難しいため、Apache の FilesMatch を利用した設定を行ってください。

<Directory "/var/www/cgi-bin/mt">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
<FilesMatch "^mt(?:-(?:comments|search|ftsearch|tb|cp))?\.cgi$">
    SetHandler fcgid-script
</FilesMatch>
</Directory>

FastCGI や PHP を最適な状態に保つため、1日や1週間に1度 httpd サービスのリスタートを行う事をオススメします。

各種メールの処理

コミュニティ・ソリューションでは色々な場面でメールが送信されます。

  1. パスワードの再設定
    • パスワードの再設定を行ったユーザーに送信されるメールです。
    • 新規パスワードを設定するページへの URI が記載されています。
      • From : システム
      • To : ユーザー
      • Subject : パスワードの再設定
      • 本文例
        パスワードをリセットしようとしています。以下のリンクをクリックして、新しいパスワードを設定してください。
        
        http://(リセットのための URI )
        
        このメールに心当たりがないときは、何もせずに無視してください。
        
        --
        Powered by Movable Type 5.02
        
  2. ブログ記事の共有
    • ブログ記事を共有したとき、送信対象のメールアドレスに送信されるメールです。
    • タイトル、日付、(概要)、(本文)、オーナー名などが記載されています。「()」付きのものは共有時に選択した場合に情報が送信されます。
      • From : 記事のオーナー
      • To : 送信設定されたユーザー
      • Subject : 更新通知: (ブログ名)-(記事タイトル)
      • 本文例
        新しいブログ記事「昨日のいちぢくのタルト」をSix Apart Cafe 掲示板で公開しました。
        
        表示する 
        
        ------------------------------------------------------------------------
        タイトル: 昨日のいちぢくのタルト
        日付: 2010年5月26日 10:31
        
        
        昨日いただいたいちぢくのタルト、とっても美味しかったです。 また頂きたいのですが...
        
        ------------------------------------------------------------------------
        
        メッセージ:
        test
        
        ------------------------------------------------------------------------
        
        昨日いただいたいちぢくのタルト、とっても美味しかったです。
        また頂きたいのですが、お店にいつもあるのでしょうか?
        
        ------------------------------------------------------------------------
        
        このメールはSix Apart Cafe 掲示板で新規に作成されたコンテンツに関する通知を送るように設定されているか、またはコンテンツの著者が選択したユーザーに送信されています。このメールを受信したくない場合は、次のユーザーに連絡してください:
        
        (記事のオーナー名) <(オーナーのメールアドレス)>
        
  3. ブログ記事の投稿通知
    • 新規ブログ記事が投稿された際に送信されるメールです。
    • ユーザー、ユーザーの表示名、タイトル、日付、ブログ記事へのパーマリンク、ブログ記事の編集画面への URI などが記載されています。
      • From : システム
      • To : 管理者
      • Subject : ブログ「(ブログ名)」に新しいブログ記事「(タイトル)」が投稿されました。
      • 本文例
        ブログ「Six Apart Cafe 掲示板」に新しいブログ記事「雨はいやですね。」(ID: 31)が投稿されました。
        
        ユーザー: (ユーザー名)
        ユーザーの表示名: (表示名)
        
        タイトル: 雨はいやですね。
        日付: 2010年6月14日 11:48
        
        なんだか雨はいやですね。気分が憂鬱になります。...
        
        
        表示する <(WebページのURI)>
        編集する <(編集するための管理画面のURI)>
        
  4. メールアドレスの確認
    • ユーザーが登録した際、登録したメールアドレスが正しい物かを確認するためにユーザーへ送信されるメールです。
    • このメールを受け取ったユーザーは、埋め込まれている URI をクリックすることで登録が完了します。
      • From : システム
      • To : ユーザー
      • Subject : Movable Type アカウント登録確認
      • 本文例
        Six Apart Cafe 掲示板にご登録いただきありがとうございます。
        
        セキュリティおよび不正利用を防ぐ観点から、アカウントとメールアドレスの確認をお願いしています。確認され次第、Six Apart Cafe 掲示板にサインインできるようになります。
        
        アカウントの確認のため、次のURLをクリックするか、コピーしてブラウザのアドレス欄に貼り付けてください。
        
        http://(アカウント確認のための URI )
        
        このメールに覚えがない場合や、Six Apart Cafe 掲示板に登録するのをやめたい場合は、何もする必要はありません。
        
        ご協力ありがとうございます。
        
        
        Six Apart Cafe 掲示板
        
        --
        Powered by Movable Type 5.02
        
  5. 登録通知
    • 新規ユーザーが登録完了した際、ブログのオーナーに送信されるメールです。
    • システムメニューの [設定][ユーザー] の ユーザー登録で、「システム管理者選択」で、送信先のシステム管理者を選択してあった場合のみメールが送信されます。
    • ユーザー名、名前、メールアドレス、プロフィールページの URI が記載されています。
      • From : システム
      • To : 管理者
      • Subject : (ユーザー名)がブログ'(ブログ名)'に登録されました。
      • 本文例
        新規登録ユーザー:
        ユーザー名: (ユーザー名)
        名前: (表示名)
        メール: (ユーザーメールアドレス)
        
        このユーザーの情報を見たり編集する場合には、下記のURLをクリックするか、URLをコピーしてブラウザのアドレス欄に貼り付けてください。
        http://(管理画面のユーザー情報を閲覧、編集する画面への URI )
        
        --
        Powered by Movable Type 5.02
        
  6. 新しいコメント
    • コメントを受信した際、ブログ記事を書いたユーザーに受信した旨のメールを送信します。
    • メールの文面中に埋め込まれている URI で、承認や閲覧、スパムの報告などが出来ます。
      • From : コメントユーザー
      • To : 管理者
      • Subject : [(ブログ名)]'(記事名)'にコメントがありました
      • 本文例
        ブログ 'Six Apart Cafe 掲示板' のブログ記事 '昨晩の日韓サッカーについて' (ID:18) に新しいコメントが投稿されました。
        
        うーん、選手の動きに切れがありませんでしたね。監督というより選手個々の問題のように感じます。
        
        コメント投稿者: (コメント投稿者名)
        メールアドレス: (コメント投稿者メールアドレス)
        URL: (取得できた場合のコメント投稿者のブログ URL )
        IPアドレス: (コメント投稿元のIPアドレス)
        
        
        コメントを見る:
         <http://(コメントを見るための URI )>
        コメントを編集する:
         <http://(コメントを編集するための URI)>
        コメントをスパムとして報告する:
         <http://(コメントをスパムとして報告するための URI)>
        
        --
        Powered by Movable Type 5.02
        
  7. 新しいトラックバック
    • トラックバックを受信した際、ブログ記事を書いたユーザーに受信した旨のメールを送信します。
    • メールの文面中に埋め込まれている URI で、承認や閲覧、スパムの報告などが出来ます。
      • From : システム
      • To : 管理者
      • Subject : [(ブログ名)] 'に新しいトラックバックがありました
      • 本文例
        ブログ 'Six Apart Cafe 掲示板' のブログ記事 'ワールドカップサッカー' (ID:32) に未公開のトラックバックがあります。公開するまでこのトラックバックはブログに表示されません。
        
        概要:
        とうとう始まりましたが、皆さんはどこの国を応援していますか?...
        
        URL: http://(トラックバック元の URI )
        タイトル: ワールドカップ
        ブログ: 犬連れ親父のブログ
        IPアドレス: (トラックバック元の IP アドレス)
        
        トラックバックを承認する:
         <http://(トラックバックを承認するための URI )>
        
        
        トラックバックをスパムとして報告する:
         <http://(トラックバックをスパムとして報告するための URI )>
        
        トラックバックの編集:
         <http://(トラックバックを編集するための URI )>
        
        --
        Powered by Movable Type 5.02
        

サイトの動作確認方法

  1. クラシックブログとコミュニティ掲示板に管理者アカウントで新規エントリーと新規トピックを作成する
  2. 管理者アカウントをログアウトする
  3. サイトに関係するCookieを全て削除する
  4. コミュニティ掲示板にアクセスし [登録] リンクをクリックする
  5. 登録画面が表示されるので情報を埋めて [サインアップ] ボタンをクリックする
  6. 登録したメールアドレス宛にメールが届くので、アカウント確認用のリンクをクリックする
  7. 登録したID、パスワードでサインインし自分の名前が右上にあるか確認する
  8. トピックにコメントをする
  9. [元の記事に戻る] リンクをクリックし、自分のコメントが投稿されているか確認する
  10. クラシックブログにアクセスする
  11. [コメントするにはまずサインインしてください。] リンクが表示されている場合はクリックする
  12. コメント欄が表示されたらコメントをする
  13. [元の記事に戻る] リンクをクリックし、自分のコメントが投稿されているか確認する
  14. 管理者アカウントでログインする
  15. サイト、クラシックブログ、コミュニティ掲示板、すべてに登録したユーザーがライターとして追加されているか確認する

これで動作確認が終了です。うまく動かない場合は設定を見直して再度実行してください。