パーソナルツール
現在の場所: ホーム plone SNS風味 プロフィール プロフィール表示ポートレット
書いた本
Plone 完全活用ガイド の Chapter 1, 2, 3, 11 を執筆しました。
plone のインストール、使い方から、機能・デザインのカスタマイズ、プロダクトの作り方まで、 plone のすべてがぎゅっと詰まっている書籍になっていると思います。
plone に興味がある人から、すでに使いこなしている方まで、ぜひ読んでみてください。
Plone 完全活用ガイドのサポートページ
ナビゲーション

 
文書操作

プロフィール表示ポートレット

作成者 takanori 最終変更日時 2005年08月29日 16時40分

作成したプロフィールが他のメンバーから見えるようにするための、ポートレットを作成します。

目次

概要[overview]

さて、 データ項目を追加設定画面に項目追加 でメンバーが自分のプロフィール情報を登録できるようになりました。

しかし、このままでは登録した情報は自分しか見ることができません。

そこで、メンバーのホームにアクセス時にプロフィール情報を参照できるように、ポートレットを作成します。

今回作成するのは以下の2つの Skript と1つの Page Template です。

  • getMemberById Id からメンバーのデータを取得する Python Script。
  • getDispname Id からメンバーの表示用の名前を取得する Python Script。
  • portlet_profile プロフィールを表示するポートレット本体。

Script 作成[script]

最初に2つのスクリプトを custom フォルダに作成します。 このスクリプトはポートレットの中で使用されます。

このスクリプトをわざわざ外だしにした理由は、Page Template の中で記述すると複雑になるということもありますが、それよりも 「管理者権限じゃないと実行できないメソッド」を使用している。 ということの方が重要です。

例えば getMemberById スクリプトでは、CMFCore/MembershipTool.py で定義されている getMemberById(id) というメソッドを使用しています。

このメソッドはメンバーは実行できず、管理者権限を持ったユーザでないと実行できません。 そこで zope の Proxy roles という機能を使って、スクリプトに管理者権限を与えます。

スクリプト等に管理者権限を与えるためには、その対象となるアイテムの proxy タブをクリックします。

Select proxy tab

すると、Proxy roles 設定画面が表示されるので、与えたい権限(この場合は Manager)を選択して Save Changes ボタンをクリックします。

Set manager proxy role

このように設定することにより、普通のメンバーが実行できる Script の中で、管理者権限がないと実行できないメソッドが実行できるようになります。

ポートレット作成[create]

ここまででプロフィール情報を表示するためのポートレットを作成する準備ができました。

あとは、custom フォルダに portlet_profile という名前の Page Template を作成します。

なお、画像の表示時に /thumb と指定してサムネイルを表示していますが、この記述方法でサムネイルを表示できるようにするためには、 ImageTag_CorePatch 0.3 をインストールする必要があります。

ポートレットを作成したら、設定を行います。 このポートレットはメンバーのホーム以下に動作するので、 Members フォルダのプロパティに left_slots または right_slots の値として here/portlet_profile/macros/portlet を設定します。

メンバーのページを参照して、ポートレットのプロフィール情報が表示されていることを確認します。

Show profile portlet

以上で、各メンバーでプロフィール情報を参照できるようになります。

ソースコード[source]

ここで説明した Script, Page Template のソースコードは下記のリンクから参照してください。


Powered by vine linux, python, zope, plone, coreblog