Movable Type 4 のコミュニティ機能(その1:プロフィール画面)

Movable Type 4 のコミュニティ機能(その1:プロフィール画面)

Posted at January 23,2009 1:55 AM
Tag:[Community, MovableType, Profile]

Movable Type 4 のコミュニティ機能について、少しずつ紹介していきます。

1.動作を確認するときの注意事項

コミュニティ機能は、プロフィールページなど、ログイン状態をチェックして表示を変更するようになっています。
インストールしたコミュニティの動作確認や実験を行うときは、異なるブラウザを2つ以上開き、

  • ひとつは管理画面を操作するために使用する
  • 他はコミュニティ機能を確認する(例えばプロフィールページなどの参照)ために使用する

としてください。

同じ種類のブラウザを2枚開いたり、異なるタブで開いても、同一のクッキーを参照するので、期待する動作にならない可能性があります。

2.プロフィールページの動作

まず、プロフィールのページから調べていきます。

2.1 サインインしている状態の自分のプロフィールページ

自分のプロフィールページには、ユーザー名とプロフィール画像と「ユーザー情報の編集」というリンクを表示します。

自分のプロフィールページ

プロフィール画像は、これまではシステム管理画面からのアップロードが必要でしたが、「ユーザー情報の編集」をクリックした次の画面の「プロフィール画像」からアップロードできます。

ユーザー情報の編集

アップロード直後の画面です。

ユーザー情報の編集

プロフィールのページにも反映されます。

プロフィールのページ

サイドバーの「注目」「被注目」は、「お気に入り」への追加、あるいは mixi の「マイミク」のようなものです。他のユーザーを注目している場合、あるいは注目されている場合に、そのユーザーがこの欄に表示されます(表示方法は後述)。初期状態は誰も注目、被注目していないので、このように表示されます。

サイドバーの「注目」「被注目」

2.2 サインインしている状態の他のユーザーのプロフィールページ

プロフィールページには、「注目する」というリンクが表示されます。このリンクをクリックすると、先ほどのサイドバーの「注目」に注目したユーザーが表示されます。

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

「注目」をクリックすると、Ajax によって即座に表示が変わります。

注目したあとの他のユーザーのプロフィールページ

自分のプロフィールページのサイドバーもこのように表示が変わります。

自分のプロフィールページのサイドバー

2.3 サインインしていない状態のすべてのユーザーのプロフィールページ

プロフィールのページにはユーザー名と画像のみが表示されます。

サインインしていない場合のすべてのユーザーのプロフィールページ

3 注意事項

コミュニティのテンプレートセット(コミュニティブログ・コミュニティ掲示板)で新たにブログを作成した場合、新たに作成したブログにも他のユーザーのプロフィールが表示されるようです。

関連記事
トラックバックURL


コメント

MTを使うようになってこちらのサイトでいろいろ情報を得て利用させていただいています。

この記事へのコメントで失礼致しますが、質問があります。
現在MT4.23日本語版(ライセンス購入しています)で検証をおこなっていますが、ユーザー情報をログインしたユーザー自身が変更できないようにすることは可能でしょうか。

ある団体でまとまった数のユーザー名を作成して管理をおこなおうと考えているのですが、ログインしたユーザー自身が自分のユーザー名(ユーザーID)を変更できてしまい、今後の管理に運用上支障が出てしまうことが考えられます。

可能であれば、管理画面からログインしたユーザーのシステム権限をチェックして、システム管理者でなければユーザー名の部分は変更不可のフィールドとして表示できるような方法があればと考えています。
あるいは、システム管理者でなければ ユーザー情報の編集 画面を表示できないような設定も考えています。

よろしくお願い致します。

[1] Posted by motta01 : February 17, 2009 9:09 AM

>motta01さん
こんにちは。
ご質問の件ですが、まずどのような手順でユーザーを追加されているかをご教示ください。また、「ログインしたユーザー自身が自分のユーザー名(ユーザーID)を変更でき
てしまい、」も、どのような手順かをお知らせください。

なお、追加したユーザーにシステム権限を与えていない(=ユーザー作成画面の「システム管理者」に何もチェックをしない)のであれば、システム管理画面からユーザー情報は変更できない(その画面への移動もできない)ように思われます。
認識誤りがありましたらご指摘ください。
それではよろしくお願い致します。

[2] Posted by yujiro logo : February 19, 2009 1:50 PM

>yujiroさま
返信ありがとうございます。
こちらの説明が不足して申し訳ありませんでした。

ユーザーを追加した手段ですが、管理画面(....../cgi-bin/mt/mt.cgi)からシステム管理者でサインインをおこない、システムメニュー > 一覧 > ユーザーで表示される画面より +新しいユーザーを作成 をクリックし、システム権限は何も付与せず、適切なロールを適切なブログに付与してユーザーを作成しました。システム管理者が明示的にユーザーを作成した手順となります。

