SITECORE MANIA 開発者向け技術ブログ

その他

高原

高原

SitecorePowerShellExtensionsでアイテムをパッケージ化する方法

Sitecore PowerShell Extensions (サイトコア パワーシェル エクステンションズ / SPE)について紹介します。

Sitecore PowerShell Extensionsでは、アイテムをインストール可能なパッケージを作成することが可能です。パッケージファイルをファイル化してエクスポートすることも可能です。

色々な活用が出来ますが、今回はアイテムパスからアイテムを取得してパッケージ化し、ローカルPC内に保存するところまで紹介していきます。


パッケージの作成

まず初めに、新しいパッケージを宣言し、作成します。パッケージ名や作者、説明などの情報を設定することもできます。

# パッケージ名の設定
$package = New-Package "Sample-Package"; 
# アイテムソースを初期化
$package.Sources.Clear();
# パッケージのメタデータを設定
$package.Metadata.Author = "Sample-Author";
$pakage.Metadata.Publisher = "Sample‐Publisher";
$package.Metadata.Version = "1.0";
$package.Metadata.Readme = 'This text will be visibe to people installing your package';

ここで設定した情報は、パッケージインストール時の検証画面に表示されます。 


パッケージに中身を追加

次にアイテムを取得し、先ほど宣言したパッケージにソースを追加します。ソースの追加方法としては、大きく分けて二つ存在します。

まず一つ目に、アイテムパスから特定のアイテムをソースとして追加する方法を紹介します。この方法では、指定した明示的なアイテムのソースのみを追加し、サブアイテムは含みません。

#アイテムパスを指定し、アイテムを取得、アイテムソースを作成
$source = Get-Item 'master:/sitecore/content/Sample/TestItem' | New-ExplicitItemSource -Name 'Item'
# パッケージにアイテムソースを追加
$package.Sources.Add($source);

二つ目に、クエリを利用して、条件に当てはまるアイテムをソースとしてすべて追加する方法を紹介します。この方法では、選択したアイテムに関連するサブアイテムも含みます。例えば、”content”配下の”Sample Template”を利用しているアイテムを抜き出したい場合は、以下のようなクエリになります。

# クエリを使用し、クエリ条件に当てはまるアイテムを取得、アイテムソースを作成
$itemSource = New-ItemSource -Name "Item" -root "/sitecore/content" -query "fast:/sitecore/content//*[@@templatename='Sample Template']"
# パッケージにアイテムソースを追加
$package.Sources.Add($itemSource);

エクスポート

最後に、ここまでソースを追加してきたパッケージのエクスポートをします。

# パッケージをセーブ
Export-Package -Project $package -Path "$($package.Name)-$($package.Metadata.Version).zip" -Zip

“Export-Package”コマンドを利用することによってパッケージを保存することが出来ます。ファイル名は自由に設定でき、今回の場合であれば「Sample-Package-1.0」という名前で保存されます。 また、-ZipプロパティをつけることでZipファイルとして保存されます。

デフォルトの保存先は”/inetpub/wwwroot/○○(Website)/App_Data/Packages”です。エクスポートしたファイルは、エクスプローラで参照できます。インストールウィザードのパッケージ選択画面から、参照することも可能です。


DownLoad-File(Send-File)コマンドを使用すれば、パッケージのセーブに続けてダウンロードさせることも可能です。先ほどエクスポートしたパッケージファイルを指定します。

# パッケージのダウンロード
Download-File "$SitecorePackageFolder\\$($package.Name)-$($package.Metadata.Version).zip"

その結果、ダウンロードのウィンドウが表示されます。


各コマンドの詳しい機能説明やパラメータについては公式のドキュメントに掲載されていますので、併せて確認してください。

https://doc.sitecorepowershell.com/appendix

以上になります。



※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。

この記事を読んだ人はこちらの記事も読んでます

Sitecore導入に関するご相談・資料ダウンロード

導入をご検討・ご依頼の方や、サービスについてご不明点がございましたらお気軽にお問い合わせください。

Sitecoreの運用問題を解決する

既にSitecoreを導入しているお客様向けサービス