この節の内容は、次のとおりです。
この節では次の内容について説明します。
コミュニティーテンプレートは、サービス (チャネル) の集合と視覚レイアウトで構成されます。ただし、レイアウトは常にコミュニティーテンプレートによって指定されるとは限りません。たとえば、wiki コミュニティーテンプレートの場合、レイアウトは wiki 自体によって指定されます。コミュニティーテンプレートは、コミュニティーで利用可能なサービスの種類、各サービスのデフォルト設定、および、各種のサービスを束ねるコンテナを (ロールのディスプレイプロファイルドキュメントで) 定義します。
物理的には、コミュニティーテンプレートは 1 つのプロパティーファイル、画像、および 1 つ以上のディスプレイプロファイルドキュメントで構成されます。OWNER、VISITOR、MEMBER などのコミュニティーロールごとに 1 つのディスプレイプロファイルドキュメントが存在します。各ロールテンプレートは、特定のロールと関連付けられるサービスおよびレイアウトを定義します (これらのロールの詳細については、「メンバーシップの管理」を参照)。ロールテンプレートの内容はディスプレイプロファイルドキュメントに表現されます。基本的には、コミュニティーテンプレートには各種のロールを処理するためのロジックが含まれ (ロールごとに 1 つのディスプレイプロファイルドキュメント)、1 つ以上のロールに応じて、得られるサービスの集合およびレイアウトが異なります。コミュニティーに削除マークが付いている (deleted.xml)、またはコミュニティーが無効なとき( disable.xml)のコンテンツをカスタマイズするためのディスプレイプロファイルドキュメントも存在します。
コミュニティーはコミュニティーテンプレートから作成されます。システムで保持できるコミュニティーテンプレートの数に制限はありません。エンタープライズサンプルでは、エンドユーザーがコミュニティーの作成時にコミュニティーテンプレートを選択します。
コミュニティーテンプレートはファイルシステム上に格納されます。コミュニティーテンプレートは PortalServer-DataDir/portals/ portal-URI/communitytemplates ディレクトリに格納されます (このディレクトリを communityTemplateBaseDir と表記する)。このことが意味するのは、複数ポータル配備環境では、各ポータルがそれぞれ独自のコミュニティーテンプレートの集合を保持する、またその必要があるということです。communityTemplateBaseDir 内のリソースバンドルは、各テンプレートと関連付けられるメタデータを定義します。加えて、各テンプレートには、ロールテンプレートが格納される個別のディレクトリがあります。
communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template2 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template3 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | +-- template1.properties | +-- template1_en.properties | +-- template1_fr.properties | +-- template2.properties | +-- template3.properties | +-- template3_en_US.properties | +-- ...
ディスプレイプロファイルの disabled.xml および deleted.xml ファイルは、コミュニティーが無効なとき、または削除マークが付いているときのコンテンツを制御します。詳細については、「コミュニティー状態の管理」を参照してください。
ポータル管理者は、新しいコミュニティーテンプレートの追加、既存のコミュニティーテンプレートの更新、システム上のコミュニティーテンプレートのアーカイブと復元、および、ポータルインスタンス間でのコミュニティーテンプレートのエクスポートや同期を実行できます。
個々のテンプレートは、XML 形式の 1 つ以上のロールテンプレート (member.xml 、owner.xml、visitor.xml、 deleted.xml、disabled.xml) で構成されます。テンプレートディレクトリには、そのテンプレートで提供するロールに対応した XML ファイルが含まれます。たとえば、コミュニティーのメンバーには member.xml が、所有者には owner.xml が、ビジターには visitor.xml がそれぞれ対応します。
個々のロールテンプレートは、そのロールを持つコミュニティーユーザーに対するディスプレイプロファイルドキュメントです。ファイルはディスプレイプロファイル DTD に基づいている必要があります。
<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd"> <DisplayProfile version="1.0" priority="%COMMUNITY_DP_PRIORITY%"> <Properties/> <Channels> <Container name="%COMMUNITY_CONTAINER%" provider="JSPTableContainerProvider"> <Properties> <String name="title" value="%COMMUNITY_NAME%"/> <String name="description" value="%COMMUNITY_DESCRIPTION%"/> <Boolean name="compileToRealPath" value="true"/> </Properties> <Available>...</Available> <Selected>...</Selected> <Channels>...</Channels> </channels> <Providers/> </DisplayProfile>
次に示すのは、ディスプレイプロファイル内の (% で囲まれた) トークンの説明です。これらはコミュニティーの作成時に、テンプレートエンジンによって実際の値に動的に置き換えられます。
コミュニティーに付ける (ユーザーにわかりやすい) 名前を指定します。例: tourists
コミュニティーを識別する一意の文字列を指定します。この名前はあくまで内部表現であり、ユーザーインタフェースに表示されることはありません。例: jdo__tourists
コミュニティーの説明です。
コミュニティーの最上位コンテナを指定します。例: jdo__touristsContainer
結果のコミュニティーディスプレイプロファイルに付与される、ディスプレイプロファイルのマージ優先順位を指定します。付与される値はロールごとに異なります。デフォルトでは、visitor ロールには 1000、member ロールには 1005、owner ロールには 1010 が付与されます。
コミュニティーの検索サーバー URL を指定します。
コミュニティーコンテンツの検索データベースを指定します。
ディスカッションデータベースを指定します。
ポータルの ID を指定します。例: portal1
各テンプレートには、そのテンプレートと関連付けられるメタデータを定義するリソースバンドルファイルが含まれます。リソースバンドルは、ローカライズ可能な記述子ファイルと呼ばれます。個々のテンプレート記述子ファイルでは、次のプロパティーを定義します (定義する必要がある)。
テンプレートの一意な ID を指定します。ID はテンプレートディレクトリ名と一致する必要があります。たとえば、サポートする 3 つのロールのすべてに対するロールテンプレート (XML ファイル) を持つ、Baseball という名前のテンプレートディレクトリの場合、ID は Baseball です。
ユーザーインタフェース (ポータルデスクトップ) でテンプレートを識別するために使用される、ユーザーにわかりやすい名前を指定します。値の例は「Baseball Template」です。
テンプレートが提供するサービスなど、テンプレートの詳細な説明。値の例は「Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat」です。
テンプレートロールファイルで使用されるトークンのリスト。これは情報提供のみを目的とし、必須ではありません。値の例は「 %COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER%」です。
ポータルコンテキストの絶対または相対 URI を指定します。値の例は「http://images.domain.com/images/baseball.jpg」です。相対 URI は、ポータルの web-app コンテキストパスに対する相対アドレスである必要があります。
id=Baseball name=Baseball Template description=Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat tokens=%COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER% previewImageURI=http://images.domain.com/images/baseball.jpg |
テンプレートを新規作成する、または既存のテンプレートを変更するには、この節で説明する手順に従います。次の 3 つの方法のいずれかでテンプレートを作成できます。
psadmin ユーティリティーを使用して、テンプレートのエクスポート、コンテンツの追加、およびコンテンツのインポートを行う。
コンテンツを作成し、そのコンテンツをインポートして既存のテンプレートを上書きする。
既存のテンプレートに新しいファイルを追加する。
communityTemplateBaseDir に移動します。
次の手順を実行します。
新しいテンプレート用の新しいディレクトリを作成する
新しいテンプレートディレクトリに既存のテンプレートをコピーする
たとえば、次のように入力します。
cd PortalServer-DataDir/portals/portal-URI/communitytemplates mkdir NewTemplate cp 2column/* NewTemplate/ |
新しいテンプレートディレクトリ内の、ロールに基づくディスプレイプロファイルドキュメントを必要に応じて変更します。
ロールに基づくディスプレイプロファイルドキュメントの詳細については、「テンプレートの構文とセマンティクス」を参照してください。
プロパティーファイルを作成し、「テンプレート記述子ファイル」で説明したプロパティーが含まれるようにファイルを編集し、ファイルを保存します。
たとえば、新しいテンプレート用の新しいプロパティーファイルを作成するには、次のように入力します。
cp 2colimn.properties NewTemplate.properties |
または
touch NewTemplate.properties |
新しく追加したテンプレートを確認するために、現在のポータルセッションをすべてログアウトし、再ログインして変更を確認します。
communityTemplateBaseDir/ template ディレクトリに移動し、変更を加えるファイルを開きます。
現在のポータルセッションをすべてログアウトし、再ログインして変更を確認します。
複数ポータル環境 (システム上に複数のポータルが存在するとき) では、コミュニティーテンプレートの変更を複数のポータルにまたがって適用できるように、( communityTemplateBaseDir 内のファイルを直接編集する代わりに) PAR 機構を使用します。これにより、すべてのポータルでコミュニティーテンプレートの同じ集合を共有できます。ポータル間で環境を同期することが望ましくない場合は、「単一ポータル環境用の新しいテンプレートを作成する」で説明されている手順を使用します。
psadmin export --type desktop コマンドを使用して、(コミュニティーテンプレートを含む) デスクトップデータをエクスポートしてから、内容を編集できるようにそのデータをエクスポートします。または、コミュニティーテンプレートだけを含みその他のデスクトップデータを含まない、完全に新規の PAR 構造を作成します。
内容を編集するには、「単一ポータル環境用の新しいテンプレートを作成する」の手順に従います。
次の内容を含む新しい PAR ファイルを作成します。
-+-- META-INF -- MANIFEST.MF | +-- pbfiles -+-- communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | | | +-- disabled.xml | | | | | +-- member.xml | | | | | +-- owner.xml | | | | | +-- visitor.xml | | | +-- template1.properties | | | +-- template1_en.properties | | | +-- template1_fr.properties | | | +-- ... | +-- static -- community -- images -- template1.gif
必要に応じて内容を編集または追加します。
新しい PAR ファイルを作成します。
psadmin import サブコマンドを使用して、すべてのポータルにまたがって PAR の内容をインポートします。
すべてのデスクトップデータをエクスポートした場合は、psadmin export サブコマンドですべてのデスクトップデータがエクスポートされることに注意してください。コミュニティーテンプレートのみを含む完全新規の PAR 構造を作成する場合は、このコマンドによってコミュニティーテンプレートのみがエクスポートされます。
詳細については、『Sun Java System Portal Server 7.2 Command-Line Reference』の「psadmin export」を参照してください。