movabletype.jp

連載その5「mt.js は何をしているのか? その2」

コミュニティ・ソリューションで利用される mt.js とは?

"mt.js" ファイルは、コミュニティー掲示板やコミュニティーブログで利用される多機能な JavaScript ファイルで、各掲示板やブログディレクトリの直下に配置されています。

コミュニティ・ソリューション以外でも "mt.js" を利用しますが、若干違う JavaScript ファイルとなっています。

主な利用場面は以下の4つです。

今回は「お気に入りの制御」「注目、被注目」について取り上げます。

お気に入りとは?

コミュニティ・ソリューションでは、ブログ記事に対して、読者が『お気に入り』に追加することができます。この機能は、Movable Type のレーティング・フレームワークと呼ばれる仕組みによって実装されており、Movable Type に保存されている、記事などのあらゆるデータに、スコア付けやランキングを設定することができます。

お気に入りは、ユーザー各々のブックマークとしても利用できますし、コミュニティ全体では、人気度の目安として働きます。投票者がコミュニティにサインインしているユーザーなら、お気に入りに登録したトピックやブログ記事は自分のプロフィールページの [最近のアクション] で確認できます。

お気に入り 機能

お気に入り機能は JavaScript によって動作しています。お気に入りの情報はユーザーログインした際に JSON データとしてダウンロードされ、それによりアイコンのステータスを変更します。

ロード時、サインイン時の処理

  1. ロード時、サインイン時にお気に入りアイコンの状態を変更する JavaScript を呼び出します。
  2. JavaScript が呼び出される前、お気に入りアイコンはクリックできない状態(灰色)になっています。
  3. JavaScript が呼ばれると JSON のデータから画面内のお気に入りの状態を調べ、ステータスをチェックします。
  4. JavaScript でチェックしたステータスを画面に反映させます。
  5. JavaScript が呼び出された後、投票可能なお気に入りアイコンはアクティブな状態(青色)になっています。
  6. JavaScript が呼び出された後、投票済みのお気に入りアイコンはクリックできない状態(黒にチェック)になっています。
  7. ユーザがサインアウトを行うと、全てのお気に入りアイコンはクリックできない状態(灰色)に戻ります。

アクティブ(青色)アイコン クリック時の処理

  1. アクティブなお気に入りアイコンをクリックすると、JavaScript が呼び出されます。
  2. JavaScript は、引数として渡された Entry ID から、お気に入りになった旨をシステムに送信します。
  3. データ送信中はアイコンがアップデート中(インジケーター)に変更されます。
  4. JavaScript が、クリックしたアイコンを投票済み(黒にチェック)に変更します。
  5. JavaScript が、クリックしたアイコンの票数を変更します。

投票済み(黒にチェック)アイコン クリック時の処理

  1. 投票済みなお気に入りアイコンをクリックすると、JavaScript が呼び出されます。
  2. JavaScript は、引数として渡された Entry ID から、お気に入りから外した旨をシステムに送信します。
  3. データ送信中はアイコンがアップデート中(インジケーター)に変更されます。
  4. JavaScript が、クリックしたアイコンをアクティブ(青色)に変更します。
  5. JavaScript が、クリックしたアイコンの票数を変更します。

メニューから [ 設定 ][ コミュニティ ] で、「匿名での投票を許可する」にチェックが入っていた場合、サインインしなくてもお気に入りアイコンがアクティブ(青)になり、お気に入りに投票する事が可能になります。既定値ではチェックが入っていません(サインイン必須)。

注目、被注目 とは?

コミュニティ・ソリューションはユーザーがコミュニティの中で注目するユーザーをフォローする機能を提供します。注目・被注目の状況は、ユーザー各々のプロフィールページで確認したり、テンプレートをカスタマイズして、ユーザーが注目しているユーザーの一覧を表示することもできます。

また、アクション機能と組み合わせれば、注目ユーザーの活動 (記事・トピック作成、コメント、お気に入り) を確認できる仕組みをコミュニティ管理者と、デザイナーに提供します。

注目しているユーザーの一覧とは逆に、ユーザーがどのユーザーに注目されているのかを一覧することもできます。こちらもアクション機能と組み合わせて利用できます。例えば、自分を注目しているユーザーは最近どのようなトピック (または記事) を投稿したのかをチェックするといったこともできます。

注目、被注目 機能

注目、被注目は、ロード時の処理と「注目する」「注目をやめる」時の2つの処理があります。ここでは、プロフィールページでの注目、被注目の挙動を説明します。

ロード時の処理(HTML中のJavaScript)

  1. プロフィールページを開いた時点では「注目する」「注目をやめる」のリンクは表示されていません。
  2. これらを表示するための JavaScript はHTMLに書き込まれています。
  3. サインインするとJavaScript により「注目する」「注目をやめる」のどちらが表示されるか制御します。
  4. JavaScript の呼び出しはHTMLページの最後にある外部 JavaScript をインクルードしている部分で行われます。
  5. ここで読み込まれた外部 JavaScript は 「注目しているかどうか」「ユーザ名」「メールアドレス」などの引数を渡します。これにより表示、非表示が制御されます。

「注目する」ボタンをクリックした際の処理(mt.js中のJavaScript)

  1. 「注目する」ボタンをクリックすると JavaScript が呼ばれます。
  2. mt-cp.cgi が呼び出され 「注目する」旨をシステムに伝えます。
  3. ロードが終了するまでインジケーターが表示されます。
  4. ロードが終了すると、インジケーターが非表示になり「○○に注目しています。 [注目をやめる]」が表示されます。

「注目をやめる」ボタンをクリックした際の処理(mt.js中のJavaScript)

  1. 「注目をやめる」ボタンをクリックすると JavaScript が呼ばれます。
  2. mt-cp.cgi が呼び出され 「注目をやめる」旨をシステムに伝えます。
  3. ロードが終了するまでインジケーターが表示されます。
  4. ロードが終了すると、インジケーターが非表示になり「[注目をする]」が表示されます。

連載その4「mt.js は何をしているのか? その1」

コミュニティ・ソリューションで利用される mt.js とは?

"mt.js" ファイルは、コミュニティー掲示板やコミュニティーブログで利用される多機能な JavaScript ファイルで、各掲示板やブログディレクトリの直下に配置されています。

コミュニティ・ソリューション以外でも "mt.js" を利用しますが、若干違う JavaScript ファイルとなっています。

主な利用場面は以下の4つです。

今回は「サインイン、サインアウト」「コメント欄の表示、非表示」について取り上げます。

サインイン、サインアウトとは?

Movable Type(以下MT)アカウントとして登録済みのアカウントや、OpenIDを使って、コミュニティ・ソリューションにサインイン、サインアウトする機能です。

一旦サインインをすると Web ブラウザの Cookie 内にサインインセッション ID (mt_commenter, mt_blog_user) が保存され、他のコミュニティブログや掲示板、ブログなどでシングルサインオン(SSO)が利用できるようになります。このセッション ID の有効期限は3日と設定されています。変更する場合は "mt-config.cgi" に "CommentSessionTimeout" の値を秒単位で指定してください。

このセッション ID のうち "mt_commnter" は、MT の管理画面のサインイン時に同じ物が Cookie に保存されます。MT の管理画面にサインインしたままコミュニティ掲示板などで [サインイン] をクリックすると、管理画面にサインインしていたアカウントのままサインインしてしまいます。別のユーザーでサインインしたい場合は一旦 [サインアウト] をクリックするか、管理画面でサインアウトして改めて別のユーザーのアカウントでサインインしてください。

SSOを利用せずブログ毎にユーザーの詳細管理を行いたい場合は "mt-config.cgi" に "SingleCommunity 0" と記述します。この設定で登録時に登録対象以外のコミュニティ掲示板やブログに自動的にユーザー追加されなくなります。また、Cookie名が "mt_blog_user" から "mt_blogN_user"( NはブログID )に代わり、コミュニティ掲示板やブログ毎にユーザー情報が管理されるため、SSOが利用できなくなります。

サインイン、サインアウト 機能

サインイン、サインアウト 機能のほとんどはHTMLページ内に書き込まれた JavaScript によって動作しています。

  1. ページが表示された際にサインインセッション ID からサインインしているか確認します。
    • サインインしていない場合 [ サインイン | 登録 ] と表示します。
    • サインインしていて当該ブログにサインインする権限が無かった場合 [ このブログにサインインする権限はありません ] と表示します。
    • サインインしていてMTユーザーだった場合 [ サインイン | ユーザー情報の変更 | サインアウト ] と表示します。
    • サインインしていてMTユーザーでなかった場合( OpenID など) [ サインイン | サインアウト ] と表示します。
  2. [ サインイン ] がクリックされた場合、ユーザーの権限を確認します。
    • ユーザー情報を取得します。
    • [ サインインします ] と表示し、インジケーターが表示されます。
    • サインインセッション ID が無い場合や情報に誤りがあった場合、サインイン画面にリダイレクトされます。
    • サインイン状態にあることがわかった場合、上述の「ページが表示された際に...」と同様の動作をします。
  3. [ サインアウト ] がクリックされた場合、サインアウト処理を行います。
    • サインアウト処理を実行し、サインインセッション ID の内容を消去します。Cookie の値を空にします。
    • サインアウト処理を行い、完了後サインアウト処理の前に閲覧していたページにリダイレクトします。

コメント欄の表示、非表示とは?

コメント欄は初期状態で非表示となっており、サインインを行うと表示されコメントが出来るようになります。

コメント欄の表示に利用するサインインセッション ID は、Cookie に保存され SSO が可能です。この サインインセッション ID はコミュニティ掲示板やブログのサインイン、サインアウトの説明で出た物と同じ物です。

メニューの [設定][登録/認証] で「認証なしユーザーまたは匿名ユーザーからコメントを受け付ける」にチェックが入っている場合、コメント投稿をするのにサインインしなくてもコメントが可能になります。

「認証なしユーザーまたは匿名ユーザー」からのコメントはコミュニティ掲示板では不要であることが多いため、コメントを許可しない(チェックを外す:デフォルト)ように設定します。

