• 検索結果がありません。

著 作 権 このドキュメントに 記 載 されている 情 報 (URL 等 のインターネット Web サイトに 関 する 情 報 を 含 む) は 将 来 予 告 なしに 変 更 する ことがあります 別 途 記 載 されていない 場 合 このソフトウェアおよび 関 連 するドキュメントで 使 用 し

N/A
N/A
Protected

Academic year: 2021

シェア "著 作 権 このドキュメントに 記 載 されている 情 報 (URL 等 のインターネット Web サイトに 関 する 情 報 を 含 む) は 将 来 予 告 なしに 変 更 する ことがあります 別 途 記 載 されていない 場 合 このソフトウェアおよび 関 連 するドキュメントで 使 用 し"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

Microsoft Office SharePoint Server 2007 自習書

(2)

著作権 このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む) は、将来予告なしに変更する ことがあります。別途記載されていない場合、このソフトウェアおよび関連するドキュメントで使用している会社、組織、製品、ドメイン 名、電子メール アドレス、ロゴ、人物、場所、出来事などの名称は架空のものです。実在する名称とは一切関係ありません。お客 様ご自身の責任において、適用されるすべての著作権関連法規に従ったご使用を願います。マイクロソフトは、このドキュメントに記 載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。別途マイクロソ フトのライセンス契約上に明示の規定のない限り、このドキュメントはこれらの特許、商標、著作権、またはその他の無体財産権に 関する権利をお客様に許諾するものではありません。

2008 Microsoft Corporation. All rights reserved.

Microsoft、Active Directory、ActiveSync、Microsoft Press、MSDN、Outlook、Windows、Windows Mobile、

(3)

はじめに

本テキストは、Office SharePoint Server 2007 に新しく追加されたコンテンツクエリ Web パーツの概要、基本操作 およびカスタマイズ手法について説明することを目的としています。

(4)

変更履歴

バージョン リリース時期 変更内容

(5)

目次

Microsoft Office SharePoint Server 2007 自習書 コンテンツクエリ Web パーツの操作手順編 ... 1

はじめに ... 3 変更履歴 ... 4 目次 ... 5 第1 章 基本編 ... 6 1.1. コンテンツクエリ Web パーツとは ... 7 1.2. コンテンツクエリ Web パーツの設定項目 ... 8 1.2.1. [クエリ] セクション ... 9 1.2.2. [プレゼンテーション] セクション ... 11 1.3. スタイルの種類 ... 13 1.3.1. グループ スタイル ... 13 1.3.2. アイテムのスタイル ... 14 1.3.3. 標準設定ではできないこと ... 15 1.4. アーキテクチャ ... 16 1.4.1. 成ファイルと役割 ... 16 1.5. データビューとの違い ... 18 1.5.1. データビュー概要 ... 18 1.5.2. 機能比較 ... 19 第2 章 カスタマイズ編 ... 20 2.1. 取得アイテムの変更 ... 21 2.1.1. 取得項目のカスタマイズ ... 21 2.1.2. ユーザー定義フィールドを追加 ... 23 2.1.3. 日本語表記列を使用 ... 24 2.1.4. 取得条件のカスタマイズ ... 25 2.1.5. 複数コンテンツタイプを表示 ... 25 2.2. スタイル (UI) の変更 ... 29 2.2.1. 前提条件 ... 29 2.2.2. 日付・概要を表示する場合 ... 30 2.2.3. ヘッダーにリンクを追加する場合 ... 34 2.2.4. カスタム XSL スタイルシートを使用する場合 ... 37 第3 章 まとめ ... 43

(6)

1章 基本編

(7)

1.1. コンテンツクエリ Web パーツとは

コンテンツクエリ Web パーツは、 Office SharePoint Server 2007 で新たに追加された Web パーツの 1 つで、 指定した SharePoint リストやライブラリから、クエリ条件に一致するアイテムを抽出表示することができる Web パー ツです。従来のデータビューでは実現できなかったポータル全体からのデータ抽出や、より複雑なクエリ条件の指定がで きるようになりました。また、Front Page や Microsoft® Office SharePoint ® Designer 2007 といった Web デ ザインツールを使うことなく通常の Web パーツ変更からの設定が可能であるため、サイト管理者だけでなく、サイトの 編集権限をもったユーザーが、容易に追加や編集を行えるようになりました。サイトからアイテムを取得するクエリは、コン テンツクエリ Web パーツを含むページが表示されるたびに実行されます。そのため、新着のブログ記事や、最近更新さ れたドキュメントなど、常に最新のアイテムがコンテンツクエリ Web パーツに反映されることになります。

(8)

1.2. コンテンツクエリ Web パーツの設定項目

