レイアウトテンプレート

レイアウトテンプレートはポータルページのコンテンツ集約処理を制御しています。 レイアウトテンプレートの機能的な部分は PALポータル用の配備可能なレイアウトポートレットアプリケーション内にパッケージされています。 レイアウトテンプレートはレイアウトポートレットで指定された集約処理を元にポートレットのコンテンツを集約して、ポータルページを生成します。 PALポータルは、標準で 1 列、2 列、3 列のレイアウトを含むいくつかのレイアウトコンポーネントを持っています。 デフォルトの PALポータルで指定可能なレイアウトは後述の「レイアウトの種類」を参照してください。 必要に応じて、新規にレイアウトを定義したり、変更したりすることも可能です。

レイアウトはどのように 1 つのポータルページがコンテンツ集約するのかを定義します。 レイアウトテンプレートはコンテンツの配置をどのようにするかを処理し、ポータルへリクエストされたコンテンツが集約される方法を定義します。 レイアウトは、ポータルページのコンテンツを生成するために、テンプレート処理のアルゴリズムを実行するポートレットにより定義されます。 典型的なレイアウト構成のアルゴリズムには 2 列のもの、3 列のもの、階層化されたものがあります。

レイアウトテンプレートは以下により構成されます。

  • レイアウトポートレット
  • レイアウトテンプレートファイル

レイアウトポートレット

レイアウトポートレットは、jetspeed-layouts ポートレットと呼ばれ、PALポータル用の JSR 168 ポートレットとして構成されています。 レイアウトポートレットは、jetspeed-layouts.war というファイルでパッケージ化され、PALポータルに配備すると webapps/palportal/WEB-INF/apps/jetspeed-layouts に配置されます。 レイアウトポートレットは、JSR 168 のポートレットですが、jetspeed で始まるポートレット名は PALポータルではポータル用のポートレットとして認識され、webapps/palportal/WEB-INF/apps 以下に配備されます。

レイアウトポートレットは標準的なポートレットアプリケーション同様に、以下の操作をサポートします。

  • 配備
  • 配備解除
  • 再配備

レイアウトの種類

PALポータルは 1 列、2 列、3 列のレイアウトを含むいくつかのレイアウトコンポーネントを標準で含んでいます。 必要に応じて、新規にレイアウトを定義したり、変更したりすることも可能です。 以下の表は PALポータルで利用可能なレイアウトコンポーネントのリストです。 ページのレイアウトを変更する際には、利用したいレイアウトコンポーネントを選択します。 PSML ページごとに 1 つのルートレイアウトを指定することが可能です。

ポートレット名レイアウト名カラム数サイズ説明
VelocityOneColumn1 列レイアウト1100%ポートレットの表示エリアの 100% 幅を占める 1 列表示。
VelocityTwoColumns2 列レイアウト(50/50)250%,50%ポートレットの表示エリアに左から 50%、50% 幅を割り当てる 2 列表示。
VelocityTwoColumns33662 列レイアウト(33/66)233%,66%ポートレットの表示エリアに左から 33%、66% 幅を割り当てる 2 列表示。
VelocityTwoColumns25752 列レイアウト(25/75)225%,75%ポートレットの表示エリアに左から 25%、75% 幅を割り当てる 2 列表示。
VelocityTwoColumns20802 列レイアウト(20/80)220%,80%ポートレットの表示エリアに左から 20%、80% 幅を割り当てる 2 列表示。
VelocityTwoColumns15852 列レイアウト(15/85)215%,85%ポートレットの表示エリアに左から 15%、85% 幅を割り当てる 2 列表示。
VelocityTwoColumns10902 列レイアウト(10/90)210%,90%ポートレットの表示エリアに左から 10%、90% 幅を割り当てる 2 列表示。
VelocityTwoColumns5952 列レイアウト(5/95)25%,95%ポートレットの表示エリアに左から 5%、95% 幅を割り当てる 2 列表示。
VelocityTwoColumns66332 列レイアウト(66/33)266%,33%ポートレットの表示エリアに左から 66%、33% 幅を割り当てる 2 列表示。
VelocityTwoColumns75252 列レイアウト(75/25)275%,25%ポートレットの表示エリアに左から 75%、25% 幅を割り当てる 2 列表示。
VelocityTwoColumns80202 列レイアウト(80/20)280%,20%ポートレットの表示エリアに左から 80%、20% 幅を割り当てる 2 列表示。
VelocityTwoColumns85152 列レイアウト(85/15)285%,15%ポートレットの表示エリアに左から 85%、15% 幅を割り当てる 2 列表示。
VelocityTwoColumns90102 列レイアウト(90/10)290%,10%ポートレットの表示エリアに左から 90%、10% 幅を割り当てる 2 列表示。
VelocityTwoColumns9552 列レイアウト(95/5)295%,5%ポートレットの表示エリアに左から 95%、5% 幅を割り当てる 2 列表示。
VelocityThreeColumns3 列レイアウト(33/33/33)333%,33%,33%ポートレットの表示エリアに左から 33%、33%、33% 幅を割り当てる 3 列表示。
VelocityThreeColumns2060203 列レイアウト(20/60/20)320%,60%,20%ポートレットの表示エリアに左から 20%、60%、20% 幅を割り当てる 3 列表示。
VelocityThreeColumns1570153 列レイアウト(15/70/15)315%,70%,15%ポートレットの表示エリアに左から 15%、70%、15% 幅を割り当てる 3 列表示。
VelocityFourColumns4 列レイアウト420%,30%,30%,20%ポートレットの表示エリアに左から 20%、30%、30%、20% 幅を割り当てる 4 列表示。

