先日、SharePoint Online 上で作成したサイト テンプレートから作成したサイトで、一部の設定が反映されていないところを見つけました。その設定はビューの設定の「フォルダーなしですべてのアイテムを表示する」です。
テンプレートの元サイトでちゃんと設定しても、テンプレートから作成したサイトでは設定が正しく反映されていません。
どうやらサイト テンプレートを作成する内部処理で設定が抜け落ちでしまうようなので、サイト テンプレートファイルを直接編集してしまいます。こうした編集は、もちろんサポート外だと思います。
サイト テンプレートの中を確認する
サイト テンプレート ファイルをソリューション ギャラリーからダウンロードすると、WSP ファイルとして保存されますが実体は CAB ファイルなので、拡張子を「.cab」へ変更します。さらに、この CAB ファイルを解凍すると幾つかのフォルダと XML ファイルが得られ、これでやっと編集可能な状態になります。解凍は普段から利用している 7-Zip で行いました。
フォルダの中身は下図のようになっています。
目的のビューの設定を探して編集する
解凍されてできたフォルダを探っていくと「template1\template1ListInstances\Files\Shared Documents\Schema.xml」の中に設定が記載されていました。このパス中の「template1」はテンプレート ファイル名、「Shared Documents」はチーム サイトに既定で作成されているドキュメント ライブラリの内部名ですね。
テキスト エディタで開くと下の方に View 要素定義として書かれていました。ここに本来であれば View 要素内に Scope 属性が定義されていないといけないのですが、その記述が抜けているようです。
そのため単純に「Scope=”Recursive”」を追加し上書き保存します。
ソリューション ファイルに戻す
では、このファイルを再度 CAB ファイルに圧縮し、WSP ファイルにします。圧縮ソフトは IZArc2Go を利用しました。インストールせずファイルを持ち運んで利用できるので便利でした。
IZArc2Go
http://www.izarc.org/izarc2go.html
解凍した時にできたフォルダーやファイルを全てまとめて CAB ファイルを作成します。その後、拡張子を「.wsp」に変更して完成です。
アップロードして動作確認
ソリューション ギャラリーへ作成した WSP ファイルをアップロードし、それを基にサイト テンプレートを作成します。ドキュメント ライブラリの動作を確認すると、今度はバッチリでした!
さいごに
今回はビューの修正のみを目的にしていましたが、他の XML ファイルも含めて色々とサイト テンプレートの内容を書き換えられそうですね。ただ、編集を行ったサイト テンプレートで不具合が起きた時はサポート外となると思いますので、くれぐれも自己責任にてお願いします。そもそも今回遭遇した事象は不具合なので、早く修正されることを期待します。