Movable Type 備忘録

 訪問者さんのプロフィール編集を可能にする

こんばんわ^^

Templets プラグインが機能追加されましたので更新した方が便利ですよぉ (●´∀`●)

さて、今回はコメント投稿時にこのサイトにユーザ登録して頂いた訪問者さんのプロフィール画像を登録できるようわたしのサイトに設置してみました。気づいてくれた人いるかなぁ (; ̄∇ ̄A

プロフィールの編集は通常でも可能ですが、プロフィール画像を登録することができませんね。
でも、実は Movable Type 4.2 Pro のフォーラム、またはコミュニティブログを設置した人はご存知かもしれませんが、フォーラム、またはコミュニティブログに限りユーザ登録した人のプロフィール画像は変更可能になります。

今回はそれを流用するカスタマイズです。

また、せっかく Templets プラグインという便利なものがあるから、後日テンプレットとしてご紹介するつもりでいます。( できるかなぁ )
とりあえず、ここでは一時的にプロフィールを変更可能にするカスタマイズをご紹介しますね。

ユーザプロフィールの編集について

このカスタマイズは Movable Type Pro 4.2( コミュニティパック同梱版 )をお使いの人のみとなりますのでお間違えのないように。

先ほど言いましたように、通常のブログではプロフィール編集はできてもプロフィール画像の登録はできません。
どうせならすべてにおいてできるようにして欲しいところですが、まぁしょうがないですね。

ブログのプロフィール編集画面をプロフィール画像を登録可とするには、以下のテンプレートを修正する必要があります。

  • mt.js
  • プロフィールの編集フォーム( グローバルテンプレート )

ブログ記事ページを表示すると JavaScript でサインインするかなどのリンクを表示してます。このリンク先を変更します。
そして、そのリンクで表示されるものはグローバルテンプレートの「プロフィールの編集フォーム」になります。
このテンプレートは元々はフォーラム、コミュニティブログ用のものなので、そのままでは使用できません。ですので、チョビッと通常のブログから変更できるようカスタマイズしちゃいます。

カスタマイズ

まず mt.js をカスタマイズしちゃいましょ (>∀< )

  1. 変更箇所識別用のフラグ追加

    どこを変更したかを識別するためのフラグを追加します。

    mt.js / 24 行目

    1. <mt:setvar name="mt_memo" value="1">

    24 行目あたりに上記を追加してください。青字の部分はお好みで変更してください。

  2. プロフィール編集画面のリンク先変更

    次にプロフィール画面表示用のリンク先を変更します。

    mt.js / 592 行目

    1. <mt:If name="mt_memo">
    2.     user_link = u.name + '(<a href="<$mt:CGIPath$><$mt:CommunityScript$>?__mode=edit&blog_id=<$mt:BlogID$>&return_to=' + encodeURIComponent( location.href );
    3.     user_link += '">プロフィール</a>)';
    4. <mt:Else>
    5.     user_link = '<a href="<$mt:CGIPath$><$mt:CommentScript$>?__mode=edit_profile&return_url=' + encodeURIComponent( location.href );
    6.     user_link += '">' + u.name + '</a>';
    7. </mt:If>

    上記はサインインリンク先を表示するためのコードになります。
    デフォルトでは MTCommentScript( mt-comment.cgi )になります。これだとご存知のようにプロフィール画像の登録ができません。
    それを MTCommunityScript( mt-cp.cgi )に変更してます。
    青字の部分は適宜変更してください。

以上で mt.js の変更は完了です。
一通り完了したら mt.js を再構築さいてください。

次に、「プロフィールの編集フォーム」グローバルテンプレートを変更します。
グローバルテンプレートは MT の管理画面から「システムメニュー」>「グローバルテンプレート」を選択することで、グローバルテンプレート一覧が表示されます。
その中に「プロフィールの編集フォーム」があります。

  1. 変更箇所識別用のフラグ追加

    先ほどと同様に変更箇所識別用のフラグを 1 行目あたりに追加します。

    プロフィールの編集フォーム / 1 行目

    1. <mt:setvar name="mt_memo" value="1">

    青字は適宜変更してください。

  2. インクルードヘッダ/フッター差し替え

    次に「シンプルフッター」グローバルテンプレートをインクルードしてる箇所があります。 そちらを通常の mt/tmpl/cms/include/chromeless_footer.tmpl に変更します。以下のように変更してください。

    インクルードフッター差し替え / 108 行目あたり

    1. <mt:If name="mt_memo">
    2. <p><a href="<$mt:Var name="return_to"$>">元のページに戻る</a></p>
    3.  
    4. <mt:include name="include/chromeless_footer.tmpl">
    5. <mt:Else>
    6. <p><a href="<$mt:Var name="return_to"$>">元のページに戻る</a> / <a href="<$mt:CGIPath$><$mt:CommunityScript$>?__mode=view<mt:If name="blog_id">&blog_id=<$mt:Var name="blog_id"$></mt:If>">プロフィールを表示する</a></p>
    7.  
    8. <$mt:Include module="シンプルフッター"$>
    9. </mt:If>

    同じく、22 行目辺りにシンプルヘッダーをインクルードしてますので、こちらも chromeless_header.tmpl と差し替えます。

    インクルードヘッダ差し替え / 22 行目あたり

    1. <mt:If name="mt_memo">
    2. <mt:include name="include/chromeless_header.tmpl">
    3. <mt:Else>
    4. <$mt:Include module="シンプルヘッダー"$>
    5. </mt:If>
  3. プロフィールを表示するリンクを削除

    最後に「プロフィールを表示する」リンクを削除します。
    このリンクは、フォーラム、コミュニティブログ用のリンクなので、通常のブログでは不要です。

    プロフィールを表示するリンクを削除 / 10 行目

    1. <mt:If name="mt_memo">
    2.     ユーザー情報を更新しました。 <a href="<$mt:Var name="return_to"$>">元のページに戻る</a>
    3. <mt:Else>
    4.     ユーザー情報を更新しました。 <a href="<$mt:Var name="return_to"$>">元のページに戻る</a> / <a href="<$mt:CGIPath$><$mt:CommunityScript$>?__mode=view<mt:If name="blog_id">&blog_id=<$mt:Var name="blog_id"$></mt:If>">プロフィールを表示する</a>
    5. </mt:If>

以上で「プロフィールの編集フォーム」グローバルテンプレートの変更は完了です。
一通り変更したら保存してください。そしてブログ記事ページを表示して、登録ユーザでサインすると「プロフィール」というリンクが表示されるのを確認してください。 リンクをクリックするとプロフィール編集画面が表示されて、プロフィール画像が表示されると思います。

以上です。
後日( 平日は無理ですが、週末にでも )テンプレットを作成してみようと思います。

また、先日ご紹介したコメント欄にアバター表示と併用すれば、登録したプロフィール画像が表示されるようになります。ご参考までに (●>∀<●)/

 Trackback Pings(1)

from Weeeblog.net

Movable Type 4.2 のリリースに伴い、Weeeblog.net も...

 Comments(9)

#1: Posted by Author Profile Page oscar @ August 19, 2008 [REPLY]
user-pic

こんばんは。
>Templets プラグインが機能追加されましたので
今日MTDEVCONで、ご本人に上書き機能の事聞いてみたら、対応したよと教えていただきました。
これで、Templetsの上書き更新が出来て、初心者にも易しくなりますよね。
>後日テンプレットとしてご紹介するつもりでいます。( できるかなぁ )
早速使ってみましたけれど、すごく簡単ですよ。TemplateSets用config.yamlと基本的に一緒です。
しかも、TemplateSets用とTemplets用は一つのconfig.yamlに書くことが可能です。
つまり運用ごとに別プラグインにしなくても済んだりします。

#2: Posted by Author Profile Page bzbellからoscarへの返信 @ August 19, 2008 [REPLY]
user-pic

>>1 oscar さん

こんばんわ^^

あれっ!? 今日は飲み会なしですか!?
会社お休みして参加されてたそうであせあせ

> 速使ってみましたけれど、すごく簡単ですよ。TemplateSets用config.yamlと基本的に一緒です。

みたいですね。
対応された ActionStream が公開されてたのでソース拝見させてもらってましたのチュ!

> しかも、TemplateSets用とTemplets用は一つのconfig.yamlに書くことが可能です。

えっ!? そうなんですか!!
それはすっごいサプライズですっキャハハ
ホントこのプラグインというか、機能は必須ですよねぇ。

後日分からないことがあったらお聞きしちゃうかも、です。
その時はよろしくお願いしますのもじもじ

#3: Posted by Author Profile Page Kei @ August 20, 2008 [REPLY]
user-pic

おはようございますバイバイ
プロフィール編集の話ではないのですが。
自分のブログへユーザ登録の画面、CSSカスタマイズしたのですが・・・
それ以前に、システムのグローバルテンプレート→サインイン、ヘッダー、を開くと
<mt:CommunityScript>は存在しません が3箇所
GlobalJavaScriptを開くと
<mt:CommunityScript>は存在しません が8箇所
<mt:IfAnonymousRecommendAllowed>は存在しません が2箇所
これは、テンプレートプラグインとは関係ないと思うのですが、、
気にしなくても良いのでしょうかねはて?
bzbellさんならご存知かなと思いまして、、すみませんしくしく

#4: Posted by Author Profile Page bzbellからKeiへの返信 @ August 20, 2008 [REPLY]
user-pic

>>3 Kei さん

こんにちわ^^

Kei さんがお使いの MT は Movable Type Commercial というもので、コミュニティ機能がないバージョンの MT ですよね。
なので、MTCommunityScript 含め、コミュニティ機能に関連するすべてのタグを使用するとそのようなエラーが表示されると思いますよ。ちなみにわたしの MT は Movable Type Pro 4.2( Commercail 版+Community Pack が同梱されてる )です。

たぶん、グローバルテンプレートは Pro 版だろうと Commercial 版だろうと共通なのかもしれませんね。
たぶん Commercial 版ではそのグローバルテンプレートは使ってない( てか、使えない )と思いますよワクワク

#5: Posted by Author Profile Page oscarからbzbellへの返信 @ August 20, 2008 [REPLY]
user-pic

>>4 bzbell さん
>たぶん、グローバルテンプレートは Pro 版だろうと Commercial 版だろうと共通なのかもしれませんね。
>たぶん Commercial 版ではそのグローバルテンプレートは使ってない( てか、使えない )と思いますよ
ですね。というか、そういうグローバルテンプレートがセットされちゃうのは、問題な気がします。
>mt:CommunityScript>は存在しません が8箇所
要はCommunity Packがインストールされている事で、拡張されるMTタグな訳ですからね。

>あれっ!? 今日は飲み会なしですか!?
>会社お休みして参加されてたそうで
さすがに朝から始まってますので、それほど元気では無いです。それにフリーランスの皆さんは仕事待ってますからね。
軽くお茶して(ギネスというお茶だったけど)解散しましたよ。
同じ会社員のyujiroさんも、お休み取って参加されてました。会えて良かったー

#6: Posted by Author Profile Page Keiからbzbellへの返信 @ August 20, 2008 [REPLY]
user-pic

>>4 bzbell さん
なるほどぉ~~
となるとグローバルテンプレートは放置でいいですねサングラス
CSSだけいじくってみます^^
グウグウありがとうございました

#7: Posted by Author Profile Page Keiからoscarへの返信 @ August 24, 2008 [REPLY]
user-pic

>>4 bzbell さん
>>5 oscar さん
4.21からなのか。。私の管理画面がおかしいのかわかりませんが。
グローバルテンプレートの内容がガラッっとかわってました
サインインテンプレート等がなくなってました^^;

CommentUserPicプラグインを利用して設置してみます~
見た目のカスタマイズは出来なさそうですね><

#8: Posted by Author Profile Page bzbellからKeiへの返信 @ August 24, 2008 [REPLY]
user-pic

>>7 Kei さん

こんにちわ^^

> サインインテンプレート等がなくなってました^^;
えっ!? MT のバージョンをアップしたとしても現在のテンプレートには影響ないはずですイヤイヤ
それってデータベースおっかしいってことないですかエーン !?

#9: Posted by Author Profile Page Keiからbzbellへの返信 @ August 24, 2008 [REPLY]
user-pic

>>8 bzbell さん
こんばんわぁ

>それってデータベースおっかしいってことないですか!?
たぶんおかしくなってると思います。。。
管理画面で操作しているとおかしなエラー出たり(時々)
再構築中にもエラー出たり・・・
記事にも書いたのですがインストールの時からチカッパ+MySQL だと
データベース接続の後に次ぎに進めるのですが下部にエラー出るんですよね

チカッパは、もう駄目かもしれないです><

 Post a Comment

 

コメント用フィード