上述の通りに設定を行うとMTにプロフィールを持っているユーザー(OpenIDを許可している場合はそのユーザーも)は、サインインするとコメントが可能になります。

コメント欄の表示、非表示 機能

コメントの表示、非表示は mt.js により制御されています。

  1. ページが読み込まれると、ユーザーのステータスを調べます。
    • サインインセッション ID を調べ、サインイン状態かどうかを確認します。
    • サインインしていない場合、コメント欄を非表示にします。
    • サインインしている場合、コメント欄を表示します。
  2. サインインしていない状態で、 [サインイン] をクリックした場合
    • サインイン画面が表示されます。
    • サインインが成功すると元の画面に戻ります。
    • コメント欄が表示されています
  3. サインインしている状態で、 [サインイン] をクリックした場合
    • コメント欄が表示されます。
  4. コメント欄上のテキストの変化
    • サインインしていない場合:「コメントするにはまずサインインしてください。」
    • サインインしたがコメント権限が無い場合:「コメントする権限がありません」
    • サインインが成功した場合:「○○としてサインインしています。(サインアウト)」
    • 匿名コメントを許している場合:「コメントする前にサインインすることもできます。」

連載その3「見た目を変えよう!テンプレートカスタマイズ その2」

グローバルテンプレート

グローバルテンプレートとは、システム単位で利用される基本となるテンプレートです。

ウェブサイトやブログで同名のテンプレートを作成されると、当該のグローバルテンプレートは上書きされ使われなくなります。

グローバルテンプレートの編集は、システムメニューの[デザイン][テンプレート]から出来ます

ここではメールフッターの変更を例にあげます。

  1. システムメニューの[デザイン][テンプレート] を選択します。
  2. [テンプレートモジュール] から [メールフッター] を選択します。
  3. [メールフッター] テンプレートの初期値が表示されます。
    --
    Powered by Movable Type <$mt:Mersion$>
    <$mt:Var name="portal_url"$>
    
  4. [メールフッター] を修正します。MT タグを利用して動的に内容の文章を用意するなど可能ですが、ここでは静的な内容として一般的なメールフッターをサンプルとして用いています。
    --
    Six Apart Cafe.
    Email     : melody@example.com
    Web       : http://www.sixapart.jp/
    Tel & Fax : 03-1234-5678
    

サインイン画面の変更

ここではサインイン画面の"Movable Type ロゴ"を、グローバルテンプレートの修正を行うことで変更する方法を解説します。

  1. まずロゴを作成します。

    修正前

    修正後

    修正後のものを"/images/sacafe_logo.png"としてアップロードしておきます。

  2. テンプレートを修正します

    システムメニューの [デザイン][テンプレート] の [シンプルヘッダー] を選択し開きます。

    以下のように50行目の "mt_logo.png" までのパスを修正します。

    修正前:
      50        <div id="brand"><img alt="Movable Type" src="<mt:var name="static_uri">images/chromeless/mt_logo.png" /></div>
    
    修正後:
      50        <div id="brand"><img alt="Movable Type" src="/images/sacafe_logo.png" /></div>
    
  3. サインイン画面にアクセスします。

    ロゴが変更されていることが確認できました。

他画面のロゴ修正の確認

ロゴの修正をする事で他画面でもロゴが変更されています。これは複数の画面で [シンプルヘッダー] を利用しているためです。

ユーザーが利用する画面全てのロゴが、Movable Type のものから変更されている事が確認できました。

利用規約やプライバシーポリシーの許諾ページの追加

初期設定ではコミュニティ・ソリューションへの登録時に、利用規約やプライバシーポリシーの許諾を得る箇所がありません。

この章ではグローバルテンプレートを編集する事で、利用規約やプライバシーポリシーの許諾を得るようにします。

  1. 事前に利用規約やプライバシーポリシーの許諾画面を、ウェブページなどを使って作成します。
  2. システムメニューの [デザイン][テンプレート] の [登録フォーム] をクリックします。
  3. 「テンプレートの編集」>「登録フォーム」画面が出てくるので、121行目付近のコードを書き換えます。
    </mt:Loop>
    
    <p>個人情報管理につきましては、<a href="http://www.sixapart.jp/privacy/" target="_blank">プライバシーポリシー</a>をご確認ください。</p>
    
        <div class="actions-bar">
            <button
                type="submit"
                class="sign-up action primary-button"
                accesskey="s"
                >プライバシーポリシーを許諾してサインアップ</button>
        </div>
    
    </form>
    
  4. 具体的に修正したのは以下の2点です。
    • 「<p>個人情報につきましては、...」の一行を追加し、先に準備していた利用規約やプライバシーポリシーへのリンクを張ります。
    • 「サインアップ」となっていた場所を「プライバシーポリシーを許諾してサインアップ」もしくは「利用規約を許諾してサインアップ」と書き換えます。
  5. 修正が終わったら「変更を保存」ボタンをクリックします。
  6. 修正後のサインアップ画面

連載その2「見た目を変えよう!テンプレートカスタマイズ その1」

テンプレートの種類

テンプレートとは、管理画面に関するもの、ブログやコミュニティ掲示板などの表示に関するもの、メールの文面に関するものなどがあり、以下のように分類されます。

グローバルテンプレートで記載されている内容は、テンプレートに同名のものを作ることでブログ単位、フォーラム単位で上書きが可能です。

今回はこの中でコミュニティ掲示板で表示に関する部分のテンプレートの修正を取り上げます

テンプレート、CSSを編集する際の注意点

基本はクラシックブログなどと一緒ですが、コミュニティ・ソリューションではテンプレートやCSSを修正する際に注意しなければならない事があります。

テンプレート構造

基本はクラシックブログなどと一緒ですが、コミュニティ・ソリューションでは右上に[サインイン|登録]リンクが出るなど、特殊なJavaScriptが埋め込まれています。

以下がインデックスページのテンプレート構造です。

括弧付きがテンプレート、括弧なしはテンプレート内での動作を示します。

  1. [ヘッダー]
    • [mt.js]
    • [ナビゲーション]
    • [サインイン]
    • [検索]
  2. [コンテンツヘッダー]
    • トピックを投稿
  3. [人気のブログ記事]
    • 目立ったトピック
    • 最新の返信
  4. [ブログ記事一覧]
    • 最新トピック
    • 返信
    • 最新の返信
  5. [コンテンツのナビゲーション]
    • トピックを投稿
    • ホーム
    • アーカイブ
    • (セパレータ)
  6. [フッター]
    • [サイドバー]
      • [カテゴリグループ]
        • 最新のトピック
      • [規定のウィジェット]
        • OpenID対応
        • 購読
    • Powered by XXX
    • クリエイティブ・コモンズ

見た目の変更

デフォルトでは青を基調とするデザインになっていますが、ここでは簡単な例として赤を基調とするデザインに変更してみます。

パス "/mt-static/addons/Community.pack/themes/tristan-blue/" を見ると、CSSと画像が用意されているのがわかります。

今回はヘッダー部分を変更するので、以下の4ファイルが変更対象となります。

画像を青ベースから赤ベースに変更し "/images/"以下にFTPなどで配置します。今回は全てのファイルをPNGファイルにします。

"/mt-static/addons/Community.pack/themes/tristan-blue/screen.css"を見ると、上の4ファイルが以下のように指定されていることがわかります。

#header-content {
    width: 842px; 
    padding: 30px 0 65px 80px;
    background: transparent url(logo.gif) 10px 15px no-repeat;
}

#header { 
    background: #003265 url(header.gif) repeat left top; 
}

#header-menu {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 940px;
    margin: 0 auto;
    padding-top: 3px;
    background: #fff url(header-menu-bg.png) center bottom no-repeat;
}

#header-menu ul {
    display: inline-block;
    list-style-type: none;
    width: 934px;
    margin: 3px 3px 0;
    padding: 0;
    background: #369 url(navigation-bg.png) left bottom repeat-x;
}

CSSを変更し画像を変更するため、MTの管理画面の左メニューの[デザイン][テンプレート]のスタイルシートを修正し、CSSの "background:" 情報を上書きします。

@import url(<$mt:StaticWebPath$>themes-base/blog.css);
@import url(<$mt:StaticWebPath$>themes-base/forum.css);
@import url(<$mt:StaticWebPath$>addons/Community.pack/themes/tristan-blue/screen.css);

#header-content {
    background: transparent url(/images/logo_02.png) 25px 22px no-repeat;
}

#header {
    background: #8F1616 url(/images/header_02.png) repeat left top;
}

#header-menu {
    background: #fff url(/images/header-menu-bg_02.png) center bottom no-repeat;
}

#header-menu ul {
    background: #8F1616 url(/images/navigation-bg_02.png) left bottom repeat-x;
}

変更前画面

変更後画面

これで見た目の変更ができました。

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

このドキュメントとは?

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

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

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

ウェブサイトの構成

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

更新履歴の有効化

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

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

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

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

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

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

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

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

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

  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. サイト、クラシックブログ、コミュニティ掲示板、すべてに登録したユーザーがライターとして追加されているか確認する

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

サインイン画面のカスタマイズ

サインイン画面のロゴを自社ロゴなどに修正するには、グローバルテンプレートを変更する必要があります。

グローバルテンプレートのカスタマイズ

サインイン画面や、パスワードの再設定メールの内容は、グローバルテンプレートでカスタマイズできます。

サインイン画面のカスタマイズ

  1. サインイン時に表示される [movable type] ロゴを自社サービス [www.example.com] の物に変更するとします。
  2. ロゴを用意し [(mt-static url)/images/chromeless/] に [www.example.com_logo.png] という名前で配置します。
  3. ナビゲーションから、[システム] を選択します。
  4. サイドメニューから、[デザイン] > [テンプレート] を選択します。
  5. [システムテンプレート] の [ログインフォーム] を開くと、ロゴは [シンプルヘッダー] に含まれている事が解ります。
  6. [テンプレートモジュール] の [シンプルヘッダー] を開きます。
  7. 50行目に "mt_logo.png" と記述があるので、"www.example.com_logo.png" に書き換え、[変更を保存] をクリックします。
  8. この変更をすると、 [パスワードの再設定] のように [シンプルヘッダー] を利用している他のテンプレートも、一括してロゴを変更できます。