ページへのレイアウトの適用方法については、「管理ガイド」を参照してください。

レイアウトの追加方法

新しい列数のレイアウトを新規に追加する場合は、そのポートレットの定義をレイアウトポートレットに追加する必要があります。 ポートレットクラスには、org.apache.jetspeed.portlets.layout.ActionLayoutPortlet を利用して定義を追加することができます。 また、javax.portlet.GenericPortlet を継承して、独自のレイアウトを作成することもできます。

たとえば、ActionLayoutPortlet を利用して新規にレイアウトを追加する場合は以下のような定義を webapps/palportal/WEB-INF/apps/jetspeed-layouts/WEB-INF/portlet.xml に追加します。


  <portlet>
    <portlet-name>MyLayout</portlet-name>
    <display-name>My Layout</display-name>
    <display-name xml:lang="ja">私のレイアウト</display-name>
    <init-param>
      <name>ViewPage</name>
      <value>columns</value>
    </init-param>
    <init-param>
      <name>MaxPage</name>
      <value>maximized</value>
    </init-param>
    <init-param>
      <name>columns</name>
      <value>2</value>
    </init-param>
    <init-param>
      <name>sizes</name>
      <value>50%,50%</value>
    </init-param>
    <init-param>
      <name>layoutType</name>
      <value>TwoColumns</value>
    </init-param>
    <portlet-class>org.apache.jetspeed.portlets.layout.ActionLayoutPortlet</portlet-class>
    <resource-bundle>org.apache.jetspeed.portlets.layout.resources.LayoutResource</resource-bundle>
    <expiration-cache>0</expiration-cache>
    <supports>
      <mime-type>text/html</mime-type>
      <portlet-mode>view</portlet-mode>
      <portlet-mode>edit</portlet-mode>
      <portlet-mode>help</portlet-mode>
    </supports>
    <portlet-info>
      <title>My Layout</title>
      <short-title>Layout</short-title>
    </portlet-info>
  </portlet>

portlet-name には追加する任意のレイアウトの ID を設定してください。 display-name には、ポータル上で表示されるレイアウト名を記述します。 display-name では、xml:lang 属性を利用して、複数の言語のレイアウト名を追加することができます。 init-param の columns の値には列数を記述して、sizes の値に表示される左から順番に幅をパーセントで指定します。 portlet-info の title 要素にはレイアウト名を記述します。

portlet.xml に上記の portlet 要素を追加後、ポータルを再起動すると、追加したレイアウトが有効になります。

レイアウトテンプレートファイル

レイアウトテンプレートファイルは、PALポータル内に配置されています。 それらのレイアウトテンプレートファイルがレイアウトポートレットから呼び出されて処理されます。 レイアウトテンプレートファイルは、webapps/palportal/WEB-INF/templates/layout に配置されています。 それらのファイルは、Velocity により記述されます。 PALポータルでは、レイアウトテンプレートファイルは汎用的に実装されており、テンプレート言語として JSP も利用可能ですが、標準では Velocity によるテンプレートファイルをサポートしています。

レイアウトテンプレートファイルは、レイアウトポートレットの設定情報に基づいて呼び出されます。 レイアウトテンプレートファイルの指定方法は、webapps/palportal/WEB-INF/templates/layout をルートディレクトリとして、<メディアタイプ>/<ViewPage>/layout.vm のテンプレートになります。 メディアタイプはポータルがクライアントの情報を元に決定され、ViewPage はレイアウトポートレットの portlet.xml で指定した情報を利用します。 ポートレットの表示モードにより、layout-<表示モード>.vm のテンプレートを利用できます。

列を記述している HTML を編集したい場合は、対象の layout.vm を編集することで変更することができます。