このプロフィールモジュールは試作品ですので、本番環境では使わないよう、くれぐれもお願いいたします。
XCL2.2 プロフィールモジュール試作版
=======================================
ファイル
http://apps.sourceforge.net/phpbb/xoops ... ?f=3&t=112
次期XCL2.2のユーザ管理機能として、プロフィールモジュールとユーザモジュールの試作バージョンをアップロードしました。
この追加機能については、以下のトラッカURLを参照して下さい。
https://sourceforge.net/tracker/index.p ... tid=943472
現時点ではまだ試作段階ですので、動かない部分があります(削除とか)。
が、使ってみてコメント、要望などいただけたら幸いです。ただ、なるべくシンプルにしておきたいと思っていますので、要望にお答えしないこともあります。
プロフィールモジュールでは、誕生日、性別、趣味といった、ユーザのプロフィールを管理します。
サイト管理者は、簡単にプロフィールのフィールドを定義することが出来ます。
一般ユーザは、プロフィールモジュール、または他のモジュールの中で、プロフィール項目を入力できます。
プロフィールモジュールは、他のモジュールで利用できるよう、XCube Service による連携機能を持っています。
XCube Service を通じて、他のモジュールは、プロフィールモジュールで管理しているデータを使うことが出来ます。
- 他のモジュールから、プロフィールモジュールでサイト管理者が定義したフィールドの一覧を取得できます
- 他のモジュールから、特定ユーザのプロフィールを取得できます。
- 他のモジュールから、特定ユーザのプロフィールデータをセットできます。たとえば、Q&Aモジュールは、あるユーザの回答数をプロフィールモジュールにセットできます。
使い方
-----------
まずは、通常のモジュールと同じようにプロフィールモジュールをインストールしてください。
インストールが終わったら、まずはプロフィールフィールドの定義をプロフィールモジュールの管理画面から行います。
プロフィールのフィールドの定義が終わったら、ユーザがプロフィールモジュール上でその項目を入力できるようになります。
zipファイルの中のユーザモジュールはだいたいXCL2.1.6と同じです。
ただし、UserInfo を開くと、プロフィールモジュールで入力したデータが表示されます。
また、EditUser 画面では、プロフィールモジュールのフィールドがフォームの中に表示されます。
ただし、現在、EditUser画面ではデータベースが更新されません('homepage_url'という名前の項目を作った場合だけ更新されます)。
フィールドの定義
-------------------------
field name: mysql のフィールド名になります。そのため、スペースや変な記号を入れないでください。日本語もやめて。
label: フィールドの表示名です.
type: 入力のタイプです."string", "text", "int", "date", "checkbox", "selectbox"から選ぶようになっていますが、selectboxは現在動きません。
validation: このフィールドは現在無視されています。将来的にどうなるかも不明です。
required: チェックを付けると入力必須項目になります.
show form: チェックを付けると、入力フォームに表示されます.
weight: フィールドの並び順を指定します。小さい数字のほうが先に出ます。
description: フィールドの説明。
access: このフィールドにアクセスできるユーザグループを指定します.
options: typeがselectboxの場合の選択肢を表示します。
Profile_Service:
----------------
Profile_Service は XCube_Service にもとづくサービスです.
このサービスを通じて、他のモジュールはプロフィールを操作することが出来ます.
現時点では Profile_Service は四つのファンクションを持ちます.
getDefinitions(int uid, int groupid, bool show_form): フィールドの定義一覧を取得します。引数にuidかgroupidが指定されると、そのuid/groupidがアクセスできるフィールドのみを取得します。show_form引数をtrueにすると、show_formがtrueのフィールドのみを取得します。
getProfile(int uid): 特定ユーザのプロフィールデータを取得します。
getProfileArr(string field_name, string value): 全ユーザのプロフィールを取得します。field_nameとvalueが指定されると、その条件でデータを抽出します。
setProfile(string field_name, string value, int uid): 特定ユーザのプロフィールデータを追加・更新します。
Profile_Serviceの使い方のサンプルは、zipファイル内の以下のファイルをご覧ください。
- modules/user/actions/EditUserAction.class.php
- modules/user/actions/UserInfoAction.class.php
