[方法] アセットの選択をカスタマイズする
アセットの選択ツールにより、作成者は現在のサイト コレクション内の SharePoint ライブラリまたはリストから URL やイメージを簡単に挿入できます。アセットの選択を使用すると、コンテンツを挿入するときに、それを指す URL を入力する必要がありません。アセットの選択は、発行サイトにあるさまざまなフィールド コントロールで使用できます。その例を次に示します。
HTML エディタ フィールド コントロール
イメージ フィールド コントロール
概要リンク Web パーツ
選択ウィンドウの左側にある [検索先] ウィンドウに、定義済み SharePoint ライブラリへのショートカットが表示されます。これらのショートカットは、作成者がサイト コレクションのフォルダ内を移動しなくても、コンテンツをすぐに簡単に見つけられるようにするために設計されています。イメージの選択では、ショートカットは次の場所を指しています。
現在のサイトのイメージ ライブラリ
現在のサイト コレクションのイメージ ライブラリ
URL の選択では、次の場所を指しています。
現在のサイトのページ ライブラリ
現在のサイトのドキュメント ライブラリ
現在のサイト コレクションのドキュメント ライブラリ
上記のような既定の場所にないドキュメントを作成者が頻繁に挿入する必要がある場合は、サイト コレクション内の別の場所を指す追加のショートカットを定義できます。イメージの選択に 1 つ URL の選択に 1 つのカスタム ショートカットを定義できます。定義すると、既定のショートカットの横にある [検索先] ウィンドウに、それらのショートカットが表示されます。カスタム選択ショートカットは、1 つのコントロールの範囲内でのみ定義できます。テンプレート ファイルでコントロールのマークアップを編集すると、そのコントロールから呼び出されたアセットの選択のみに、指定したカスタム ショートカットが表示されます。
ページ レイアウト レベルでアセットの選択をカスタマイズする
ページ レイアウト内の RichHtmlField または RichImageField コントロールのカスタム選択ショートカットを定義できます。
\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\PublishingLayouts\PageLayouts に移動し、ページ レイアウト .aspx ファイルを開きます。
アセットの選択を使用するコントロールに関連付けられている発行フィールド コントロールを探します。たとえば、<PublishingWebControls:RichHtmlField> は HTML エディタ フィールド コントロールを表しています。
このタグに、次の属性のどちらかまたは両方を追加します。
DefaultAssetLocation : URL の選択のカスタム ショートカットの URL を定義します。
DefaultAssetImageLocation : イメージの選択のカスタム ショートカットの URL を定義します。
これらの URL は、"/ReusableContent" のように、サイト コレクション内のライブラリ、リスト、またはその他の場所を指すサイト コレクションの相対 URL である必要があります。
たとえば、次の <PublishingWebControls:RichHtmlField> コントロールは、URL の選択のカスタム ショートカット /URLpicker とイメージの選択のカスタム ショートカット /imagepicker を定義しています。
<PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" DefaultAssetLocation="/URLpicker" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
同様に、次の <PublishingWebControls:RichHtmlField> コントロールは、イメージの選択のカスタム ショートカットを定義しています。
<PublishingWebControls:RichImageField id="Content" FieldName="PublishingPageImage" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
変更を保存して、ページ レイアウト .aspx ファイルを閉じます。
アプリケーション内の任意の .aspx ページに AssetUrlSelector コントロールを追加する
アプリケーション内の任意の .aspx ページに <cms:AssetUrlSelector> サーバー コントロールを追加できます。このサーバー コントロールは、現在選択されている URL を表示する TextBox と、クリックしたときに適切な JavaScript コードを実行してアセットの選択ユーザー インターフェイスを起動する LinkButton をレンダリングします。
<cms:AssetUrlSelector> コントロールの次の属性を使用して、[Asset Picker] ダイアログ ボックスをカスタマイズできます。
属性 |
説明 |
---|---|
DefaultOpenLocationUrl |
アセットの選択で開く既定の場所を設定します。 |
DefaultsToLastUsedLocation |
最後に使用された場所でアセットの選択ウィンドウを開く場合は True に設定します。アセットの選択を初めて使用する場合は、DefaultOpenLocationUrl プロパティで指定された場所で開きます。 常に DefaultOpenLocationUrl で指定された場所に開く場合は、False に設定します。 |
DisplayLookInSection |
アセットの選択ウィンドウに [検索先] セクションを表示する場合は True に設定します。それ以外の場合は、False に設定します。 |
OverrideDialogFeatures |
[Asset Picker] ダイアログ ボックスの各種プロパティを上書きします。 |
OverrideDialogTitle |
[Asset Picker] ダイアログ ボックスのタイトルを設定します。 |
OverrideDialogDescription |
[Asset Picker] ダイアログ ボックスの上部に表示される説明を設定します。 |
OverrideDialogImageUrl |
[Asset Picker] ダイアログ ボックスの右上に表示されるアイコンを設定します。 |
AssetTextClientID |
指定すると、アセットの選択が返す AssetText 値の HTML 要素を探す際にこの ID が使用されます。 既定では子の TextBox コントロールの ClientID に設定されます。 |
AsserUrlClientID |
指定すると、アセットの選択が返す AssetUrl 値の HTML 要素を探す際にこの ID が使用されます。 既定では子の TextBox コントロールの ClientID に設定されます。 |
ClientCallback |
アセットの選択ダイアログ ボックスが値を返すときに呼び出す JavaScript 関数を含む文字列。 既定では String.Empty に設定されます。 |
UseImageAssetPicker |
アセットの選択のイメージ バージョンを使用する場合は True に設定します。 URL バージョンを使用する場合は False に設定します。イメージの選択は、既定では縮小表示で開きます。イメージを指していない URL をユーザーが選択すると、ユーザーに警告が表示されます。 |
AllowExternalURLs |
外部 URL の指定を許可する場合は True に設定します。 既定は False です。 |
AssetUrlTextBoxVisible |
URL テキスト ボックスを非表示にする場合は False に設定します。 既定は True です。 |
AssetPickerButtonVisible |
選択ウィンドウを起動するボタンを非表示にする場合は False に設定します。 既定は True です。 |
AutoPostBack |
ユーザーがテキスト ボックスに直接入力して選択済みの URL を変更するか、またはアセットの選択ウィンドウで別のアイテムを選択したときにアセットの選択を自動的にポスト バックする場合は True に設定します。既定は False です。 |
AsserUrlClientID |
指定すると、アセットの選択が返す AssetUrl 値の HTML 要素を探す際にこの ID が使用されます。 既定では子の TextBox コントロールの ClientID に設定されます。 |
例
この例の <cms:AssetUrlSelector> コントロールでは、使用可能な多数の属性を使用しています。
<CMS:AssetUrlSelector
DefaultOpenLocationUrl="~SiteCollection/"
DefaultToLastUsedLocation="false"
DisplayLookInSection="true"
OverrideDialogFeatures="resizable: no; status: yes; scroll: yes; help: no; dialogWidth:500px; dialogHeight:500px;"
OverrideDialogTitle="Custom Picker Title"
OverrideDialogDescription="Custom Picker Description"
OverrideDialogImageUrl="~Site/PublishingImages/AssetPickerLogo.jpg"
AssetTextClientID="testAssetTextClientIDCust"
ClientCallback="function(returnedUrl) { window.alert('ClientCallback[AssetTextClientID]: ' + returnedUrl); }"
id="assetSelectedImageCustomLauncher"
UseImageAssetPicker=true
runat="server" />