この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

カスタム Lightning ページテンプレートコンポーネントの作成

すべての標準 Lightning ページは、ページの領域とページに含まれるコンポーネントを定義するデフォルトテンプレートコンポーネントに関連付けられています。カスタム Lightning ページテンプレートコンポーネントでは、定義した構造とコンポーネントを使用して、ビジネスニーズに合ったページテンプレートを作成できます。カスタムテンプレートを実装すると、ページ作成者は Lightning アプリケーションビルダーの新規ページウィザードでそのカスタムテンプレートを使用できます。

Lightning アプリケーションビルダーでカスタムテンプレートコンポーネントを使用するには、組織で [私のドメイン] が有効になっている必要があります。

メモ

カスタム Lightning ページテンプレートコンポーネントは、レコードページ、アプリケーションページ、ホームページでサポートされています。テンプレートコンポーネントが実装する必要のあるインターフェースは、ページ種別によって異なります。
  • lightning:appHomeTemplate
  • lightning:homeTemplate
  • lightning:recordHomeTemplate

各テンプレートコンポーネントでは、1 つのテンプレートインターフェースのみを実装する必要があります。テンプレートコンポーネントで flexipage:availableForAllPageTypesforce:hasRecordId などの他のインターフェース型を実装しないでください。テンプレートコンポーネントでは、通常の Lightning コンポーネントのようにマルチタスクを実行できません。これはテンプレートまたはそれ以外になります。

重要

1.テンプレートコンポーネント構造の構築

カスタムテンプレートは、1 つの .cmp リソースとデザインリソースが含まれている必要のある Lightning コンポーネントバンドルです。.cmp リソースでは、テンプレートインターフェースを実装し、テンプレート領域ごとに Aura.Component[] 型の属性を宣言する必要があります。Aura.Component[] 型では、コンポーネントのコレクションとして属性を定義します。

Aura.Component[] 属性は、デザインリソースの領域としても指定されている場合にのみ領域として解釈されます。

メモ

次に、lightning:layout コンポーネントと Salesforce Lightning Design System (SLDS) を使用してスタイルを設定する 2 列のアプリケーションページテンプレートの .cmp リソースの例を示します。

テンプレートがデスクトップで表示される場合、右列が 30% (4 つの SLDS 列)、左列がページ幅の残りの 70% を占めます。デスクトップ以外のフォーム要素以外の場合、列は 50/50 で表示されます。
1<aura:component implements="lightning:appHomeTemplate" description="Main column
2 and right sidebar. On a phone, the regions are of equal width">
3    <aura:attribute name="left" type="Aura.Component[]" />
4    <aura:attribute name="right" type="Aura.Component[]" />
5
6    <div>
7        <lightning:layout horizontalAlign="spread">
8            <lightning:layoutItem flexibility="grow"
9                                  class="slds-m-right_small">
10                {!v.left}
11            </lightning:layoutItem>
12            <lightning:layoutItem size="{! $Browser.isDesktop ? '4' : '6' }"
13                                  class="slds-m-left_small">
14                {!v.right}
15            </lightning:layoutItem>
16        </lightning:layout>
17    </div>
18    
19</aura:component>

aura:component タグの description 属性は、省略可能ですが推奨属性です。description を定義すると、Lightning アプリケーションビルダーの新規ページウィザードのテンプレート画像の下にテンプレートの説明として表示されます。

2.デザインリソースでのテンプレート領域とコンポーネントの設定

デザインリソースでは、テンプレートを使用するページに含める必要がある領域やそれらの領域に配置できるコンポーネントの種類を指定して、テンプレートで構築できるページの種類を制御します。

領域は、.cmp リソースの設定に従って、ページ全体に設定されたインターフェースの割り当てを継承します。

次のタグを使用して、領域とコンポーネントを指定します。
flexipage:template
このタグには属性はなく、flexipage:region タグのラッパーとして動作します。テキストリテラルは使用できません。
flexipage:region
このタグには次の属性があり、テンプレートの領域を定義します。テキストリテラルは使用できません。
属性 説明
name Aura.Component[] 型としてマークされる .cmp リソースの属性の名前。領域として属性にフラグを設定します。
defaultWidth 領域のデフォルトの幅を指定します。この属性はすべての領域で必須です。有効な値は、SmallMediumLargeXlarge です。
flexipage:formFactor
このタグを使用して、表示されるデバイス種別に基づいてページ上のコンポーネントの占有スペースを指定します。このタグは、flexipage:region タグの子として指定する必要があります。flexipage:region ごとに複数の flexipage:formFactor タグを使用して、フォーム要素の柔軟な動作を定義します。
属性 説明
type テンプレートが表示されるフォーム要素またはデバイス (デスクトップやタブレットなど) の種別。有効な値は、Medium (タブレット) と Large (デスクトップ) です。Small フォーム要素 (電話) の適切な幅の値は Small のみなので、Small 種別を指定する必要はありません。その関連付けは、Salesforce によって自動的に行われます。
width この領域のコンポーネントが表示される領域の使用可能なサイズ。有効な値は、SmallMediumLargeXlarge です。
たとえば、このコードスニペットでは、テンプレートが Large のフォーム要素に表示されるときに領域の表示幅は Large になり、テンプレートが Medium のフォーム要素に表示されるときに領域の表示幅が Small になります。
1<flexipage:region name="right" defaultWidth="Large">
2            <flexipage:formFactor type="Large" width="Large" /> 
3            <flexipage:formFactor type="Medium" width="Small" />
4        </flexipage:region>

lightning:flexipageRegionInfo サブスコンポーネントを使用して、領域の幅情報をコンポーネントに渡すことができます。これにより、表示される領域サイズに基づいて、ページコンポーネントの異なる表示を設定できます。

ヒント

次に、サンプル .cmp リソースで使用するデザインファイルを示します。デザインファイルの表示ラベルテキストは、新規ページウィザードのテンプレートの名前として表示されます。
1<design:component label="Two Column Custom App Page Template">
2    <flexipage:template >
3        <!-- The default width for the "left" region is "MEDIUM". In tablets,
4        the width is "SMALL" -->
5            <flexipage:region name="left" defaultWidth="MEDIUM">
6                <flexipage:formfactor type="MEDIUM" width="SMALL" />
7            </flexipage:region>
8            <flexipage:region name="right" defaultWidth="SMALL" />
9       </flexipage:template>
10</design:component>

3.(省略可能) テンプレート画像の追加

.cmp リソースに description を追加した場合、ユーザが Lightning アプリケーションビルダーの新規ページウィザードでテンプレートを選択したときに説明とテンプレート画像の両方が表示されます。

SVG リソースを使用して、カスタムテンプレート画像を定義できます。カスタムテンプレートの説明と画像

SVG リソースのサイズは 150KB 以下、高さは 160px 以下、幅は 560px 以下にすることをお勧めします。