[方法] コンテンツ クエリ Web パーツにユーザー設定フィールドを表示する
コンテンツ クエリ Web パーツは、Microsoft Office SharePoint Server 2007 サイト内のページにコンテンツを動的に表示します。Web パーツは、サイト コレクション内のリストおよびサイトにまたがることができるクエリを実行し、そのクエリの結果をページに表示します。たとえば、この Web パーツを使用して、その Web サイトで最近発行されたアーティクルを 5 つ、格納場所に関係なく表示することができます。
この Web パーツには、クエリとプレゼンテーションという 2 つの主な特徴があります。クエリは表示するコンテンツを決定し、プレゼンテーションはコンテンツのスタイルと表示方法を決定します。ルールを添付して、特定のルール セットに適合する特定の種類のアイテムのみを Web パーツに表示するようにもできます。
ツール ウィンドウでは、以下を行うことができます。
クエリのスコープを選択します。サイト コレクション全体で、サイト コレクション内の特定のサイトから、または特定のリストからアイテムのクエリを実行するように Web パーツを構成できます。
アイテムのクエリを実行するリストの種類を選択します。
Web パーツが表示するコンテンツ タイプを指定します。
Web パーツが表示するコンテンツを制御するための追加フィルタを選択します。たとえば、あるフィルタを使用して、特定のユーザーが作成したアーティクル ページのみを表示することができます。
アイテムの表示順序を決定するために、並べ替えおよびグループ化のオプションを選択します。
Web パーツがアイテムおよびグループ ヘッダーを表示する方法を制御するためのスタイル オプションを選択します。
既定では、コンテンツ クエリ Web パーツの表示を制御する XSL スタイル シートは、クエリが返すアイテムの [タイトル]、[説明]、[イメージ URL]、および [LinkUrl] の列 (存在する場合) をレンダリングします。Web パーツは、[イメージ URL] および [LinkUrl] 列をそれぞれ、イメージおよびハイパーリンクとしてレンダリングします。コンテンツ クエリ Web パーツは、既定で、XSL スタイル シートを使用してこれらの列をレンダリングします。
ユーザー設定のコンテンツ タイプに対するクエリを実行し、これらのコンテンツ タイプから特定の列を Web パーツにレンダリングする場合は, .webpart ファイルで小さなカスタマイズを実行する必要があります。
ここでは、Web パーツのクエリに追加の列を含める方法、および列の名前を既定の XSLT 変換が予期する名前に変更し、既定の XSLT 変換スタイルを使用して列をレンダリングするようにプログラムによって Web パーツに指示する方法について説明します。
このカスタマイズでの手順を理解するために、シナリオを考えてみましょう。以下の列を持つ Knowledge Base Articles コンテンツ タイプがあるとします。
KB Title (テキスト)
Product (テキスト)
Version (テキスト)
Status (選択肢)
Knowledge Base Articles というタイトルのドキュメント ライブラリを、Knowledge Base アーティクルを含むコンテンツ タイプと関連付けます。ホーム ページ上でコンテンツ クエリ Web パーツに Knowledge Base アーティクル コンテンツを表示し、Web パーツに [Title] 列をタイトル フィールドとして表示し、[Product] 列を説明フィールドとして表示します。これを行うには、以下の手順を実行します。
コンテンツ クエリ Web パーツにユーザー設定フィールドを表示するには
ページにコンテンツ クエリ Web パーツを追加します。
クエリ セクションで、ソースを Knowledge Base Articls ドキュメント ライブラリ (リスト) からアイテムを表示するように設定します。それに合わせてリストの種類とコンテンツ タイプを設定します。
プレゼンテーション セクションで、[アイテムのスタイル] を [タイトルと説明] に設定します。
Web パーツ ファイルのプロパティを、ユーザー設定フィールドを表示するように編集します。Web パーツの .webpart ファイルにアクセスするには、Web パーツの編集メニューで、[エクスポート] をクリックします。
- Office SharePoint Server 2007 は、この Web パーツで使用可能なプロパティの完全なセットを含む .webpart ファイルを生成します。.webpart ファイルは、テキスト エディタを使用して編集できる XML ファイルです。
.webpart ファイルで、CommonViewFields プロパティを探します。このプロパティを使用して、Web パーツに表示する追加のフィールドを指定します。列および型の内部名を追加します。
<property name="CommonViewFields" type="string">KB_x0020_Title,Text;Product,Text;</property>
注意
このプロパティで列の表示名を使用することはできません。内部列名は、リストまたはドキュメント ライブラリで列のプロパティを調べると見つけることができます。列を右クリックし、[プロパティ] をクリックします。列の内部名は、Address (URL) プロパティで 'Field=' の後に表示されています。Knowledge Base Articles シナリオでは、列は Knowledge Base Article および Product で、内部名はそれぞれ KB_x0020_Title、Product です。
これらの内部列名を XSLT 変換に存在する列のタイトルと説明にマップします。これを行うには、DataColumnRenames プロパティを編集します。
<property name="DataColumnRenames" type="string">KB_x0020_Title,Title;Product,Description</property>
注意
既定の XSLT 変換は、[タイトル]、[説明]、[LinkUrl]、および [イメージ URL] の 4 つのフィールドをレンダリングすることができます。DataColumnRenames プロパティで、指定する名前が XSLT 変換内の名前 (つまりタイトル、説明、リンク URL、およびイメージ URL) に一致することを確認します。
.webpart ファイルをローカルに保存します。
Web ページで、手順 1. で追加したコンテンツ クエリ Web パーツを削除します。
.webpart ファイルをインポートし、ページに Web パーツを追加します。.webpart ファイルをインポートするには、[ページ] をクリックし、[Web パーツの追加] をクリックし、[インポート] をクリックします。.webpart ファイルを参照し、[アップロード] をクリックします。
Web パーツをページ内の目的の領域にドラッグします。Web パーツは、Knowledge Base の [タイトル] および製品名を表示します。
KB Title および Product に加えて [Status] または [Version] 列を表示する場合は、XSLT 変換を変更し、追加の列に対するレンダリングを追加します。
注意
前の例は、レンダリングされた出力にユーザー設定フィールドを含めるように、1 つのページ上の単一の Web パーツを編集する方法を示しています。ただし、Microsoft Office SharePoint Designer 2007 などのエディタを使用して、Web パーツに変更を加えることもできます。Office SharePoint Designer 2007 は、ページ レイアウト上で使用される Web パーツをカスタマイズし、そのレイアウトを使用して作成されるページにそのカスタム Web パーツを自動的に含める場合に適したツールです。カスタマイズされた Web パーツを Web パーツ ギャラリーに追加して、新しいページの Web パーツ領域内にドラッグ アンド ドロップできるようにすることもできます。
See Also
タスク
[方法] コンテンツ クエリ Web パーツの XSL をカスタマイズする
[方法] コンテンツ クエリ Web パーツ用に RSS をカスタマイズする
[方法] カスタム プロパティを使用してコンテンツ クエリ Web パーツをカスタマイズする