1. モジュール

サイトとテナントのスキャフォールディングにモジュールを追加する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

スキャフォールディングを使用すると、サイトとテナントにモジュールを追加できます。SXAモジュールは、FeatureフォルダーまたはFoundationフォルダーに保存されます。

  • /sitecore/System/Settings/Foundation/Experience Accelerator/

  • /sitecore/System/Settings/Feature/Experience Accelerator/

新しいモジュールを定義するには、Site SetupTenant Setup、またはGrid Setupアイテムをモジュールに追加し、Scaffoldingフォルダー (sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/) からアクションタイプを追加する必要があります。

モジュールのスキャフォールディング定義を追加する

独自のモジュール・スキャフォールディング定義を追加するには、次のようにします。

  1. /sitecore/System/Settings/Foundation/ または /sitecore/System/Settings/Feature/ に移動し、フォルダを追加します。

  2. 新しいフォルダを右クリックし、Insert from templateをクリックします。

  3. Insert from templateダイアログボックスで、sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/Rootsに移動し、追加するモジュールのタイプに応じて、Grid Setup, Site Setup, or Tenant Setupをクリックし、Insertをクリックします。

    Add new site setup.
  4. Dataセクションで、インストールするモジュールのタイプに応じて、次のフィールドに入力します。

    Setup

    Field

    Descriptions

    サイトのセットアップ

    名前

    サイト作成ウィザードに表示するサイト モジュールの名前。

    依存 関係

    モジュールをインストールする順序を指定します。

    デフォルトで含める

    選択すると、サイト作成ウィザードでモジュールが既定で有効になります。

    インストールされている場合は含める

    選択したアクションが現在のテナントに適用されたかどうかに応じて、モジュールは自動的に含まれます。

    選択済み フィールドが空の場合は、このモジュールを新規サイト作成ウィザードでインストールするかどうかを決定できます。

    システムモジュールです

    モジュールを自動的にインストールする場合に選択します。この場合、モジュールはダイアログボックスに表示されません。

    テナントのセットアップ

    名前

    テナント作成ウィザードに表示するテナント モジュールの名前。

    デフォルトで含める

    テナント作成ウィザードでモジュールをデフォルトで有効にする場合に選択します。

    システムモジュールです

    モジュールを自動的にインストールする場合に選択します。この場合、モジュールはテナント作成ウィザードに表示されません。

    グリッド設定

    名前

    サイト作成ウィザードに表示するグリッド システムの名前。

    依存 関係

    モジュールをインストールする順序を指定します。

    グリッド定義

    Grid Definitionアイテムを指します。たとえば、Foundationグリッド システムの場合、次のようになります。Settings/Feature/Experience Accelerator/Foundation/Foundation

スキャフォールディング アクションを追加する

さまざまなアクションタイプを使用してモジュールを定義できます。アイテムの追加、テンプレートの編集、PowerShellスクリプトの実行を行うことができます。使用可能なアクションは、Actionsフォルダー (sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/Actions) に保存されます。

Scaffolding actions

スキャフォールディングアクションを追加するには:

  • 新しいモジュールに移動し、新しいモジュールに追加したセットアップ項目を右クリックします。たとえば、Site Setupアイテムを右クリックして、Add Site Itemアクションを挿入します。

    Add Site item

次のアクションを使用できます。

Action type

Field

Description

テナントアイテムの追加

場所

テナントの下に新しい項目を追加します。

テンプレート

新しいテナント アイテムを作成するために使用されるテンプレート。

名前

アイテムの名前。

田畑

作成後に新しいアイテムのフィールドを設定するためのフィールド/値のマッピング。

テナントテンプレートの編集

テンプレート

テナント テンプレートにコピーするテンプレートを選択します。テンプレートは、定義された設定に従って編集されます。

アクションの種類

アクションの種類を選択します。

基本テンプレートまたは挿入オプションテンプレート

前のフィールドで選択したアクションの引数として使用する項目を選択します。

テナント スクリプトの実行

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイト/テナント作成プロセスの一部を自動化できます。例えば:

function Invoke-ModuleScriptBody {
[CmdletBinding()]
    param(
        # Depending on context could be a Tenant or Site item
    [Parameter(Mandatory=$true, Position=0 )]
[Item]$Root,
[Parameter(Mandatory=$true, Position=1 )]        
        [Item[]]$TenantTemplates                
    )
begin {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Begin"
}
process {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Process"
        # Script body
        # Put your custom logic here
}
end {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - End"
}
}

サイトアイテムを追加

場所

新しいアイテムをサイトの下に追加します。