コンテンツクエリ Web パーツの設定項目には、Web パーツ共通の設定項目である [外観]、[レイアウト]、[詳細設 定] セクションの他に、[クエリ] セクションと [プレゼンテーション] セクションが存在します。[クエリ] セクションでは、クエリ によって取得されるアイテムを指定することができ、[プレゼンテーション] セクションでは、クエリによって取得されるアイテム の表示をカスタマイズすることができます。コンテンツクエリ Web パーツの設定を行うには、Web パーツの右上隅にある [▼] をクリックして、[共有 Web パーツの変更] をクリックします。サイトの [編集モード] が作動して、画面右側にツ ールウィンドウが開き、コンテンツクエリ Web パーツの設定項目が表示されます

(9)

1.2.1. [クエリ] セクション (1) ソース これは必須の設定です。クエリの範囲と場所を指定します。この設定には、次の 3 つのオプションがあります。 A) [このサイト コレクションのすべてのサイトからアイテムを表示する] サイト コレクション全体に対してクエリを実行する場合は、このオプションを設定します。これは既定の設定です。 B) [以下のサイトおよびそのサブサイトからアイテムを表示する] サイト コレクション内の特定のサイト、およびその配下にあるすべてのサブサイトに対してクエリを実行する場合は、こ のオプションを選択します。サイトのアドレスを入力することもできますが、[参照] を使用してサイトを選択することをお 勧めします。[参照] をクリックすると、[サイトの選択] ダイアログボックスが開き、サイト コレクションがツリービューで表 示されます。クエリ対象のサイトをクリックし、[OK] をクリックします。 C) [以下のリストからアイテムを表示する] サイト コレクション内の特定のリストまたはライブラリに対してクエリを実行する場合は、このオプションを選択します。リ ストのアドレスを入力することもできますが、[参照] を使用してリストまたはライブラリを選択することをお勧めします。 [参照] をクリックすると、[リストまたはライブラリの選択] ダイアログボックスが開き、サイト コレクションがツリービューで 表示されます。クエリ対象のリストまたはライブラリが特定のサイト内にある場合は、そのサイトの名前の横にあるプラス 記号 (+) をクリックします。クエリ対象のリストまたはライブラリが表示されたら、それをクリックし、[OK] をクリックしま す。 (2) リストの種類 これは必須の設定です。サイト コレクションに含まれている種類であれば、どの種 類でも選択することができます。既定の設定は、[ページ ライブラリ] です。この設 定で選択するリストの種類に応じて、クエリの範囲内にあるどのリストまたはライブ ラリがクエリによって処理されるかが決定されます。

(10)

(3) [コンテンツタイプ]: これは任意の設定です。この設定には、[コンテンツタイプ グループ] と [コンテンツタイ プ] の 2 つのオプションがあります。この設定を使用して、サイト コレクションに対して 定義されている特定のコンテンツタイプのアイテムにのみクエリが実行されるよう設定する ことができます。 (4) [対象ユーザーの設定]: これは任意の設定です。[対象ユーザーをフィルタ処理できるようにする] を選択する と、クエリにより、ページ閲覧者が対象ユーザーとして設定されているアイテムのみが 表示されるよう取得したデータがフィルタされます。対象ユーザーの定義は、システム 全体で適用されるため、コンテンツクエリ Web パーツを使用して変更することはできません。[対象ユーザーをフィルタ処 理できるようにする] を選択すると、[対象に含まれないアイテムを表示する] を選択できるようになります。この設定を選 択すると、ページ閲覧者が対象ユーザーであるかどうかに関係なく、対象ユーザーが明示的に設定されていないすべて のアイテムがクエリによって取得されます。この設定を選択することなく [対象ユーザーをフィルタ処理できるようにする] を 選択した場合、対象ユーザーが明示的に設定されていないアイテムはクエリによって取得されません。 (5) [追加フィルタ]: これは任意の設定です。この設定により、クエリによって取得されるアイテムをさらに制 限することができます。特定のフィルタフィールドと比較演算子を選択し、条件を入力 します。[追加フィルタ] 設定では、最大で 3 つのフィルタを指定できます。複数のフ ィルタを使用する場合、2 つ目のフィルタ (および 3 つ目のフィルタ) の前で、[かつ] もしくは [または] を使用して、すべてのフィルタがいかに連携して適用されるかを指 定する必要があります。

(11)

1.2.2. [プレゼンテーション] セクション (1) [グループ化と並び替え] これは任意の設定です。この設定により、クエリによって取得されるアイテムを整理することができます。 A) [アイテムのグループ化キー] アイテムをグループに分類するのに使用するフィールドを選択します。グループ化の基準となるフィールドを選択す るとき、[昇順でグループを表示する] および [降順でグループを表示する] を使用して、アイテムを昇順で整列 するか降順で整列するかを指定できます。 B) [列数] アイテムを整列するのに使用する列の数を指定します。アイテムの整列に使用できる列の数は最大で 5 つです。 C) [アイテムの並べ替えキー] アイテムの並び替えに使用するフィールドを選択します。アイテムをグループ化した場合、アイテムはこの設定で選択 するフィールドを基準としてグループ内で並べ替えられます。並べ替えの基準となるフィールドを選択するとき、[昇順で アイテムを表示する] および [降順でアイテムを表示する] を使用して、アイテムを昇順で整列するか降順で整列す るかを指定できます。 D) [表示するアイテム数を制限する] 表示するアイテムの数を制限することができます。制限を指定しなければ、クエリによって取得されるすべてのアイテム が表示されます。アイテムが多数ある場合は、すべてのアイテムが表示されるようページが拡張されます。 (2) [スタイル] これは任意の設定です。この設定により、グループまたはアイテムに視覚スタイルを適 用することができます。 A) [グループ スタイル] グループに適用するスタイルを選択します。グループ スタイルの種類、およびサンプルイメージについては、次節 の [スタイルの種類] をご参照ください。 B) [アイテムのスタイル] アイテムに適用するスタイルを選択します。アイテムのスタイルの種類、およびサンプルイメージについては、次節の [ス タイルの種類] をご参照ください。

