先日、SharePoint Online 上で作成したサイト テンプレートから作成したサイトで、一部の設定が反映されていないところを見つけました。その設定はビューの設定の「フォルダーなしですべてのアイテムを表示する」です。

20140423-1

テンプレートの元サイトでちゃんと設定しても、テンプレートから作成したサイトでは設定が正しく反映されていません。

20140423-2

どうやらサイト テンプレートを作成する内部処理で設定が抜け落ちでしまうようなので、サイト テンプレートファイルを直接編集してしまいます。こうした編集は、もちろんサポート外だと思います。

サイト テンプレートの中を確認する

サイト テンプレート ファイルをソリューション ギャラリーからダウンロードすると、WSP ファイルとして保存されますが実体は CAB ファイルなので、拡張子を「.cab」へ変更します。さらに、この CAB ファイルを解凍すると幾つかのフォルダと XML ファイルが得られ、これでやっと編集可能な状態になります。解凍は普段から利用している 7-Zip で行いました。

20140423-3

フォルダの中身は下図のようになっています。

20140423-4

目的のビューの設定を探して編集する

解凍されてできたフォルダを探っていくと「template1\template1ListInstances\Files\Shared Documents\Schema.xml」の中に設定が記載されていました。このパス中の「template1」はテンプレート ファイル名、「Shared Documents」はチーム サイトに既定で作成されているドキュメント ライブラリの内部名ですね。

テキスト エディタで開くと下の方に View 要素定義として書かれていました。ここに本来であれば View 要素内に Scope 属性が定義されていないといけないのですが、その記述が抜けているようです。

20140423-5

そのため単純に「Scope=”Recursive”」を追加し上書き保存します。

20140423-6

ソリューション ファイルに戻す

では、このファイルを再度 CAB ファイルに圧縮し、WSP ファイルにします。圧縮ソフトは IZArc2Go を利用しました。インストールせずファイルを持ち運んで利用できるので便利でした。

IZArc2Go
http://www.izarc.org/izarc2go.html

20140423-7

解凍した時にできたフォルダーやファイルを全てまとめて CAB ファイルを作成します。その後、拡張子を「.wsp」に変更して完成です。

アップロードして動作確認

ソリューション ギャラリーへ作成した WSP ファイルをアップロードし、それを基にサイト テンプレートを作成します。ドキュメント ライブラリの動作を確認すると、今度はバッチリでした!

20140423-8

さいごに

今回はビューの修正のみを目的にしていましたが、他の XML ファイルも含めて色々とサイト テンプレートの内容を書き換えられそうですね。ただ、編集を行ったサイト テンプレートで不具合が起きた時はサポート外となると思いますので、くれぐれも自己責任にてお願いします。そもそも今回遭遇した事象は不具合なので、早く修正されることを期待します。