テンプレートを編集する時の注意点とJavaScriptの解説

テンプレートやCSSを編集する際の注意点を解説します。

  • テンプレート、CSSを編集する際の注意点
  • また、コミュニティ・ソリューションでは、色々な場面で JavaScriptを利用しています。ここでは特徴的な4つの場面で、どう利用されているかを解説します。

  • サインイン、サインアウト 機能
  • コメント欄の表示非表示 機能
  • 注目、被注目 機能
  • レコメンド 機能
  • テンプレート、CSSを編集する際の注意点

    コミュニティ・ソリューションでは、テンプレート、CSSを修正する際に注意しなければいけない事が何点かあります。

    HTMLに書き込まれている JavaScript は修正しない

    1. これらのほとんどは、HTMLファイルのロード終了前に動作を始める、イベントを設定するなど重要な処理をしています。
    2. 同じ理由により、一見無意味に見える JavaScript でも場所を変更したり、削除すると正しく動作しなくなります。

    HTML タグの "id", "class" は変更削除しない

    1. コミュニティ・ソリューションの JavaScriptはHTMLに書かれている "id", "class" を見て動作します。
    2. 上記の理由により、"id" や "class" の表記を変更してしまうと正しく動作しなくなります。
    3. HTML上では空のdivタグでも、文言や画像を表示させるために記述されているものもあるので、それらも削除しないで下さい。

    テンプレートの処理は最小限に

    1. 上記の理由により、テンプレート(グローバルテンプレート含む)の修正は最小限に留めて下さい。
    2. CSSで対応できるもの(配置やdivタグの非表示など)はテンプレートの修正をせず、CSSで対応して下さい。

    JavaScript の修正、追加をしたい場合

    1. グローバルテンプレートの "mt.js" は修正しないで下さい。
    2. 外部 JavaScript を作成し、それらをインクルードする形にして下さい。
    3. これによって、"mt.js"に手を入れた時と比べて、問題発生時に条件切り分けが容易になります。

    JavaScriptの解説

    以下で指している行番号は環境や設定によって異なりますので、適宜読み替えて下さい。

    サインイン、サインアウト 機能

    サインイン、サインアウトは、ほとんどの JavaScript コードがHTMLページに直に記載され動作しています。

    [function mtUpdateSignInWidget(u)] と、その処理

    1. [mtUpdateSignInWidget(u)] が呼び出されると、閲覧ユーザの情報(サインイン済かどうかなど)を取得します。(69~79行)
    2. 閲覧ユーザーが未サインインだった場合、[サインイン | 登録 ] を"content"変数にセットします。(101~105行)
    3. 閲覧ユーザーが当該ブログにサインインする権限が無かった場合「このブログにサインインする権限がありません」を"content"変数にセットします。(99~100行)
    4. 閲覧ユーザーがサインイン済みかつMTユーザーだった場合「サインイン | ユーザー情報の変更 | サインアウト」を"content"変数にセットします。(80~99行)
    5. 閲覧ユーザーがサインイン済みかつMTユーザーでなかった場合「サインイン | サインアウト」を"content"変数にセットします。(80~99行)
    6. "content"変数の内容を「サインインウィジェット」に書き込みます。(109行)
    7. ユーザのサインイン処理の終了時に [mtUpdateSignInWidget(u)] が呼び出されるように設定します。(111行)
    8. 112行がロードされたタイミングで [mtUpdateSignInWidget(u)]を呼び出します。(112行)

    サインイン

    1. [サインイン] をクリックするとユーザー情報を取得します。(mtSignInOnClick関数 mt.js 1254~1268行)
    2. 次の処理に移るまでに「サインインします...」表示と共にインジケーターが表示されます。
    3. サインイン状態に無い事がわかった場合、サインイン画面にリダイレクトされます。
    4. サインイン状態にあることがわかった場合、[mtUpdateSignInWidget(u)] を呼び出すイベントが発生します(usersigninイベント)。

    サインアウト

    1. [サインアウト] をクリックするとサインアウト処理を実行します。(mtSignOutOnClick関数 mt.js 1299~1302行)
    2. サインアウト処理を行い、完了後サインアウト処理の前に閲覧していたページにリダイレクトされます。

    コメント欄の表示非表示 機能

    コメント欄の表示、非表示は、mt.js により制御されています。

    [mtUserOnload] と、その中でのコメント関連の処理

    1. ページが読み込まれるとイベントが発生し、mt.js の mtUserOnload 関数が呼び出されます。
    2. ユーザーのステータスを調べコメント欄の表示、非表示を実行します。(mtUserOnload 関数 mt.js 1167~1178行)
    3. コメント欄の上にテキスト(Greeting)を表示します。(mtShowGreeting 関数 mt.js 1306~1353行)
    4. Greetingには「コメントする権限がありません」「○○としてサインインしています」「コメントするにはサインインしてください」などの文言が入ります。

    注目、被注目 機能

    注目、被注目は、ロード時の処理と「注目する」「注目をやめる」時の2つの処理があります。

    ロード時の処理(HTML中のJavaScript)

    1. プロフィールページを開いた時点では「注目する」「注目をやめる」のリンクは表示されていません。
    2. これらを表示するための JavaScript はHTMLに書き込まれています。
    3. 39行と40行の "conditional_block" 関数により「注目する」「注目をやめる」のどちらが表示されるか制御します。
    4. ここでは関数を定義しただけで、まだ呼び出されていません。
    5. 関数の呼び出しはHTMLページの最後にある JavaScriptファイルをインクルードしている部分で行われます。
    6. ここで読み込まれた JavaScript は "relations" 関数に「注目しているかどうか」「ユーザ名」「メールアドレス」などの引数を渡して呼び出します。これにより表示、非表示が制御されます。

    「注目する」ボタンをクリックした際の処理(mt.js中のJavaScript)

    1. 「注目する」ボタンをクリックすると "script_follow" 関数が呼ばれます。(script_follow 関数 mt.js 608~628行)
    2. mt-cp.cgi が呼び出され 「注目する」旨をシステムに伝えます。(script_follow 関数 mt.js 624行)
    3. ロードが終了するまでインジケーターが表示されます。(script_follow 関数 mt.js 626-627行)
    4. ロードが終了すると「○○に注目しています。 [注目をやめる]」が表示され、インジケーターが非表示になります。(follow 関数 mt.js 653-655行)

    「注目をやめる」ボタンをクリックした際の処理(mt.js中のJavaScript)

    1. 「注目をやめる」ボタンをクリックすると "script_leave" 関数が呼ばれます。(script_leave 関数 mt.js 630~650行)
    2. mt-cp.cgi が呼び出され 「注目をやめる」旨をシステムに伝えます。(script_leave 関数 mt.js 646行)
    3. ロードが終了するまでインジケーターが表示されます。(script_leave 関数 mt.js 648-649行)
    4. ロードが終了すると「[注目をする]」が表示され、インジケーターが非表示になります。(leave 関数 mt.js 659-661行)

    レコメンド 機能

    レコメンドは画面のロード時、サインイン時の処理と、レコメンドリンクをクリック時の処理があります。

    ロード時、サインイン時の処理

    1. ロード時、サインイン時にイベントが発生し、[mtUpdateScores] 関数を呼び出すよう設定されています。
    2. [mtUpdateScores] が呼び出される前、レコメンドアイコンはクリックできない状態(灰色)になっています。
    3. [mtUpdateScores] 関数が呼ばれると画面内のレコメンドを調べ、全てのレコメンドに対してステータスをチェックします。(mtUpdateScores 関数 mt.js 530-563行)
    4. [mtUpdateScores_cb] 関数が、[mtUpdateScores] 関数でチェックしたステータスを画面に反映させます(mtUpdateScores_cb 関数 mt.js 565-604行)
    5. [mtUpdateScores] 関数が呼び出された後、投票可能なレコメンドアイコンはアクティブな状態(青色)になっています。
    6. [mtUpdateScores] 関数が呼び出された後、投票済みのレコメンドアイコンはクリックできない状態(黒にチェック)になっています。
    7. ユーザがサインアウトを行うと、全てのレコメンドアイコンはクリックできない状態(灰色)に戻ります。

    アクティブ(青色)アイコン クリック時の処理

    1. アクティブなレコメンドアイコンをクリックすると、[mtScore] 関数が呼び出されます。(mtScore 関数 mt.js 503-528行)
    2. [mtScore] 関数は、引数として渡された Entry ID から、レコメンドされた旨をシステムに送信します。(mtScore 関数 mt.js 526行)
    3. [mtScore_cb] 関数が、クリックしたアイコンを投票済み(黒にチェック)に変更します。(mtScore_cb 関数 mt.js 580-581行)
    4. [mtScore_cb] 関数が、クリックしたアイコンの票数を変更します。(mtScore_cb 関数 mt.js 590-591行)

    ダッシュボードウィジェット

    コミュニティ・ソリューションは、いくつかの管理者向けのダッシュボードウィジェットを追加します。ダッシュボードにウィジェットを追加するには、ウィジェットを追加したいブロックの下辺にある [ウィジェットの選択...] セレクトメニューで、追加したいウィジェットを選択し、[追加] ボタンをクリックします。ウィジェットをダッシュボードから外すには、各ウィジェットの右上にある (close) をクリックして、ウィジェットを閉じます。

    追加するウィジェットが無くなったら、[ウィジェットの選択...] セレクトメニューは表示されなくなります。

    最近の投稿

    最近の投稿ダッシュボードウィジェットは、最近投稿された、現在承認待ちのトピック、またはブログ記事を一覧します。

    最近評価されたブログ記事

    最近お気に入り登録されたトピック、または、ブログ記事を一覧します。運営中のコミュニティ内で、これからどんなコンテンツにユーザーが注目するのかを確認できます。

    評価の高いブログ記事

    コミュニティ内で評価の高い (多くのユーザーにお気に入り登録されている) トピック、または、ブログ記事を一覧します。

    コミュニティ・ソリューションの初期設定

    コミュニティ・ソリューションを使って、コミュニティサイトの運営を行うにあたり、設定を行います。コミュニティサイトの運営を開始する前に必ず設定してください。

    コミュニティの設定

    コミュニティサイトを運営するにあたり、基本的な設定を行います。

    1. ナビゲーションから、[ブログ] を選択します。
    2. サイドメニューから、[設定] > [コミュニティ] を選択します。
    コミュニティ設定ページに移動

    コミュニティの設定ページでは以下の項目を設定します。

    コミュニティ設定画面
    匿名での投票

    未登録のユーザーにもお気に入り登録を許可する場合は、チェックします。未登録ユーザーでもお気に入り登録できるようになりますが、IP アドレスによって個人を判別するので同 IP アドレスで複数のユーザーがいた場合でも、繰り返し登録できるわけではありません。

    アップロード先

    カスタムフィールド機能を利用し、登録ユーザーがトピックを投稿するフォームに [画像] を追加するフィールドを追加している場合、そこからアップロードされた画像が格納されるディレクトリを設定します。

    カスタムフィールドでフィールドを追加する場合は [ブログ記事] に [画像] という種類のフィールドを追加してください。アップロードされた画像は、テンプレートを修正しなくても出力されたページに表示されます。カスタムフィールドや、ユーザーがトピックやブログ記事を作成するフォームについては、ドキュメントを参照ください。

    ユーザー登録の許可

    コミュニティサイトを運営し、読者をコミュニティへ参加させるならば、コミュニティサイトへのサインアップを許可しなければなりません。サインアップの許可は次の手順で行います。

    この設定は、新規インストール時、ユーザー登録できるように設定されています。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[設定] > [ユーザー] を選択します。
    3. [ユーザー登録] にある [コメント投稿者がMovable Typeに登録することを許可する] をクリックします。
    4. 合わせて、[以下のシステム管理者に登録を通知する:] で [システム管理者を選択] をクリックし、ユーザーの登録時に通知メールを受けとる管理者を選択しておきます。
    5. ナビゲーションから、[ブログ] を選択します。
    6. サイドメニューから、[設定] > [登録/認証] を選択します。
    7. [ユーザー登録] チェックボックスをチェックします。

    登録確認などのメールに関する設定

    ユーザーサインアップが行われたとき、サインアップしたユーザーには登録確認のメールが送信されます。また、受けとる管理者を設定しておけば、その管理者はサインアップがあったことを知らせるメールを受け取れます。

    登録を通知する管理者の設定は次のような手順で行います。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[設定] > [ユーザー] を選択します。
    3. [以下のシステム管理者に登録を通知する:] で [システム管理者を選択] をクリックします。
    4. ユーザーを選択するモーダルが開きますので、通知する管理者のチェックボックスをチェックして [OK] ボタンをクリックします。

    各々のメール送信用のメールアドレスを設定することもできます。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[設定] > [全般] を選択します。
    3. [システムのメールアドレス] 入力フォームに、送信するメールの From で使用したいメールアドレスを入力します。
    4. 最後に [変更を保存] ボタンをクリックます。

    送信メールのカスタマイズ

    ユーザー登録時や、コメント通知など、Movable Type が送信するメールの内容は、グローバルテンプレートのメールテンプレートで管理されているので、これらのテンプレートをカスタマイズすると、メール内に広告やお知らせなどを追加できます。メールのカイスタマイズについてはドキュメント: システムが送信するメール内容のカスタマイズ を参照してください。

    新規ユーザーに与える権限の設定

    ユーザーの登録を許可しても、登録したユーザーに何も権限が無ければ、プロフィールの編集 しかできません。たくさんのユーザー登録後、各々に権限を設定するのは大変なので、新規に登録したユーザーに自動的に付与する権限の設定を行います。この手順については、ドキュメント: 管理者のための新規登録ユーザーの権限設定を参照してください。

    ユーザープロフィールページ

    コミュニティに登録したユーザーには各々、自分の情報やコミュニティ内での活動、注目、被注目ユーザーの確認を行える、プロフィールページが用意されます。

    ユーザープロフィールページ
    ユーザーの表示名

    サインアップ時に入力した [表示する名前] に入力した内容を表示します。表示する名前の変更については、ドキュメント: ユーザー情報を編集する を参照してください。

    ユーザー情報

    ユーザーのウェブサイトなどの詳細情報です。ここに表示する内容は、コミュニティの管理者がカスタマイズできるので、登録するコミュニティごとに表示する内容の異なること場合があります。ユーザー情報の編集については、ドキュメント: ユーザー情報を編集する を参照してください。

    プロフィール画像

    ユーザープロフィール画像です。トピックや記事、コメントを投稿したときにも各々に表示されます。プロフィール画像の登録は、ドキュメント: ユーザー情報を編集する を参照してください。

    最近のアクション

    ユーザーのコミュニティ内での活動をリスト一覧します。リストアップされる活動は次のとおりです。

    • お気に入り登録
    • ブログへの記事投稿
    • ブログ記事へのコメント投稿
    • フォラームへのトピック投稿
    • トピックへのコメント (レスポンス) 投稿
    コメントスレッド

    ユーザーが投稿したコメントに、返信があったとき、その返信コメントへのリンクをリストします。

    注目

    ユーザーが注目しているユーザーの一覧です。ユーザーの注目については、ドキュメント: ユーザーを注目 (follow) する を参照してください。

    被注目

    ユーザーが注目しているユーザーの一覧です。ユーザーの注目については、ドキュメント: ユーザーを注目 (follow) する を参照してください。

    その他のサイドバーウィジェット

    サイドバーウィジェットの種類、内容、はプロフィールページを表示するコミュニティサイトによって異ります。

    トピックやブログ記事をお気に入りに登録する

    またあとで読みたい。今後のディスカッションが気になる、そんなコミュニティ掲示板のトピック、コミュニティブログのブログ記事を、お気に入り記事として登録できます。お気に入りは、ユーザー各々のブックマークとしても利用できますし、コミュニティ全体では、人気度の目安として働きます。投票者がコミュニティにサインインしているユーザーなら、お気に入りに登録したトピックやブログ記事は自分のプロフィールページの [最近のアクション] で確認できます。

    コミュニティ掲示板のトピックをお気に入りに登録するには、トピックや記事のタイトル下にある、星のアイコンをクリックします。画像は、コミュニティ掲示板トップページにある最新トピック一覧から、トピック一件を抜きだしたものです。

    星アイコンをクリック

    お気に入り登録中

    登録を完了すると、登録数が増えアイコンの色も変わります

    お気に入りに登録した記事は、星の色がグレーになり、複数回の投票ができなくなります。

    ユーザー情報を編集する

    自分のプロフィール情報や画像の追加、変更を行うとき、サインインしている状態でページ右上、または自分のプロフィールページの [ユーザー情報の編集] をクリックし、ユーザー情報の編集ページに移動します。

    ユーザー情報の編集ページでは、サインアップ するときに入力した項目の修正 (サインインに使うユーザー名以外)や、プロフィール画像のアップロードを行えます。

    ユーザー情報の編集ページのカスタマイズ

    ユーザー情報の編集ページのカスタマイズを行うには、グローバルシステムテンプレート [プロフィールの編集フォーム] を編集してください。

    ユーザー登録時に入力する項目を追加する (カスタムフィールド)

    運営するコミュニティサイトのコンテンツなどに合わせ、新規アカウント作成時、またはプロフィール修正時に入力してもらう項目を追加できます。例えば、自転車に関するコミュニティサイトを運営するとして、プロフィールページに乗っている自転車の名前を登録してもらいたい、といったプロフィール項目の追加も簡単に行えます。

    プロフィール項目の追加は、カスタムフィールド機能を使用します。詳しくは、ユーザープロフィール項目の追加もしくはドキュメントを参照ください。

    アクション機能

    アクション機能は、ユーザーがコミュニティ内で行った活動をタイムライン化して表示する機能です。アクションのフィードも提供されていますので、気になるユーザーのフィードを購読することもできます。

    アクションをリストするテンプレートの作成は、次のテンプレートタグを使用します。

    サンプルテンプレートは、Author のコンテキスト内で、ユーザーのアクション一覧を出力するものです。MTActions というアクションのリストを出力するための、大きなブロックがあり、その中で記事やトピック (MTActionEntry)、コメント (MTActionComment)、お気に入り (MTActionFavorite) をリストするブロックがあります。

    <mt:Actions namespace="community_pack_recommend" include_blogs="all" sort_order="descend" lastn="30">
        <mt:ActionsHeader>
        <ul class="recent-actions">
        </mt:ActionsHeader>
    
        <MTIgnore>トピック、ブログ記事</MTIgnore>
        <mt:ActionsEntry>
            <li class="entry icon-entry">
                Posted <a href="<$mt:EntryLink>"><$mt:EntryTitle encode_html="1"$></a> to 
                <a href="<$MTEntryBlogURL$>" class="icon-blog"><$MTEntryBlogName$></a>
                <div class="excerpt"><$MTEntryExcerpt$></div>
            </li>
        </mt:ActionsEntry>
    
        <MTIgnore>コメント</MTIgnore>
        <mt:ActionsComment>
            <li class="comment icon-comment">
                Commented on
                <mt:CommentEntry>
                <a href="<$mt:CommentLink$>"><$mt:EntryTitle encode_html="1"$></a>
                </mt:CommentEntry>
                <div class="excerpt"><$mt:CommentBody words="40"$>...</div>
            </li>
        </mt:ActionsComment>
    
        <MTIgnore>お気に入り</MTIgnore>
        <mt:ActionsFavorite>
            <li class="favorite icon-favorite">
                Favorited <$mt:EntryTitle encode_html="1"$></a> on 
                <a href="<$mt:EntryLink$>">%%<a href="<$MTEntryBlogURL$>" class="icon-blog"><$MTEntryBlogName$></a>
            </li>
        </mt:ActionsFavorite>
    
        <mt:ActionsFooter>
        </ul>
        </mt:ActionsFooter>
    
    <mt:else>
        <MTIgnore>アクションが無い場合</MTIgnore>
        <p class="note">No recent actions.</p>
    </mt:Actions>

    アクション一覧は、コミュニティ参加者は、コミュニティ内で注目しているユーザーの活動を確認するのに使えます。また、コミュニティ管理者は、参加者の活動を確認して、特定の管理者に特別な権限を設定するなど、コミュニティの管理ツールとしても使えます。

    コミュニティ内でのトピック・ブログ記事の作成

    コミュニティ掲示板と、コミュニティブログでは、記事の作成権限を持つユーザーは、トピック、または記事を、Movable Type の管理画面からではなく、テンプレートによって出力された 記事作成ページ から作成できます。

    コミュニティ掲示板での新規トピック作成は、各ページに用意されている [トピックを投稿] リンクをクリックします。

    この [トピックを投稿] リンクは、クリックすると、表示中のページが、どのフォーラムカテゴリに含まれる、どの掲示板のインデックス、もしくはトピックかを判別し、同じ掲示板にトピックを投稿するフォームへ移動します。もし、掲示板メインの [トピックを投稿] リンクをクリックしたときは、トピックを、どの掲示板に投稿するかを選択できます。

    トピックや記事の投稿画面を拡張する

    トピック、または、ブログ記事の投稿ページの項目は、カスタムフィールド機能で拡張できます。カスタムフィールドで、ブログ記事作成画面にフィールドを追加すると、トピック・ブログ記事の投稿ページにも、フィールドが追加されます。また、トピックの個別ページにも、追加したフィールドに入力した内容が、表示されます。

    ユーザーを注目 (follow) する

    コミュニティソリューションはユーザーがコミュニティの中で注目するユーザーをフォローする機能を提供します。注目・被注目の状況は、ユーザー各々のプロフィールページで確認できます。

    注目ユーザーの登録と解除

    コミュニティソリューションは標準で、シンプルなユーザーごとのプロフィールページを出力するテンプレートを持っています。この各ユーザーのプロフィールページに、そのユーザーを [注目/注目をやめる] リンクがあります。

    1. そのユーザーを [注目] したい場合は [注目する] をクリックします。
    2. [注目] していたユーザを [注目] から外す場合は [注目をやめる] をクリックします。
    3. プロフィールページの [注目] , [被注目]の一覧

    既存のブログからコミュニティ掲示板・ブログに変更する

    MT5では各テンプレートを一まとめにした [ブログテーマ] が新設されました。

    すでに運用中のブログ (既存のブログテーマを使用しているブログなど)からも、簡単にコミュニティ掲示板、またはコミュニティブログに変更できます。

    ブログテーマの変更

    コミュニティ掲示板、コミュニティブログには各々専用のブログテーマが用意されています。ブログテーマの置き換えを行います。

    1. ナビゲーションから、[ブログ] を選択します。
    2. サイドメニューから、[デザイン] > [テーマ] を選択します。
    3. ブログテンプレート管理画面の [ブログテーマ一覧] にあるコミュニティ掲示板もしくはコミュニティブログの [適用] をクリックします。

    ブログレイアウトの選択

    コミュニティ掲示板、またはコミュニティブログのブログテーマには、Tristan Blue というテーマが対応しており、ブログスタイルの変更で自動的に適用されます。

    レイアウトを変更したい場合は以下の作業を行ってください。

    1. ナビゲーションから、[ブログ] を選択します。
    2. サイドメニューから、[デザイン] > [スタイル] を選択します。
    3. スタイルの [カテゴリ] は [既存のスタイル] を選択します。
    4. デザインの一覧から [Tristan Blue] を選択します。
    5. [レイアウト] セレクトメニューで、お好みのレイアウトを選択し、[デザインを適用] ボタンをクリックします。
    6. サイト全体の再構築を行います。

    コミュニティへのユーザー登録許可

    ブログの登録/認証設定で、ユーザー登録を許可しておくと、読者をコミュニティに参加者として登録できます。登録/認証の設定については、ドキュメント: ブログの設定: 登録/認証 を参照してください。

    また、登録ユーザーのサインイン、新規ユーザーのサインアップ、新規登録ユーザーが持つ権限の設定については、各々ドキュメントを参照してください。

    登録ユーザーのサインイン

    サインアップを完了したユーザーは、登録したコミュニティに以下の手順でサインインできます。

    1. コミュニティ掲示板または、ブログのページ右上の [サインイン] リンクをクリックして、サインイン画面に移動します。
    2. 登録したアカウント名と、パスワードを入力し、[サインイン] ボタンをクリックします。

      Movable Type の認証を利用する場合

      OpenIDを使って、他の認証局の認証を利用する場合

    3. サインインすると、コミュニティ掲示板または、ブログのページ右上に、アカウント作成時に設定した [表示名] とサインアウトのリンクを表示します。

    サインイン後は、名前をクリックすると、ログイン中のユーザーのプロフィールページに移動します。また、[プロフィールを編集] リンクをクリックすると、サインイン中のユーザープロフィールを編集できます。

    パスワードを忘れてしまったとき

    登録した Movable Type にログインするパスワードを忘れてしまったときは、パスワードの再設定を行います。パスワードの再設定には、アカウント作成時に設定した メールアドレスが必要です。

    1. サインイン画面の [パスワードをお忘れですか?] リンクをクリックし、パスワードの再設定画面に移動します。
    2. [電子メール] を入力し、[再設定] ボタンをクリックします。
    3. パスワード再設定のメールが、アカウント作成時に登録したメールアドレスに届きますので、メール記載のパスワードで再度ログインし、パスワードを再設定してください。

    サインイン画面はグローバルテンプレートを修正する事で変更が可能です。サインイン画面のカスタマイズを参考にして下さい。

    コミュニティへの新規ユーザー登録

    コミュニティへのサインアップ (ユーザー登録) は、コミュニティ掲示板、またはコミュニティブログのページ右上 (デフォルトテンプレート) の [登録] リンクをクリックして、サインアップ画面に移動して行います。

    新規に (アカウント) 作成されるユーザーが持つ権限の設定については、管理者のための新規登録ユーザーの権限設定 を参照ください。

    アカウントの新規作成

    アカウントの作成には、ログインしたり、通知のメールを受けとったりするのに必要な最低限の情報入力が必要です。

    ユーザー名

    ログイン時に使用するユーザー名です。この項目は必須です。

    表示する名前

    記事やトピック、コメントを作成した際に表示される名前です。この項目は必須です。

    電子メール

    登録時の確認メール、コメント返信メール、パスワード再設定のメールなど、重要なメール受信するアドレスです。この項目は必須です。

    初期パスワード

    ログイン時に使用するパスワードを設定します。この項目は必須です。

    パスワード再設定のフレーズ

    パスワードを忘れてしまい、ログインできない状態になったとき、パスワードを再設定するのに利用する秘密のフレーズです。この項目は必須です。

    ウェブサイトURL

    ウェブサイトを持っているなら、そのページの URL を http:// から入力します。ここで設定した内容は、作成されるユーザーごとのプロフィールページに表示されます。

    確認メールでの登録メールアドレス確認

    新規にアカウント作成すると、Movable Type からアカウント作成時 [電子メール] に入力したアドレスに確認メールが届きます。このメールに記載されたURLにアクセスすると、ユーザー登録は完了です。

    次に示すのは、送信されるメールアドレス確認メールの内容サンプルです。

    [ユーザー登録したブログの名前] にご登録いただきありがとうございます。 
    
    セキュリティおよび不正利用を防ぐ観点から、アカウントとメールアドレスの確認をお願いしています。
    確認され次第、[ユーザー登録したブログの名前] にサインインできるようになります。
    
    アカウントの確認のため、次のURLをクリックするか、コピーしてブラウザのアドレス欄に貼り付けてください。
    
    [アカウントメールアドレス登録確認 URL]
    
    このメールに覚えがない場合や、[ユーザー登録したブログの名前] に登録するのをやめたい場合は、何もする必要はありません。
    
    ご協力ありがとうございます。
    
    -- 
    Powered by Movable Type [Movable Type のバージョン]
    [コミュニティサイトへの URL]

    [アカウントメールアドレスの登録確認 URL] にアクセスすると、サインインページに移動します。登録したアカウント名初期パスワードを使って Movable Type にログインします。

    メールの内容や、ログイン画面のカスタマイズ

    システムが送信するメールの内容は、グローバルテンプレートでカスタマイズできます。

    注目ユーザー (フレンド) 機能

    コミュニティソリューションはユーザーがコミュニティの中で注目するユーザーをフォローする機能を提供します。注目・被注目の状況は、ユーザー各々のプロフィールページで確認したり、テンプレートをカスタマイズして、ユーザーが注目しているユーザーの一覧を表示することもできます。

    また、アクション機能と組み合わせれば、注目ユーザーの活動 (記事・トピック作成、コメント、お気に入り) を確認できる仕組みをコミュニティ管理者と、デザイナーに提供します。

    注目しているユーザーの一覧とは逆に、ユーザーがどのユーザーに注目されているのかを一覧することもできます。こちらもアクション機能と組み合わせて利用できます。例えば、自分を注目しているユーザーは最近どのようなトピック (または記事) を投稿したのかをチェックするといったこともできます。

    注目ユーザーの登録と解除

    コミュニティソリューションは標準で、シンプルなユーザーごとのプロフィールページを出力するテンプレートを持っています。この各ユーザーのプロフィールページに、そのユーザーを [注目/注目をやめる] リングがあります。

    プロフィールページをカスタマイズするとき、次のテンプレートタグを使えば [注目/注目をやめる] リンクを設置できます。

    サンプルテンプレート

    <p class="edit-relation">
        <span id="following-status"></span>
        <MTAuthorIfFollowing script="0">
        You are following <MTAuthorDisplayName>. 
        <MTAuthorUnfollowLink text="Unfollow">
        <MTElse>
        <MTAuthorFollowLink text="Follow">
        </MTAuthorIfFollowing>
    </p>

    友人リストの表示

    プロフィールページのデフォルトテンプレート内には、表示中のユーザープロフィールに関連する友人リストを表示するテンプレートを含みます。

    注目しているユーザーのリストは、次のブロックタグを使用します。

    MTAuthrFollowing ブロックタグの中では、ユーザーの情報を出力する様々なテンプレートタグを使用できます。

    サンプルテンプレート

    <div class="widget-following widget">
        <h3 class="widget-header">Following</h3>
        <div class="widget-content">
    <mt:AuthorFollowing>
        <mt:if name="__first__">
            <ul class="user-listing">
        </mt:if>
                <li class="pkg">
                    <$MTInclude module="Userpic" userpic_size="36" 
                       userpic_type="userlist"$>
                    <a href="<mt:var name="profile_view_url" encode_html="1"><$MTAuthorID$>" 
                       class="user-name"><mt:AuthorDisplayName /></a>
                    <a href="<mt:AuthorURL />" class="user-url">
                       <mt:AuthorURL regex_replace="/^\w+:\/\//","" /></a>
                </li>
        <mt:if name="__last__">
            </ul>
        </mt:if>
    <mt:else>
        <p class="note">Not following anyone</p>
    </mt:AuthorFollowing>
        </div>
    </div>

    トピックや記事のお気に入り登録機能

    コミュニティ・ソリューションでは、ブログ記事に対して、読者が『お気に入り』に追加することができます。この機能は、Movable Type のレーティング・フレームワークと呼ばれる仕組みによって実装されており、Movable Type に保存されている、記事などのあらゆるデータに、スコア付けやランキングを設定することができます。

    コミュニティ・ソリューションでは、以下のような利用が可能です。

    加えて、管理者は以下のような設定が可能です

    投票機能の組み込み

    『掲示板』あるいは『コミュニティブログ』として作成されたブログには、投票を表示するのに必要なテンプレートタグが、あらかじめ設定されています。

    すでに作成済みの、既存のブログに投票機能を組み込む場合には、新規コミュニティブログの HTML テンプレートを参考にしたり、以下の MT タグを参照して、テンプレートを修正してください。

    トピックをお気に入り順にソートする

    トピックを多くお気に入りに登録された順にソートするには、MTEntries ブロックタグに sort_by="score" モディファイアを設定に加え、対象とするネームスペースを namespace="community_pack_recommend" のように指定します。

    <MTEntries sort_by="score" namespace="community_pack_recommend">
        <MTEntriesHeader>
        <ul>
        </MTEntriesHeader>
            <li><$MTEntryTitle$></li>
        <MTEntriesFooter>
        </ul>
        </MTEntriesFooter>
    </MTEntries>

    合せて、limit モディファイアで、何件表示するかを指定します。以下のサンプルはベスト3を表示します。

    <MTEntries sort_by="score" namespace="community_pack_recommend" limit="3">
        <MTEntriesHeader>
        <ul>
        </MTEntriesHeader>
            <li><$MTEntryTitle$></li>
        <MTEntriesFooter>
        </ul>
        </MTEntriesFooter>
    </MTEntries>

    limit モディファイアについては以下の記事を参照ください。

    ユーザープロフィール項目の追加

    管理者は、ユーザーのプロフィール項目をカスタマイズすることができます。これにより、コミュニティ参加者の様々なデータをプロフィール項目として表示できます。

    このプロフィール項目の追加カスタマイズ機能は、『カスタムフィールド(リンク)』の機能を利用して、実現されています。もし、このページに記述されている以上の情報が必要な場合は、カスタムフィールドのマニュアルを参照してください。

    基本プロフィール項目

    Movable Type は標準のプロフィール項目を最初から保持しています。これらは値を指定する以外の変更をおこなうことができません。以下の基本プロフィール項目があります。

    プロフィール項目を追加する

    管理者は、基本プロフィール項目に追加して、独自のプロフィール項目を設定することができます。項目の追加は、通常のカスタムフィールドの設定画面からおこないます。

    カスタムフィールドの設定画面では、システム内で定義されている、すべてのカスタムフィールド項目が表示され、追加、編集、削除などをおこなえます。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[カスタムフィールド] > [一覧] を選択します。
    3. [フィールドを作成] をクリックし、[システムオブジェクト] から [ユーザー] を選択してください。
    4. 他の項目も入力します。
    5. 入力が済んだら [保存] ボタンをクリックします。

    これでプロフィール記入時に性別が聞かれるようになります。

    プロフィール編集フォームのカスタマイズ

    コミュニティ・ソリューションをインストールすると、プロフィール編集フォームが自動的に作成されます。また、新たに追加した独自プロフィール項目は、システムに認識され、プロフィール編集フォームに自動的に項目が追加されます。

    例えば、『好きな色』というプロフィール項目を追加すると、プロフィール編集フォームにも、同時に『好きな色』を入力するためのフォームが追加されます。

    もし、プロフィールの編集フォームを複雑にカスタマイズするなどして、追加項目が表示されない場合は、以下のサンプルテンプレートを参考に、修復をしてください。

    form 要素

    form タグは、以下の投稿先URLが指定されている必要があります。

    <form method="post" action="<$MTEditProfileScript$>">
        <input type="hidden" name="" value="" />
        <input type="hidden" name="" value="" />
        <!-- your form fields go here -->
    </form>

    フィールドの表示

    以下の MT タグを含む HTML は、標準のプロフィール入力フィールドの表示に使われています。

    <form name="profile" id="profile" method="post" action="<mt:var name="script_url">" enctype="multipart/form-data">
      <input type="hidden" name="__mode" value="save" />
      <input type="hidden" name="magic_token" value="<mt:var name="magic_token">" />
      <input type="hidden" name="return_args" value="<mt:var name="return_args" escape="html">" />
    <mt:if name="id">
      <input type="hidden" name="id" value="<mt:var name="id" escape="html">" />
    </mt:if>
    <mt:setvarblock name="field-content">
      <span id="profile_username"><$mt:var name="name" escape="html"$></span>
      <input type="hidden" name="name" class="ti" value="<$mt:var name="name" escape="html"$>" />
    </mt:setvarblock>
    <MTInclude module="Form Field" id="profile_name" class="" label="User Name">
    <mt:setvarblock name="field-content">
      <input name="nickname" id="nickname" class="ti" 
         value="<$mt:var name="nickname" escape="html"$>" />
    </mt:setvarblock>
    <MTInclude module="Form Field" id="profile_nickname" class="" label="Display Name">
    <mt:setvarblock name="field-content">
      <input name="email" id="email" class="ti" value="<$mt:var name="email" escape="html"$>" />
    </mt:setvarblock>
    <MTInclude module="Form Field" id="profile_email" class="" label="Email Address">
    <mt:if name="auth_mode_mt">
      <mt:setvarblock name="field-content">
        <input type="password" name="pass" id="pass" class="pw" />
      </mt:setvarblock>
      <MTInclude module="Form Field" id="profile_pass" class="" label="Password">
      <mt:setvarblock name="field-content">
        <input type="password" name="pass_verify" id="pass_verify" class="pw" />
      </mt:setvarblock>
      <MTInclude module="Form Field" id="profile_pass_verify" class="" label="Confirm Password">
      <mt:setvarblock name="field-content">
        <input name="hint" id="hint" class="ti" value="<$mt:var name="hint" escape="html"$>" />
      </mt:setvarblock>
      <MTInclude module="Form Field" id="profile_hint" class="" label="Password Recovery">
    <mt:else>
      <input type="hidden" name="external_auth" value="1" />
    </mt:if>
    <mt:setvarblock name="field-content">
      <input name="url" id="url" class="ti" value="<$mt:var name="url" escape="html"$>"  />
    </mt:setvarblock>
    <MTInclude module="Form Field" id="profile_url" class="" label="Website URL">
    <mt:setvarblock name="field-content"><mt:if name="userpic"><mt:var name="userpic"></mt:if>
    <input type="file" name="file" id="file" class="ti" /></mt:setvarblock>
    <MTInclude module="Form Field" id="profile_userpic" class="" label="Userpic">
    <mt:loop name="field_loop">
        <mt:if name="__first__">
        <input type="hidden" name="customfield_beacon" value="1" id="customfield_beacon" />
        </mt:if>
        <!-- start-customfield_<mt:var name="basename"> -->
        <mtapp:setting
            id="$field_id"
            label="$name"
            hint="$description"
            shown="$show_field"
            show_hint="$show_hint"
            required="$required">
        <mt:var name="field_html">
        </mtapp:setting>
        <!-- end-customfield_<mt:var name="basename"> -->
    </mt:loop>
    <div class="actions-bar actions-bar-login">
        <div class="actions-bar-inner pkg actions">
            <button
                type="submit"
                accesskey="s"
                title="Save (s)"
                class="primary-button"
                >Save</button>
        </div>
    </div>
    </form>

    システムが送信するメール内容のカスタマイズ

    ブログのデザインや、システム画面に加えて、Movable Type のシステムが送信するメールの文面をカスタマイズすることができます。例えば、以下のようなカスタマイズが考えられます。

    システムが送信するメールの内容をカスタマイズしたいときは、グローバルテンプレートの [メールテンプレート] を編集します。

    Movable Type では HTML メールの送信はサポートされていません。プレーンテキストで、メールのカスタマイズをおこなってください。

    メールテンプレート変数

    メールテンプレートの中では、もちろん他のテンプレートと同じように Movable Type のテンプレートタグを利用できます。また、いくつかの変数も設定されていますので、メールをカスタマイズするにあたって、Movable Typeの持つ様々なデータを利用できます。メールのテンプレート内で変数を利用するには、MTVar もしくは、MTGetVar タグで、以下のように変数名を指定します。各々のメールテンプレートに設定されている変数を紹介します。

    <$MTVar name="ping_excerpt"$>

    各メールテンプレートで利用できる変数には、以下のようなものがあります。各変数は、MTVar, MTGetVar タグに設定した name モディファイアで指定します。

    コメントの確認

    コメンターとして登録したユーザーに送信される、確認メールです。

    • confirm_url: コメンターとしての登録 (登録メールアドレス) を確認する URL

    コメントの通知

    コメンターの登録を管理者に報せるメールです。

    • profile_url: 登録したユーザーのプロフィールページの URL

    コメントスロットル

    特定の IP のコメントユーザーをストットル規制したときに、管理者に送信されるメールです

    • throttled_ip: スロットル制約をされた IP
    • throttle_seconds: スロットル制約としてコメントを禁止する上限期間の値 (秒)
    • message: メール内のメッセージ (テンプレート内で変数を宣言)

    パスワードの再設定

    パスワードの再設定を行ったユーザーに送信されるメールです。

    • user_password: 再設定されたパスワード
    • link_to_login: ログイン画面への URL

    ブログ記事の共有

    ブログ記事を共有したとき、送信対象のメールアドレス (アドレス帳でも設定可能) に送信されるメールです。

    • send_excerpt: ブログ記事の共有時に、概要を送信するように設定しているときは、1 を返します。
    • send_body: ブログ記事の共有時に、本文を送信するように設定しているときは、1 を返します。
    • message: ブログ記事の共有時に、入力した [メッセージ] の内容を返します。
    • entry_status: ブログ記事の公開状況 (テンプレート内で変数を宣言)
    • entry_editurl: 共有するブログ記事の編集画面への URL

    新しいコメント

    新しいコメントが追加されたときに、記事作成者に送信するメールです。

    • view_url: 公開されたブログ記事の URL
    • approve_url: コメントを確認、承認する URL
    • spam_url: コメントをスパムとして判定する URL
    • edit_url: コメントを編集するURL
    • ban_url: コメントを投稿した IP アドレスを禁止する URL
    • state_editable: コメントの管理権限のあるユーザーへの送信するメールなら 1 を返します。

    新しいトラックバック

    記事の作成者に届く新しいトラックバックの通知メールのテンプレートです。

    • approve_url: トラックバックの公開を許可する URL
    • spam_url: トラックバックをスパムと判定する URL
    • edit_url: トラックバックの編集ページの URL
    • ban_url: トラックバックを送信した IP アドレスからのトラックバックを禁止する URL
    • unapproved: 未承認のトラックバックなら 1 を返します
    • state_editable: トラックバックの管理権限のあるユーザーへの送信なら 1 を返します

    購読の確認

    更新通知登録したユーザーに送信されるメールです。ここで使われる変数は、ほとんどが確認用の URL で使われます。

    • script_path: mt-add-notify.cgi への URL
    • redirect_url: メール本文中の登録の確認を行う URL をクリックしたあとに移動するページの URL (更新通知登録フォームの hidden タイプ input 要素で設定)
    • magic: 更新通知の確認 URL に使うマジックトークン
    • email: 更新通知を送信するメールアドレス (ユーザーが登録したメールアドレス)

    更新通知の登録フォームは、次のサンプルのようなテンプレートで作成できます。

    <form method="post" action="<$MTCGIPath$>mt-add-notify.cgi" id="add-notify">
        <dl>
            <dt><label for="notify-email">メールアドレス</label><dt>
            <dd><input name="email" size="30" value="" id="notify-email" /></dd>
        </dl>
        <div>
            <input type="hidden" name="_redirect" value="<$MTBlogURL$>" />
            <input type="hidden" name="blog_id" value="<$MTBlogID$>" />
            <input type="submit" value="登録する" />
        </div>
    </form>

    メールテンプレートの変更方法

    ここでは一番簡単なメールの変更として「メールフッター」を例に上げます

    1. [システムメニュー] から [デザイン] > [テンプレート] を選択します。
      システムメニュー デザイン テンプレート
    2. [テンプレートモジュール] から [メールフッター] を選択します。
      グローバルテンプレートの管理 メールフッター
    3. [メールフッター] テンプレートの初期値が表示されます。
      グローバルテンプレートの管理 メールフッター 修正前
    4. [メールフッター] を修正します。MT タグを利用して動的に内容の文章を用意するなど可能ですが、ここでは静的な内容として一般的なメールフッターをサンプルとして用いています。
      グローバルテンプレートの管理 メールフッター 修正後
    5. [変更を保存]をクリックします。

    これでシステムから送信されるメールのフッターが書き換えられました。

    グローバルテンプレートの利用

    Movable Type コミュニティ・ソリューションでは、ブログごとのテンプレートの他に、管理しているブログ全てで共通利用可能なグローバル・テンプレートがあります。Movable Type 上で多数のブログを管理する際に、ブログのデザインを一括で管理することができると便利です。グローバルテンプレートを利用することで、各ブログのデザインを個別に修正するのではなく、共有されたモジュール単位で、まとめてブログのデザインを変更することができます。

    グローバルテンプレートの編集

    コミュニティ・ソリューションでは、システム・モードの操作メニューに、[デザイン] という項目が追加されています。このメニューから、デザイナー権限を持つユーザーは、システム全体で共有されているグローバルテンプレートを編集することができます。システム全体で共有されているグローバルテンプレートには、以下の4種類があります。

    メール・テンプレートのカスタマイズについては、詳しくは「メールをカスタマイズする」を参照してください

    グローバルテンプレートのインクルード

    グローバルテンプレートを、ブログのテンプレート内で利用するには、通常のテンプレートのインクルードと同じく、MTInclude という MT タグを利用します。

    MTInclude タグを利用してテンプレートをインクルードする際に、Movable Type は以下の順番で、インクルードするテンプレートを決定します。

    利用例

    例えば、一つの Movable Type で100個のブログを管理していて、すべてのブログで共通の検索ボックスを、ブログ上に表示したい場合、その検索ボックスの部分を [Search Box] などの名前で、グローバルテンプレートとして作成し、各ブログでそのテンプレート名でインクルードします。

    <$MTInclude module="検索ボックス"$>

    もし、100個のブログの中の特定のブログだけ、検索ボックスのデザインを変更する必要がある場合は、そのブログのテンプレート・セットに、全てのブログで利用できるように、グローバルテンプレートに作成したのと同じ [Search Box] という名前で独自のテンプレートを用意します。それにより、そのブログでは、グローバルテンプレートではなく、ブログのテンプレート・セット内に保存されたテンプレートが優先されインクルードされます。この時、[Search Box] テンプレートを読み込むための MTInclude タグの変更は必要ありません。

    ログイン、登録画面をカスタマイズする

    Movable Type コミュニティ・ソリューションでは、ブログのユーザーや読者が目にする可能性のある、すべてのシステム画面のデザインをカスタマイズすることが可能です。これらのシステム・テンプレートは、グローバル・テンプレートの、システム・テンプレートとして管理されています。システム・テンプレートには以下の種類があります。

    [画面キャプチャ]

    これらのシステム・テンプレートは、初期状態では、通常の Movable Type と同じデザインとなっていますが、カスタマイズの利便性のために、モジュール化がされています。テンプレートモジュルを編集することで、比較的簡単に、システム・テンプレート全体をカスタマイズすることができます。

    管理者のための新規登録ユーザーの権限設定

    読者が自分で Movable Type に登録したとき、システム管理者があらかじめ設定した権限が、自動的に付与されます。この権限の設定は、以下の手順で行います。

    新規ユーザーへの権限設定
    1. ナビゲーションから、権限を設定したいウェブサイトあるいはブログを選択します。
    2. サイドメニューから、[設定] > [登録/認証] を選択します。
    3. [新規ユーザー]から[ロール選択] をクリック
    4. 権限の付与ウィンドウが表示されるので、新しく登録されるユーザに設定するロールを選択します

    ここで設定した権限が、読者がブログにユーザー登録したときに、自動的に設定されます。

    Movable Type 5.0x 以前のバージョンを利用している場合

    Movable Type 5.0x以前のバージョンでは、新規ユーザーの権限設定の場所が異なります。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[設定] > [権限] を選択します。
    3. 権限: システム全体ページにある [ブログ権限をユーザーに付与] をクリック
    4. 権限の付与ウィンドウが表示されるので、[(新規ユーザー)] というユーザー名を選択して [次へ] をクリック
    5. ユーザーにあたえる [ユーザー] などの権限を選択し [次へ] をクリック
    6. 権限を許可したいコミュニティブログや掲示板を選択し [確認] をクリック

    コミュニティブログと掲示板を利用するための権限

    コミュニティブログと掲示板の権限設定は、通常のブログと同じ仕組みで管理されています。掲示板においては、使われている用語が異なるため、若干分かりにくいのですが、新しくトピックを作成する権限を設定したいときは、[ブログ記事の作成] という権限を設定することと同じです。

    登録した読者ユーザーが、コミュニティブログと掲示板にコンテンツを投稿するためには、次にあげるような権限設定が必要です。

    新しいロールの作成

    ロールは、登録するユーザーの権限をまとめた役割を示します。ユーザーが登録したブログでどのような作業を行えるようにするのか細かく設定できます。新規ロールの作成について、また、Movable Type インストール時に用意されているロールについてはドキュメントを参照してください。

    では具体的にコミュニティのプロフィールユーザに前項の権限「記事の作成」「記事の公開」「コメントの投稿」ができるようなロール、「コミュニティ参加者」を作成してみましょう。

    1. ナビゲーションから、[システム] を選択します。
    2. サイドメニューから、[設定] > [ロール] を選択します。
    3. [新しいロールを作成] をクリックします。
    4. [新しいロールを作成]画面で設定を行います。

      • [ロール名] に「コミュニティ参加者」と記入します。
      • [説明] は必須項目ではありませんが「コミュニティに参加するユーザーの為のロールです」と記入します。
      • 「記事の作成」「記事の公開」「コメントの投稿」にチェックを入れます。
    5. [変更を保存] をクリックします。

    この設定をした後、上述の「新規ユーザーのロール選択」で「コミュニティ参加者」というロールを付与する事が出来るようになります

    コミュニティの設定

    登録していない匿名ユーザーにもお気に入り投票を許可したり、登録ユーザーにファイルのアップロードを許可しているとき、アップロード先をどこにするかは、コミュニティの設定画面で設定します。設定方法は [コミュニティ・ソリューションの初期設定] を参照してください。

    掲示板とコミュニティブログのテンプレート

    コミュニティ・ソリューションでは、ブログの作成時に、簡単にテンプレートを設定することができます。以下の3種類のテンプレート・セットが標準で用意されており、その中から選択することで、コミュニティ向けのブログを手軽に作成することが可能です。

    create-forum_select_template.png

    コミュニティブログの作成

    コミュニティの運営をはじめる前に、ドキュメント: コミュニティ・ソリューションの初期設定 を参考に、コミュニティの初期設定を行ってください。

    コミュニティブログは、複数のユーザーや、ブログの読者など、幅広く投稿を受付けるブログです。通常の Movable Type の管理画面からの投稿だけでなく、コミュニティ掲示板 と同じようにブログのインターフェイスから直接コンテンツを投稿できます。ブログインターフェイスからの記事投稿画面は、テンプレートで管理されています。ですので、全体のデザインと統一したり、カスタマイズを行れるので、ユーザーに Movable Type の管理画面を意識させない (必要以上の作業をさせない) 環境を作れます。

    また、記事に対するお気に入り機能も、コミュニティブログの特徴です。お気に入りの登録状況に合わせて記事を並べ替えたりできます。

    コミュニティブログの作成

    コミュニティブログは、通常のブログと同様に作成します。

    1. ナビゲーションから、[ウェブサイト] を選択します。
    2. サイドメニューから、[ブログ] > [新規] を選択します。
    3. [ブログテーマ] から [コミュニティブログ] を選択します。
    4. その他の必要項目を入力し、[ブログを作成] をクリックします。
    5. コミュニティブログへの新規ユーザーの権限を設定します。

    コミュニティブログの基本的な運営は Movable Type で作成できる 通常のブログ と同じです。記事をお気に入り登録できたり、お気に入りの登録状況に合わせて記事を並べ替えたりといったカスタマイズができます。

    既存のブログからコミュニティブログに変更するには

    既に運営中のブログを、コミュニティブログに変更するのもテンプレートセットの切り替えなどの簡単な作業で変更できます。詳しくはドキュメント: 既存のブログからコミュニティ掲示板・ブログに変更する を参照してください。

    コミュニティ掲示板 (フォーラム) の作成

    コミュニティの運営をはじめる前に、ドキュメント: コミュニティ・ソリューションの初期設定 を参考に、コミュニティの初期設定を行ってください。

    コミュニティ掲示板は、複数のユーザーによるカテゴライズされたトピック (話題) の投稿と、それに対するコメント、評価を行う場を提供します。ひとつの掲示板は、ひとつのブログとして管理されます。また、ひとつのトピックは、ひとつの記事として管理されます。

    掲示板の新規作成

    例として、Movable Type コミュニティフォーラムという掲示板を作成します。コミュニティ掲示板の作成は、通常のブログの作成と同じ手順で行えます。

    1. サイドメニューから、[ブログ] > [新規] を選択します。
      または、システムダッシュボード・ユーザーダッシュボードの [ウェブサイト] から [新しいブログ] を選択します。
    2. [ブログテーマ] から [コミュニティ掲示板] を選択します。
    3. その他の必要項目を入力して、[ブログを作成] ボタンをクリックします。

    カテゴリの設定

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

    この場合、トップレベルカテゴリとして作成された、テンプレートタグプラグインが、フォーラムカテゴリです。

    さらにそれぞれのフォーラムカテゴリ内に、サブカテゴリがあります。これは各フォーラムカテゴリに属するフォーラム (掲示板) で、これらの各フォーラムにトピック (ブログ記事) を追加します。例えば社内で掲示板を利用するなら、フォーラムカテゴリは、部署や製品別などの大きな枠として設定するとよいでしょう。また、サブカテゴリは、トピックの分類に利用しますので、効率的に議論を分類できるように、業務の種類などを設定するとよいでしょう。

    掲示板へ投稿されたトピックの公開設定

    その他の掲示板の設定は、通常のブログと同じように、操作メニューの [設定] を選択することで、変更できます。

    例えば、読者ユーザーからのトピックの新規投稿をすぐに公開せず、承認してから公開したい場合は、以下のように設定すると管理者が承認したトピックのみを公開してコメントを受付けられます。

    1. ナビゲーションから、[ブログ] を選択します。
    2. サイドメニューから、[設定] > [投稿] を選択します。
    3. ブログ記事設定の管理画面に移動し、[記事作成の既定値] の [更新状態] セレクトメニューの値を [下書き] に設定します。
    4. (新規ユーザー)に設定するロールから、 [ブログ記事の公開] 権限を外します。

    また、トピックに対するコメント返信の設定は、管理画面のコメント設定画面 (ブログメニューの [設定] から [コメント] を選択して移動) で設定できます。

    掲示板への読者ユーザーの権限設定

    ブログの読者が、自分で Movable Type に登録し、掲示板上でトピックを投稿したり、コメントするためには、[新規ユーザー] に対して、掲示板への投稿権限を追加する必要があります。

    管理者のための新規登録ユーザーの権限設定を参照しながら、作成した掲示板への新規ユーザーの権限設定を行ってください。

    既存のブログからコミュニティ掲示板に変更するには

    既に運営中のブログを、コミュニティ掲示板に変更するのもテンプレートセットの切り替えなどの簡単な作業で変更できます。詳しくはドキュメント: 既存のブログからコミュニティ掲示板・ブログに変更する を参照してください。

    掲示板とコミュニティブログとは

    コミュニティ・ソリューションの最も重要な機能として、ブログの読者が参加できる掲示板、およびコミュニティブログの機能があります。ブログの読者は、Movable Typeに自分で登録することで、掲示板やコミュニティブログに書き込むことができるようになります。

    掲示板では、話したいトピック(話題)を自由に投稿し、そのトピックについてユーザー同士で会話をすることができます。

    forum.png

    コミュニティブログには、全員でブログ記事を投稿して、記事のお気に入り投票なども可能です。ブログ記事やコメントを書き込むだけでなく、写真やビデオ、オーディオなどのファイルを投稿することも可能です。

    community.png

    このようなコミュニティ機能によって、読者参加型でウェブサイトのコンテンツを充実させることができます。

    また、コミュニティブログや掲示板の各画面は、コミュニティ・ソリューションのテンプレートを編集することによって、独自のデザインにカスタマイズすることができます。

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

    Movable Type コミュニティ・ソリューションは、ウェブサイトやブログに加え、お気に入り投稿とランキング表示、掲示板など様々な機能をまとめて、Movable Type での管理を可能にします。強力な CMS に追加された様々な機能はコミュニティの構築、コンテンツの充実、更新頻度のアップ、リピート率の向上に貢献。登録ユーザーは、各種サービスを同じアカウントで利用することができるので、システム管理の手間も軽減されます。

    ユーザー登録

    ウェブサイトの読者を参加者へ。コミュニティ・ソリューションはウェブサイト上で運営される様々なサービスを利用できるようにユーザ登録機能を提供します。Movable Type 上でメンバーを増やすこともできますし、既存の登録メンバーと同期させることも可能です。登録状況は管理画面のダッシュボードで確認できます。

    ユーザー登録には、Movable Type の新規ユーザーとして作成する方法と、各 OpenID プロバイダの情報を利用して登録する事が可能です。各 OpenID にて登録されたユーザーは各プロバイダの認証を利用してサインインし、コミュニティへ参加できます。

    ユーザープロフィール

    プロフィールページ

    登録ユーザー各々にプロフィールページが提供されます。プロフィールページでは、ユーザープロフィールだけではなく、最近投稿したトピックやブログ記事、コメント、お気に入りに登録したトピックや記事を確認できます。RSS フィードも提供されるので、気になるユーザーのアクティビティをチェックできます。管理者は各ユーザーのプロフィールページをチェックすることで、アクティブなユーザーに権限を追加するなど、コミュニティ拡張の指針にも使えます。

    コミュニティ掲示板

    ユーザ同士で自由にディスカッションができる、コミュニティー掲示板 (フォーラム) を数回のクリックで簡単に公開。ユーザーはブログのデザインにあわせてカスタマイズした画面から、掲示板の話題 (トピック) の作成、コメントを投稿できます。

    コミュニティブログ

    コミュニティ掲示板に加え、コミュニティブログ作成機能も提供します。コミュニティブログでは、掲示板と同じように登録ユーザーにブログ記事を作成する権限を与える他、記事のお気に入り登録機能、コメント投稿機能を利用できます。

    プロフィール画像

    プロフィール画像

    登録ユーザーは自身のアカウントで使用するプロフィール画像をアップロードして使用できます。プロフィール画像は、掲示板のトピック、コミュニティ・ブログのブログ記事、各々のコメントで表示され、各々のプロフィールページへリンクしています。

    カスタムフィールド

    CSカスタムフィールド02

    プロフィール項目を自由に追加できます。たとえば、好きなアーティストや、好きな色などの項目をプロフィールに追加したり、掲示板のトピックに入力項目を追加して、様々な種類の掲示板を作成できます。カスタムフィールド機能によって、記事やウェブページ、カテゴリ、フォルダ、そしてプロフィールに自由な項目を追加できます。

    レコメンド

    お気に入りボタン

    気になる記事や、今後のやりとりが気になるトピックを見つけたら、お気に入りに登録していつでも見直せます。お気に入り機能は、コメントとは別の新しいコミュニケーションの形です。

    コミュニティを盛り上げる仕掛け

    お気に入りに登録された数は、トピックや記事ごとに確認できるだけではなく、人気順に並べかえることもできるので、ユーザーのリピート率アップと、コミュニティを活性化する仕掛けをつくれます。

    コミュニティ・ソリューションのインストール

    コミュニティ・ソリューションのインストールは、通常の Movable Type のインストールと同様の手順でインストールできます。

    インストールの手順は基本的に同じですが、作成するブログで利用する (作成するコンテンツの種類) を「コミュニティブログ」か「コミュニティ掲示板」から選択します。

    インストール済の環境からコミュニティ・ソリューションにアップグレードする

    既にインストールして運営している Movable Type を Movable コミュニティ・ソリューションにアップグレードする方法も、これまでのアップグレードと同じです。

    インストール後は、コミュニティの運営をはじめる前に、ドキュメント: コミュニティ・ソリューションの初期設定 を参考に、コミュニティの初期設定を行ってください。

    コミュニティソリューションで追加される機能を活用するには、インストール後、新規作成するブログで使用するブログテーマを、コミュニティ掲示板もしくはコミュニティブログにしてください。