(12)

(3) [フィード] これは任意の設定です。[この Web パーツのフィードを有効にする] を選択する と、コンテンツクエリ Web パーツが RSS フィードとして機能するように設定するこ とができます。 A) [フィードのタイトル] RSS フィードの名前を入力します。この名前により、購読者は RSS リーダーのフィードを識別することができます。 B) [フィードの説明] RSS フィードの説明を入力します。この説明により、購読者は RSS リーダーのフィードの説明を参照することができ ます。

(13)

1.3. スタイルの種類

[プレゼンテーション] セクションで指定可能な標準の [グループ スタイル]、および [アイテムのスタイル] の名前とイメー ジを記します。 1.3.1. グループ スタイル [既定] [大テキスト] [小テキスト] [帯状] [中央揃え] [区切り文字]

(14)

1.3.2. アイテムのスタイル

[イメージを左に配置] [タイトルと説明]

[タイトルのみ] [背景付きタイトル]

[箇条書きタイトル] [イメージを右に配置]

(15)

[大タイトル] [イメージのみ] [固定イメージサイズ] 1.3.3. 標準設定ではできないこと コンテンツクエリ Web パーツでは、設定項目を指定することでサイト内の様々なアイテムを取得、表示することができ ます。しかし、標準の設定項目だけでは、より複雑なクエリ条件を指定することや、ユーザー独自の表示スタイルを使用 することができません。例えば、クエリのソースで指定できるリストは 1 つのため、複数のリストを指定してアイテムを取得 することができません。リストの種類も 1つのみの指定のため、異なる種類のアイテム (ドキュメントとリストなど) を同 時に指定することができません。また、各カテゴリ (グループ) で表示するアイテム数を制限することもできません。標準 設定では実現不可能な、これらのクエリを実行したい場合、コンテンツクエリ Web パーツを構成する XML ファイルや、 アイテムの表示を制御するスタイルシートをカスタマイズする必要があります。コンテンツクエリ Web パーツのカスタマイズ については、次章 カスタマイズ編をご参照ください。

(16)

1.4. アーキテクチャ

1.4.1. 構成ファイルと役割 コンテンツクエリ Web パーツは、プロパティを保持する webpart ファイルと、アイテムの表示を制御する XSL スタイル シートで構成されます。webpart ファイルは、使用可能なプロパティの完全なセットを含む XML ファイルです。[クエリ] セクションや [プレゼンテーション] セクションで設定した項目は、すべて webpart ファイル内の <property> タグに保 存されます。サイトに追加したコンテンツクエリ Web パーツの右上隅にある [▼] をクリックして、[エクスポート] をクリッ クすると、webpart ファイルをローカルに保存できます。この webpart ファイルの各プロパティを編集することで、クエリや 表示方法をカスタマイズすることができます。 XSL スタイルシートは、サイト コレクションのスタイル ライブラリに格納されており、Web パーツの表示を制御します。こ のうち、コンテンツクエリ Web パーツに関連するスタイルシートは以下のとおりです。 スタイルシート 説明 ContentQueryMain.xsl コンテンツクエリ Web パーツの表示を制御する主な XSL スタイルシート。 ItemStyle.xsl、Header.xsl と共にコンテンツクエリ Web パーツを表示するための HTML の生成に利用されます。 Header.xsl グループ ヘッダーのスタイルを制御 ItemStyle.xsl アイテムのスタイルを制御

(17)

Header と ItemStyle ファイルは、コンテンツクエリ Web パーツの設定項目である [グループ スタイル] と [アイテム のスタイル] に対応しています。 これらのXSL スタイルシートをカスタマイズすることで、クエリが取得するアイテムのどの列を、どのように表示するかを指 定することができます。カスタマイズする場合は、XSL スタイルシートをローカルに保存する必要があります。トップレベル サイトのサイドリンクバーにある [すべてのサイト コンテンツの表示] をクリックします。すべてのサイト コンテンツ画面が表 示されたら、[ドキュメント ライブラリ] グループの [スタイル ライブラリ] をクリックします。[スタイル ライブラリ] が表示され たら、[XSL Style Sheets] フォルダをクリックした後、カスタマイズしたい XSL スタイルシートを右クリックして、[対象をファ イルに保存] を選択し、ローカルにファイルを保存します。この時、拡張子が xml になっているので、xsl に変更して保 存します。編集後は、スタイル ライブラリのアップロード機能を使用して既存のスタイルを上書きします。

