1. モジュール

サイトとサイト コレクションのスキャフォールディングにモジュールを追加する

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

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

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

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

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

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

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

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

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

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

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

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

    Setup

    Field

    Descriptions

    ヘッドレスサイトのセットアップ

    名前

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

    依存 関係

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

    デフォルトで含める

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

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

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

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

    システムモジュールです

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

    ヘッドレス サイト コレクションのセットアップ

    名前

    サイト コレクション作成ウィザードに表示するサイト コレクション モジュールの名前。

    デフォルトで含める

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

    システムモジュールです

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

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

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

Scaffolding actions

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

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

    Add Site item

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

Action type

Field

Description

ヘッドレス サイト コレクション アイテムの追加

場所

新しいアイテムをサイト コレクションの下に追加します。

テンプレート

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

名前

アイテムの名前。

田畑

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

ヘッドレス サイト コレクション テンプレートの編集

テンプレート

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

アクションの種類

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

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

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

ヘッドレス サイト コレクション スクリプトの実行

スクリプト

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

function Invoke-ModuleScriptBody {
[CmdletBinding()]
    param(
        # Depending on context could be a site collection 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 Site Collection 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 Site Collectionダイアログ ボックスが再度表示され、以前に選択した値の一部を修正できます。

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"
    }
}
この記事を改善するための提案がある場合は、 お知らせください!