SharePoint 上で複数のサイトにある「お知らせ」などの情報を一か所でまとめて表示したいという要望をよく聞きます。
方法は大きく3つあります。
- コンテンツ クエリ Web パーツを利用する
- SharePoint Designer 2007 のデータビュー(Webパーツ)を利用する
- カスタムWebパーツを独自に開発する
一番手軽な方法は"コンテンツ クエリ Web パーツ" を使用する方法です。コンテンツ クエリ Web パーツは複数サイトにある情報を集めて表示する機能があります。ただ、コンテンツクエリ Web パーツを使用する場合以下の点を考慮しなくてはいけません。
- 同一サイトコレクション内でかつWebパーツを追加したサイト以下のサイトの情報のみを取得できる(別のサイトコレクションにあるものは参照できない)
- 既定では取得できる列(プロパティ)が限られている
特に注意したいのが、取得できる列です。既定で取得できる列は "タイトル列" です。その他にも、 "説明" や "お勧めのイメージ" 列などが取得できますが、これはアーティクルページで作成された発行ページなどに限定されます。
ですから、「お知らせ」リストのアイテム情報を取得しようとすると、タイトルのみしか表示されません。 もし更新日時などの任意の列を表示したい場合は、コンテンツクエリ Web パーツをカスタマイズする必要があります。カスタマイズについては、以下の サイトが参考になります。(カスタマイズはあまり簡単ではありません。最低でもXML,XSTLの知識は必要ですのでご注意ください)
- MSDNサイト
[方法] カスタム プロパティを使用したコンテンツ クエリ Web パーツをカスタマイズする - おりば~ずさんのサイト
コンテンツクエリWebパーツの使用法
次に利用しやすいのがSharePoint Designer 2007 のデータビューを利用する方法です。この方法もコンテンツクエリ Web パーツ同様、同一サイトコレクション内のサブサイトの情報を取得できます。SharePoint Designer 2007 を使用して、新規にコンテンツページを作成しデータビューを追加して、生成されるXSLTを編集することになります。コンテンツクエリ Web パーツのカスタマイズに比べて、Designer を使用するので任意の列を比較的簡単に取得でき見た目(XSLT) の変更も容易です。この手法については、有償ですが技術研修カリキュラムを作成していますので、ご利用いただくとよいかもしれません。ちょっと宣伝させていただくとこのコースは、SharePoint Designer 2007 でのサイトのカスタマイズ方法をメインで扱っているものです。
最後に難易度が最も高く、かつ一番柔軟性があるのが Web パーツ開発です。Web パーツを独自開発すればいかようにでもできますから、もっと使い勝手よく複数サイトから情報が取得できます。ちなみに、Web パーツを開発する場合は、Visual Studio 2005 extensions for Windows SharePoint Services を使用すると効率よく開発できます。
コメント