(18)

1.5. データビューとの違い

1.5.1. データビュー概要 データビューは ASP.NET テクノロジを利用したビューで、SharePoint リストやライブラリの他に、データベース接続や XML ファイル、Web サービス、サーバーサイド スクリプトなど、さまざまなデータソースをカスタマイズして表示することが できます。また、データを表示するだけでなく、フィルタ、並べ替え、グループ化を行えるライブビューを提供します。複数の データソースのデータを表示する単一のデータビューを作成することや、複数ページにまたがるページング処理を設定す ることも可能です。SharePoint サイトにデータビューを追加するには、Windows® SharePoint® Services 3.0 と互 換性のある Web デザインプログラム (Office SharePoint Designer 2007 など) を使用します。Web ブラウザ上で データビューを追加したり編集したりすることはできません。

(19)

1.5.2. 機能比較

コンテンツクエリ Web パーツは、サイトの編集権限をもつユーザーが Web ブラウザを利用して自由に追加、変更す ることができる汎用的な Web パーツです。一方データビューは、サイトの管理者やサイトのデザインを行うデザイナーな どが利用する Web デザインツール (Office SharePoint Designer 2007 など) の機能の一部として提供されていま す。データビューでは、コンテンツクエリ Web パーツのように階層をまたいだデータの取得や、Web ブラウザを利用したビ ューの追加や変更を行うことはできません。その代わり、SharePoint 以外のデータソースから取得したデータをページ上 に表示することや、アイテムに対する編集・追加・削除リンクを表示して、Web ブラウザ上でアイテムを直接編集するこ とができます。またデータビューには、実際に表示されるデータをデザインツール上で確認しながら設定できるというメリット もあります。データビューとコンテンツクエリ Web パーツの使い分けについては、以下の機能比較表を参考に、目的に 応じて選定してください。以下の表は、標準で利用できる機能の比較です。 コンテンツクエリ と データビュー の機能相違点 コンテンツクエリ データビュー データの並び替え・グループ化 ○ ○ Web パーツ連携 ○ ○ 特定のリストからアイテムを表示 ○ ○ ポータル全体からデータを取得 ○ × ブラウザ上でのパーツの操作、変更 ○ × DB 上のデータ呼び出し × ○ Web サービス上のデータ呼び出し × ○ データの編集・追加・削除 × ○

(20)
(21)

1.7. 取得アイテムの変更

1.7.1. 取得項目のカスタマイズ 既定のコンテンツクエリ Web パーツは、クエリによって以下の列の情報をアイテムから取得します。 列名 説明 ListId リストID WebId ウェブID ID ID Title タイトル FileRef ファイル参照 (相対 URL) Modified 更新日時 Author 作成者 Editor 編集者 Created 作成日時 PublishingRollupImage イメージ _Level レベル Comments コメント LinkUrl リンクURL PubDate 発行日 ImageUrlAltText イメージ代替テキスト ImageUrl イメージURL Description 説明 Style スタイル GroupStyle グループスタイル

_begingroup True / False

_begincolumn True / False

_x007B_1d22ea11_x002D_1e32_x002D_424e_x002 D_89ab_x002D_9fedbadb6ce1_x007D_

(22)

上記の列の内、既定では [タイトル (Title) ]、[説明 (Description) ]、[イメージ URL (ImageUrl) ]、および [LinkUrl] が、XSL スタイルシートによってレンダリング (Web パーツ上に表示) されます。クエリで取得したその他の列 については、XSL スタイルシートをカスタマイズすれば表示できます。XSL スタイルシートのカスタマイズについては、次節 スタイル ( UI ) の変更をご参照ください。取得項目のカスタマイズ、すなわち上記以外の列をアイテムから取得したい 場合には、コンテンツクエリ Web パーツを構成する webpart ファイルを直接編集する必要があります。webpart フ ァイルの CommonViewFields 、DataColumnRenames プロパティは、クエリが返すアイテムの列を追加し、XSLT 変換によってレンダリングする列名を指定します。各プロパティについては、以下のとおりです。 プロパティ 説明 CommonViewFields アイテムから取得したいフィールドの名称と型を追加します。追加したフィール ドの内容はコンテンツクエリ Web パーツに表示させることができます。 DataColumnRenames CommonViewFields プロパティで追加した列に別名を付けます。別名は XSLT 変換で列をレンダリングする際に指定できます。

(23)

1.7.2. ユーザー定義フィールドを追加

webpart ファイルの CommonViewFields プロパティを編集します。CommonViewFields プロパティは、Web パー ツに表示する追加のフィールドを定義します。<property > ~ </property> の間に、追加したいフィールドの内部 列名および型を記述します。セミコロンでフィールドを区切ることにより、複数のフィールドを 1 つのプロパティに定義する ことも可能です。