テンプレート

新しいサイト アイテムの作成に使用されるテンプレート。

名前

新しいサイト アイテムの名前。

田畑

作成後に新しいアイテムのフィールドを設定するためのフィールド/値のマッピング。

サイトアイテムの編集

テンプレート

追加の挿入オプションを追加して、サイトのアイテムを編集します。

アクションの種類

アクションの種類を選択します。

挿入オプション

アイテムの挿入オプションを定義します。

サイトスクリプトの実行

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイト/テナント作成プロセスの一部を自動化できます。例えば:

function Invoke-ModuleScriptBody {
[CmdletBinding()]
    param(
        # Depending on context could be a Tenant or Site item
    [Parameter(Mandatory=$true, Position=0 )]
[Item]$Root,
[Parameter(Mandatory=$true, Position=1 )]        
        [Item[]]$TenantTemplates                
    )
begin {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Begin"
}
process {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Process"
        # Script body
        # Put your custom logic here
}
end {
Write-Verbose "Cmdlet Invoke-ModuleScriptBody - End"
}
}

編集テーマの編集

ベーステーマ

編集テーマ インスタンスに追加する基本テーマの一覧。

サイトのテーマを編集

ベーステーマ

編集テーマ インスタンスに追加する基本テーマの一覧。

ポストセットアップステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイトが作成されたらアクションを実行できます。

function Invoke-Step {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Sitecore.XA.Foundation.Scaffolding.Models.CreateNewSiteModel]$Model
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }
}

入力検証ステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイトを作成する前にモデルを検証できます。検証スクリプトのいずれかによって返された結果がfalseの場合、New Siteダイアログ ボックスが再度表示され、以前に選択した値の一部を修正できます。

function Invoke-Validation {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Sitecore.XA.Foundation.Scaffolding.Models.CreateNewSiteModel]$Model
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"    
        # Return $true or $false as a result of validation
        $true
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }

ポストセットアップステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、テナントが作成された後にアクションを実行できます。

function Invoke-Step {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Sitecore.XA.Foundation.Scaffolding.Models.CreateNewTenantModel]$Model
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }
}

入力検証ステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、テナントが作成される前にモデルを検証できます。検証スクリプトのいずれかによって返された結果がfalseの場合、New Tenantダイアログ ボックスが再度表示され、以前に選択した値の一部を修正できます。

function Invoke-Validation {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Sitecore.XA.Foundation.Scaffolding.Models.CreateNewTenantModel]$Model
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"
        # Return $true or $false as a result of validation
        $true
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }
}

削除前ステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイト/テナントの削除プロセスの一部を自動化できます。このアクションは、Remove-TenantまたはRemove-Siteコマンドレットが呼び出されたときに実行されます。これを使用して、カスタムモジュールによって作成されたアイテムは、デフォルトの削除プロセスでは削除されないため (アイテムが異なるフォルダーにあるため) クリーンアップできます

function Invoke-Step {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Item]$Root
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }
}

削除後のステップ

スクリプト

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイト/テナントの削除プロセスの一部を自動化できます。このアクションは、誰かがRemove-TenantまたはRemove-Siteコマンドレットを呼び出したときに実行されます。これを使用して、標準の削除中に削除されないカスタム モジュールによって作成されたアイテムをクリーンアップできます (たとえば、テナント/サイト ルート アイテム、テナント/サイト メディア ライブラリ、テナント テンプレートなどの既知のフォルダーの外部にアイテムを保存した場合)

function Invoke-Step {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Item]$Root
    )
    begin {
        Write-Verbose "Cmdlet Invoke-PostDeleteStep - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-PostDeleteStep - Process"
    }
    end {
        Write-Verbose "Cmdlet Invoke-PostDeleteStep - End"
    }
}

削除前の検証ステップ

実行するPowerShellスクリプトを選択します。スキャフォールディング スクリプトを使用して、サイト/テナントの削除プロセスの一部を自動化できます。

スキャフォールディング スクリプトを使用して、テナントまたはサイトを削除する前に状態を検証できます。いずれかの検証スクリプトによって返された結果がfalseの場合、Delete操作はキャンセルされます。

function Invoke-Validation {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Item]$Root
    )
    begin {
        Write-Verbose "Cmdlet Invoke-Validation - Begin"
    }
    process {
        Write-Verbose "Cmdlet Invoke-Validation - Process"
        # Return $true or $false as a result of validation
        $true
    }
    end {
        Write-Verbose "Cmdlet Invoke-Validation - End"
    }
}
この記事を改善するための提案がある場合は、 お知らせください!