上記で作成したユーザーが、管理画面(....../cgi-bin/mt/mt.cgi)からログインをおこない こんにちはxxxxxさん の部分、あるいは右側に表示される ユーザー情報の編集 をクリックすると ユーザー情報の編集 画面が表示されるかと思います。ここで ユーザー名 の部分が自分で変更できてしまう点がご確認頂けると思います。

こちらの運用では、この ユーザー名 をユニークなIDとして管理することを考えています。ユーザー自身でこの ユーザー名(=ユーザーID)を変更されてしまうと、ユーザー管理の部分で今後支障が発生することが考えられるため、ユーザー自身ではこの部分は変更できないようにすることはできないか、調査をおこなっているところです。

具体的には、ログインしたユーザー本人が表示した場合(こんにちはxxxxxさん の部分か ユーザー情報の編集 をクリックした場合)は ユーザー名 のフィールド部分は表示のみとし、管理者であれば編集も可能、ということができればと考えています。

現段階で、以下の点が判明しています。

1.システム管理者が管理画面からサインインし ユーザーA を表示する画面とユーザーA が管理画面からサインインして自分の情報を表示する画面で差異がある(状態 の項目と WEBサービスパスワード の部分)

=>ここで表示したユーザーの条件分岐(ログインした本人の表示か、管理者の表示か)
で該当のフィールドを 編集可能/表示のみ とわけることができる可能性あり

2.ネットでいろいろ検索したところ プロフィールの編集フォーム テンプレートがあるようだが、システム管理者で システムメニュー > デザイン > テンプレートで グローバルテンプレート の画面をみても表示上記のテンプレートは表示されて いない

=>このテンプレートの修正、変更により対応可能の可能性あり

サーバーも自分達の部門で使用しているものなので(管理者は別のためサーバー側にファイルを転送する作業は多少手続が必要となりますが)、いろいろテストすることは可能です。

お手数おかけしますがよろしくお願い致します。

[3] Posted by motta01 : February 19, 2009 2:56 PM

>yujiroさま

連続投稿で失礼致します。
こちらでいくつか確認した内容もあわせて掲載させて頂きます。

*************************************************************

A:URL 情報の確認

システム管理者がサインインして ユーザーA を表示した際の URL
http://(xxx.xxx.xx)/cgi-bin/mt/mt.cgi?__mode=view&_type=author&id=9

ユーザーA がサインインして自分を表示した際の URL
http://(xxx.xxx.xx)/cgi-bin/mt/mt.cgi?__mode=view&_type=author&id=9

=>URL 情報に相違は無

内部で動的に表示のための html ファイルが作成されており、ここで何らかの条件分岐がおこなわれている可能性が考えられる。
ちなみに上記 URL をそのままコピーして表示させようとするとサインイン画面が表示される。
ここで ユーザーB (システム管理権限のないユーザ)でサインインしようとすると権限がないというメッセージが表示される。

B:表示されるページのソースの確認

ユーザーの編集 画面にて、ブラウザ(Internet Explorer 6.0)から 表示 > ソースより、同一ユーザー(ユーザーA)におけるシステム管理者と自身でおこなった際に表示されている画面のそれぞれのソースを確認。
相違部分が確認できたが、if 文等で条件分岐されている部分は確認できない。

ユーザー名 部分より ユーザーA を表示している input タグの内容は以下。

<input name="name" id="name" class="full-width" value="user003" />

ここに diabled="disabled" あるいは readonly="readonly" という属性が、システム管理者表示の場合と自分表示の場合で条件分岐して挿入されるような手法があれば可能となる。

システム管理者が表示する場合と自分で表示する場合に、表示内容が異なる(状態と WEBサービスパスワード のように)点があることから、その条件分岐部分を解析することにより、何らかのコーディングを追加すれば今回の要望が実現できると考
えられる。

*************************************************************

ご参考になれば幸いです。

[4] Posted by motta01 : February 20, 2009 2:47 PM

たびたびスミマセン。。
タグ部分が表示されていませんでした。

>ユーザー名 部分より ユーザーA を表示している input タグの内容は以下。

<input name="name" id="name" class="full-width" value="user003" />

ここに diabled="disabled" あるいは readonly="readonly" という属性が、システ
ム管理者表示の場合と自分表示の場合で条件分岐して挿入されるような手法があれ
ば可能となる。

[5] Posted by motta01 : February 20, 2009 2:54 PM

>motta01さん
こんばんは。
ご連絡&情報ありがとうございました。
知りたかったのは、システム管理者以外がユーザー情報を変更できるリンクの場所でしたので、それだけ分かれば後は解決できると思います(右上のリンクは完全に見落としてました)。
それではよろしくお願い致します。

[6] Posted by yujiro logo : February 22, 2009 1:04 AM

>yujiroさま

UserNameEditController プラグイン の記事にてプラグインを作成して頂い
た点を確認致しました。
当方にて検証テスト等をおこない、何かありましたら、該当の記事にてコメントさ
せて頂きたいと思います。
ありがとうございました。

[7] Posted by motta01 : February 23, 2009 2:56 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)