(例) Title 列 (一行テキスト) と Description 列 (一行テキスト) を追加ここでは、Title および Description が内 部列名、Text が型となります。 内部列名を調べるには、リストまたはライブラリの設定画面で、列名を右クリックして、[プロパティ] を選択します。アドレ ス (URL) プロパティの 'Field=' の後が、内部列名となります。 フィールドの型の種類については、以下のとおりです。 列の種類 型名 一行テキスト Text 複数行テキスト Note 選択肢 Choice 数値 Number 通貨 Currency 日付と時刻 DateTime 参照 LookUp はい/いいえ Boolean ユーザーまたはグループ User

<property name="CommonViewFields" type="string">Title,Text;Description,Text; </property>

(24)

1.7.3. 日本語表記列を使用

列名を日本語で設定した場合、その列の内部名は UTF-16 でエンコードされた形で設定されるため、識別しにくいと いう欠点があります。webpart ファイルの DataColumnRenames プロパティを使用することで、XSL スタイルシートを カスタマイズして、追加フィールドをレンダリングする際、内部列名の代わりに別名を使用することが可能です。

DataColumnRenames プロパティは、<property > ~ </property> の間に、[内部列名] , [別名]; の形式で入 力します。

(例) 内部列名 [_x5185__x5bb9_] (内容) に別名 [Content] を命名

<property name="DataColumnRenames" type="string">_x5185__x5bb9_,Content; </property>

(25)

1.7.4. 取得条件のカスタマイズ webpart ファイルの上書きプロパティ (QueryOverride、WebsOverride、ListsOverride) を編集することで、標準 の設定項目だけでは指定できないクエリ条件を指定することができます。各プロパティについては、以下のとおりです。 プロパティ 説明 QueryOverride クエリの動作を上書きします。特定の複数サイトからのアイテムの取得や、複 数コンテンツタイプの表示など、Web ブラウザのツールウィンドウでは指定でき ないクエリを実行することができます。クエリ条件の指定には、CAML 構文を 使用します。QueryOverride プロパティを設定した場合、Web ブラウザのツ ールウィンドウでフィルタリングや並べ替え、グループ化の指定はできなくなりま す。 WebsOverride 指定したサイトの配下にあるすべてのサブサイトに対してクエリを実行するかど うか指定します。既定では、すべてのサブサイトに対してクエリを実行します。 WebsOverride プロパティを指定した場合、コンテンツクエリ Web パーツ は、指定したサイトだけにクエリを実行します。 ListsOverride クエリ対象となるリストの種類を指定します。複数のリストタイプに対してクエリ を実行することができるようになります。このカスタム プロパティを使用すると、 ブラウザ上の Web パーツの設定では指定できないリストタイプを指定するこ とが可能です。指定できるリストタイプの種類については、Windows SharePoint Services 3.0 SDK の List 要素リファレンスをご参照ください。

これらの上書きプロパティは、それぞれ既定のコンテンツクエリ Web パーツの動作を上書きします。動作を上書きする には、設定する条件を定義する CAML クエリを構築します。CAML 構文とコマンドの詳細については、弊社サイトの 『Windows SharePoint Services 3.0 SDK』の「CAML Reference (英語)」

(http://msdn2.microsoft.com/ja-jp/library/ms462365.aspx)をご参照ください。

1.7.5. 複数コンテンツタイプを表示

1 つのコンテンツクエリ Web パーツに複数のコンテンツタイプを表示する手順を説明します。 (1) カスタマイズ設定

(26)

B) ローカルに保存した webpart ファイルをメモ帳で開きます。 C) ListsOverride プロパティを書き換えます。 (※ここでは、例としてクエリの対象となるリストの種類に [ドキュメント ライブラリ] を指定しています。) 【参考】 Lists プロパティの BaseType 属性一覧 値 説明 0 汎用リスト 1 ドキュメント ライブラリ 3 ディスカッション フォーラム 4 投票またはアンケート 5 案件リスト 【変更前】 【変更後】 D) QueryOverride プロパティを書き換えます。 (※ここでは、例としてドキュメント コンテンツタイプとアーティクル ページ コンテンツタイプを指定しています。) 【変更前】 【変更後】 ファイルを上書き保存します

<property name="QueryOverride" type="string"> <![CDATA[<Where><Or>

<Eq><FieldRef Name="ContentType"/><Value Type="Text">ドキュメント</Value></Eq> <Eq><FieldRef Name="ContentType"/><Value Type="Text">アーティクル ページ

</Value></Eq> </Or></Where>]]> </property>

<property name="QueryOverride" type="string" />

<property name="ListsOverride" type="string"><![CDATA[<Lists BaseType=”1”><Lists>]]></property>

(27)

(2) 動作確認

A) [サイトの操作] メニューをクリックして、[ページの編集] をクリックします。

B) [Web パーツの追加] ダイアログボックスで、[Web パーツ ギャラリーとオプションの詳細設定] をクリックします。

C) [参照] メニューをクリックして、[インポート] をクリックします。

(28)

E) アップロードされた Web パーツを Web パーツ領域にドラッグアンドドロップで追加します。 F) ドキュメント コンテンツタイプのアイテム (例:画像ファイル、スタイルシートなど) と、アーティクル ページ コンテンツタイプのアイテム (例:サンプルのニュース記 事など) が、追加したコンテンツクエリ Web パーツに両方表示されていることを確認します。 アーティクル ページ コンテンツ タイプ ドキュメント コンテンツ タイプ

(29)

1.8. スタイル (UI) の変更

Web パーツの表示を制御する XSL スタイルシートをカスタマイズすることで、表示するフィールドを追加したり、独自の スタイルを作成したりできます。ここでは、そのカスタマイズ手順について紹介します。 1.8.1. 前提条件 以下の ■列情報 にある列を持つ NewsDocument という名前のコンテンツタイプを作成し、NewsDocument コ ンテンツタイプのアイテムから、ユーザー定義フィールドを取得するように CommonViewFields プロパティをカスタマイズ したコンテンツクエリ Web パーツを、任意の SharePoint サイトに追加していることを前提とします。コンテンツタイプに ついては、弊社サイトの『Microsoft Office SharePoint Server』の「コンテンツタイプの概要」

(http://office.microsoft.com/ja-jp/sharepointserver/HA101495511041.aspx?pid=CH101779691041) をご 参照ください。 (1) 列情報 列名 種類 タイトル 一行テキスト Description 一行テキスト PublishLevel 選択肢 PublishDept 選択肢 日付 日付と時刻 (2) CommonViewFields プロパティ (3) イメージ

<property name="CommonViewFields" type="string">Description,Text;PublishLevel,Choice; PublishDept,Choice</property>

(30)

1.8.2. 日付・概要を表示する場合 日付および Description (概要)を表示する手順を説明します。日付は、アイテムの更新日付を YYYY/MM/DD 形 式に変換して表示します。日付の書式を指定して出力するには、「ddwrt:FormatDateTime」関数を使います。また、 Description (概要)は先頭 50 文字だけを表示するように設定します。 (1) カスタマイズ設定 A) スタイルライブラリの ItemStyle.xsl ファイルをローカルに保存します。 B) 保存した ItemStyle.xsl ファイルをメモ帳で開きます。 C) 先頭の<xsl:stylesheet ~> タグ内に以下のコードを追加します。 D) タグの編集

<xsl:template name="NoImage" match="Row[@Style='NoImage']" mode="itemstyle"> タグを検索しま す。これは [アイテムのスタイル] で選択可能な [タイトルと説明] に該当します。このタグから </xsl:template> ま でをコピーして、</xsl:template> の下に貼り付けます。 E) スタイル名の適用 貼り付けた <xsl:template ~> タグ内の “NoImage” を、新しく作成するスタイルの名前に変更します (例: SampleStyle)。 <xsl:stylesheet version="1.0" exclude-result-prefixes="x d xsl msxsl cmswrt" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">

(31)

F) 次に <xsl:template ~> </xsl:template> で囲まれたコードを以下のように追加・編集します。

G) ファイルを上書き保存します。

<xsl:template name="SampleStyle" match="Row[@Style='SampleStyle']" mode="itemstyle"> <xsl:variable name="SafeLinkUrl">

<xsl:call-template name="OuterTemplate.GetSafeLink">

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="DisplayTitle">

<xsl:call-template name="OuterTemplate.GetTitle"> <xsl:with-param name="Title" select="@Title"/>

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="LinkTarget">

<xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if> </xsl:variable>

<xsl:template name="SampleStyle" match="Row[@Style='SampleStyle']" mode="itemstyle"> <xsl:variable name="SafeLinkUrl">

<xsl:call-template name="OuterTemplate.GetSafeLink">

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="DisplayTitle">

<xsl:call-template name="OuterTemplate.GetTitle"> <xsl:with-param name="Title" select="@Title"/>

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="LinkTarget">

<xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if> </xsl:variable>

(32)

(2) 動作確認 A) スタイルライブラリの [アップロード] メニューをクリックして、[ドキュメントのアップロード] をクリックします。 B) [既存のファイルに新バージョンとして追加する] チェックボックスをオンして、7. で保存した ItemStyle.xsl ファイ ルを選択して、[OK] をクリックします。 C) 必要なプロパティを入力して、[チェックイン] をクリックします。 D) コンテンツクエリ Web パーツを設置しているサイトに移動します。 E) コンテンツクエリ Web パーツの [編集] メニューをクリックし、[共有 Web パーツの変更] をクリックします。

(33)

F) [アイテムのスタイル] ドロップダウン リストに [SampleStyle] が追加されていることを確認して、選択します。

G) ツールウィンドウの [OK] をクリックします。コンテンツクエリ Web パーツに表示されているアイテムのタイトルの後 ろに (日付) と、その一段下に Description (概要)が 50 文字表示されていることが確認できます。

【変更前】

(34)

1.8.3. ヘッダーにリンクを追加する場合 アイテムをグループ化してコンテンツクエリ Web パーツを表示する場合のヘッダーにリンクを追加する手順を説明します。 (例として、コンテンツクエリ Web パーツの「グループ スタイル」に「Link-Title」を設定する場合を説明します。) (1) カスタマイズ設定 A) スタイルライブラリの Header.xsl をローカルに保存します。 B) 保存した Header.xsl ファイルをメモ帳で開きます。

C) <xsl:template name="Whitespace"~> で始まるタグを検索し、</xsl:template> の下に以下のコードを 追加します。

D) ファイルを上書き保存します。

<xsl:template name="Link-Title" match="*[@GroupStyle='Link-Title']" mode="header"> <xsl:variable name="LinkGroupName">

<xsl:call-template name="OuterTemplate.GetGroupName">

<xsl:with-param name="GroupName" select="@*[name()=$Group]"/> <xsl:with-param name="GroupType" select="$GroupType"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="SafeLinkUrl">

<xsl:call-template name="OuterTemplate.GetSafeLink">

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="SiteLinkUrl"> <xsl:value-of select="substring-before($SafeLinkUrl,'DocLib')"/> </xsl:variable> <div class="GroupHeader-Link">

<a href="{$SiteLinkUrl}"><xsl:value-of select="$ LinkGroupName "/></a> </div>

(35)

(2) 動作確認 A) スタイルライブラリの [アップロード] メニューをクリックして、[ドキュメントのアップロード] をクリックします。 B) [既存のファイルに新バージョンとして追加する] チェックボックスをオンにして、4. で保存した Header.xsl ファイ ルを選択して、[OK] をクリックします。 C) 必要なプロパティを入力して、[チェックイン] をクリックします。 D) コンテンツクエリ Web パーツを追加しているサイトに移動します。 E) Web パーツの [編集] メニューをクリックし、[共有 Web パーツの変更] をクリックします。

(36)

F) プレゼンテーション セクションにおいて、アイテムのグループ化キーに「<サイト>」を選択します。次にグループ ス タイルのドロップダウンリストから、追加された「Link-Title」スタイルを選択し、[OK] をクリックします。 G) ヘッダーにリンクが追加されていることが確認できます。 【既定のグループ スタイル】 【Link-Title グループ スタイル】 リンクが追加されている

(37)

1.8.4. カスタム XSL スタイルシートを使用する場合

カスタム XSL スタイルシートを使用することで、既定のスタイルに影響を与えることなく特定のコンテンツクエリ Web パ ーツのスタイルを変更することが可能です。ここでは、アイテムをテーブル形式で表示させるためのカスタム XSL スタイル シートを作成して、コンテンツクエリ Web パーツから参照する方法について説明します。(例として、コンテンツクエリ Web パーツの [アイテムのスタイル] に「TableStyle」を定義して、コンテンツクエリ Web パーツから参照する場合を説 明します。)

(1) カスタマイズ設定

A) スタイルライブラリの ContentQueryMain.xsl と ItemStyle.xsl をローカルに保存します。 B) 保存した ContentQueryMain.xsl ファイルをメモ帳で開きます。

C) ItemStyle.xsl に対して、クエリで取得したデータの最終行 (= LastRow) をパラメータとして渡すように ContentQueryMain.xsl を編集します。<xsl:call-template name="OuterTemplate.CallItemTemplate"> タグを 検索し、以下のようにコードを追加します。

<xsl:call-template name="OuterTemplate.CallItemTemplate"> <xsl:with-param name="CurPosition" select="$CurPosition" /> <xsl:with-param name="LastRow" select="$LastRow" /> </xsl:call-template>

(38)

D) <xsl:template name="OuterTemplate.CallItemTemplate"> タグを検索し、以下のようにコードを追加。 E) ファイルを上書き保存します。 F) 1. で保存した ItemStyle.xsl ファイルをメモ帳で開きます。 <xsl:template name="OuterTemplate.CallItemTemplate"> <xsl:param name="CurPosition" /> <xsl:param name="LastRow" /> <xsl:choose> ~//~ <xsl:when test="@Style='NewsCategoryItem'"> <xsl:apply-templates select="." mode="itemstyle"> <xsl:with-param name="CurPos" select="$CurPosition" /> </xsl:apply-templates>

</xsl:when>

<xsl:when test="@Style='TableStyle'">

<xsl:apply-templates select="." mode="itemstyle">

<xsl:with-param name="CurPos" select="$CurPosition" /> <xsl:with-param name="Last" select="$LastRow" /> </xsl:apply-templates>

</xsl:when> <xsl:otherwise>

<xsl:apply-templates select="." mode="itemstyle"> </xsl:apply-templates>

</xsl:otherwise> </xsl:choose> </xsl:template>

(39)

G) </xsl:stylesheet>の上に、以下のコードを追加して、新しいスタイル (TableStyle) を定義します。 ContentQueyMain.xsl から受け取る LastRow パラメータを利用して、テーブルの最終行を判断しています。

<xsl:template name="TableStyle" match="Row[@Style='TableStyle']" mode="itemstyle"> <xsl:param name="CurPos" />

<xsl:param name="Last" /> <xsl:variable name="SafeLinkUrl">

<xsl:call-template name="OuterTemplate.GetSafeLink">

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="LinkTarget">_blank</xsl:variable> <xsl:variable name="DisplayTitle">

<xsl:call-template name="OuterTemplate.GetTitle"> <xsl:with-param name="Title" select="@Title"/>

<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/> </xsl:call-template>

</xsl:variable>

<xsl:variable name="tableStart"> <xsl:if test="$CurPos = 1">

<![CDATA[<table border="1"><tr><td align="left"><b>Date</b></td><td align="left"><b>Title</b></td><td align="left"><b>Description</b></td></tr>]]>

</xsl:if> </xsl:variable>

(40)

H) ファイルを上書き保存します。 <xsl:variable name="tableEnd">

<xsl:if test="$CurPos = $Last"> <![CDATA[</table>]]> </xsl:if>

</xsl:variable>

<xsl:value-of select="$tableStart" disable-output-escaping="yes"/> <tr>

<td align="left">

<xsl:value-of select="ddwrt:FormatDateTime(string(@Created) ,1041 ,'MM-dd-yyyy')" /> </td>

<td align="left">

<a href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}"> <xsl:value-of select="$DisplayTitle"/> </a> </td> <td align="left"> <xsl:value-of select="@Description" /> </td> </tr>

<xsl:value-of select="$tableEnd" disable-output-escaping="yes"/> </xsl:template>

(41)

(2) 動作確認

A) スタイル ライブラリに「Sample」という名前のフォルダを新規作成します。

B) 作成した Sample フォルダ内に、編集した ContentQueryMain.xsl と ItemStyle.xsl ファイルをアップロード します。

C) この節の前提条件で説明したコンテンツクエリ Web パーツをエクスポートします。

D) ローカルに保存した webpart ファイルの以下のプロパティを編集します。

MainXslLink プロパティと ItemStyleLink プロパティには、この Web パーツで参照する ContentQueryMain.xsl と ItemStyle.xsl の相対 URL を指定します。

E) ファイルを上書き保存します。

<property name="ItemStyle" type="string">TableStyle</property> <property name="MainXslLink" type="string">/Style

Library/Sample/ContentQueryMain.xsl</property>

(42)

F) 編集した webpart ファイルを任意のサイトにインポートします。Date (日付) と Title (タイトル) 、 Description (概要) がテーブル形式で表示されていることが確認できます。

(43)
(44)

コンテンツクエリWeb パーツを利用することで、企業内ポータルは、ポータル内に存在する様々な場所のコンテンツデータ を動的に取得し、かつビジュアルに表示することか可能になります。各部門の新着情報などを、トップのページに表示す るなど、利用方法は多岐にわたります。また、このような場合は、コンテンツを二重登録させないというメリットも出てきま す。取得した情報に対しカスタマイズしたXSLT を利用することで、利用者に必要な情報を、分かりやすく表現(HTML 化)することができるようになります。特定のSharePoint 内の情報を、よりリッチな表示で行う場合にも、コンテンツクエリ Web パーツを利用することが可能です。コンテンツクエリ Web パーツは、サーバー上で動的に情報をクエリ(検索)し、 HTML 化を行います。そのため、対象となる情報はリアルタイムで表現される反面、1 回ごとのクエリとして、サーバー上 に負荷を発生させます。大量のコンテンツクエリWeb を同一ページに対して配置することは、パフォーマンス面を考慮す ると、問題になる可能性があるので、注意をする必要があります。 参考文献 [方法] カスタムプロパティを使用したコンテンツクエリ Web パーツをカスタマイズする http://msdn.microsoft.com/ja-jp/library/aa981241.aspx [方法] コンテンツ クエリ Web パーツにユーザー設定フィールドを表示する http://msdn.microsoft.com/ja-jp/library/ms497457.aspx

How to: Customize XSL for the Content Query Web Part

http://msdn.microsoft.com/ja-jp/library/bb447557(en-us).aspx

[方法] スタイルをカスタマイズする

参照

関連したドキュメント

この 文書 はコンピューターによって 英語 から 自動的 に 翻訳 されているため、 言語 が 不明瞭 になる 可能性 があります。.. このドキュメントは、 元 のドキュメントに 比 べて

る、関与していることに伴う、または関与することとなる重大なリスクがある、と合理的に 判断される者を特定したリストを指します 51 。Entity

これらの先行研究はアイデアスケッチを実施 する際の思考について着目しており,アイデア

テキストマイニング は,大量の構 造化されていないテキスト情報を様々な観点から

名刺の裏面に、個人用携帯電話番号、会社ロゴなどの重要な情

  

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

ASTM E2500-07 ISPE は、2005 年初頭、FDA から奨励され、設備や施設が意図された使用に適しているこ