How to: Customize the Asset Picker in SharePoint Server 2010 (ECM)
Applies to: SharePoint Server 2010
In this article
Customizing the Asset Picker at the Page-Layout Level
Add an AssetUrlSelector Control to Any .aspx Page in Your Application
Example
The asset picker tool enables authors to more easily find, sort, and view different types of assets that are available on the site. For example, you can find, view, and then insert a URL or an image from any SharePoint Server library or list in the current site collection. You can use the asset picker to insert content without having to type the URL that points to it. The asset picker is available in many field controls found on publishing sites, such as:
The HTML Editor field control
The Image field control
The Summary Links Web Part
The Look In pane contains shortcuts to predefined SharePoint Server libraries. These shortcuts are designed to help authors locate content quickly, without having to navigate through the folders in the site collection. In image pickers, these shortcuts point to:
The image library for the current site.
The image library for the current site collection.
In URL pickers, the shortcuts point to:
The pages library for the current site.
The document library for the current site.
The document library for the current site collection.
If your authors frequently want to insert documents that are not found in these default locations, you can define an additional shortcut pointing to another location in your site collection. You can define one custom shortcut to image pickers and one custom shortcut to URL pickers. When defined, these shortcuts appear in the Look In pane next to the default shortcuts. You can define custom picker shortcuts only in the scope of one control: After you edit the markup for a control in a template file, only asset pickers launched from that control display the specified custom shortcuts.
Customizing the Asset Picker at the Page-Layout Level
You can define a custom picker shortcut for a RichHtmlField control or for a RichImageField control inside a page layout:
Navigate to \Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\PublishingLayouts\PageLayouts and open a page layout .aspx file.
Find the Publishing field control associated with the control that uses the asset picker. For example, <PublishingWebControls:RichHtmlField> represents the HTML Editor field control.
Add one or both of the following attributes to this tag:
DefaultAssetLocation: Defines the URL for the custom shortcut in a URL picker.
DefaultAssetImageLocation: Defines the URL for the custom shortcut in an image picker.
These URLs should be site collection–relative URLs pointing to a library, list, or other location in your site collection, such as /ReusableContent.
For example, the following <PublishingWebControls:RichHtmlField> control defines the custom shortcuts /URLpicker and /imagepicker for URL and image pickers, respectively.
<PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" DefaultAssetLocation="/URLpicker" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
Similarly, the following <PublishingWebControls:RichHtmlField> control defines a custom shortcut for its image picker.
<PublishingWebControls:RichImageField id="Content" FieldName="PublishingPageImage" DefaultAssetImageLocation="/imagepicker" runat="server"/>
Save changes and close the page layout .aspx file.
Add an AssetUrlSelector Control to Any .aspx Page in Your Application
You can add a <cms:AssetUrlSelector> server control to any .aspx page in your application. This server control renders a TextBox that displays the currently selected URL and a LinkButton that, when clicked, runs the appropriate ECMAScript (JavaScript, JScript) code to launch the Asset Picker user interface.
You can use the attributes of the <cms:AssetUrlSelector> control shown in Table 1 to customize the Asset Picker dialog box.
Table 1. Attributes used to customize the Asset Picker dialog box
Attribute |
Description |
---|---|
DefaultOpenLocationUrl |
Sets the default location where the asset picker should be opened. |
DefaultsToLastUsedLocation |
Set to True to open the asset picker window in the last used location. The first time that you use the asset picker, it opens in the location specified by the DefaultOpenLocationUrl property. Set to False if you always want the asset picker window to open in the location specified in DefaultOpenLocationUrl. |
DisplayLookInSection |
Set to True to display a Look In section in the asset picker window. Otherwise, set to False. |
OverrideDialogFeatures |
Overrides various properties in the Asset Picker dialog box. |
OverrideDialogTitle |
Sets the title of the Asset Picker dialog box. |
OverrideDialogDescription |
Sets the description displayed near the top of the Asset Picker dialog box. |
OverrideDialogImageUrl |
Sets the icon displayed in the upper-right of the Asset Picker dialog box. |
AssetTextClientID |
When specified, this ID is used to find the HTML element for the AssetText value returned by the asset picker. Defaults to the ClientID of the child TextBox control. |
AsserUrlClientID |
When specified, this ID is used to find the HTML element for the AssetUrl value that the asset picker returns. Defaults to the ClientID of the child TextBox control. |
ClientCallback |
A string containing a ECMAScript (JavaScript, JScript) function to call when the asset picker dialog box returns a value. Defaults to String.Empty. |
UseImageAssetPicker |
Set to True to use the image version of the asset picker. Set to False to use the URL version of the asset picker. The image picker opens by default in Thumbnail view. If a user selects a URL that does not point to an image, the application warns the user. |
AllowExternalURLs |
Set to True to allow external URLs to be specified. The default is False. |
AssetUrlTextBoxVisible |
Set to False to hide the URL text box. The default is True. |
AssetPickerButtonVisible |
Set to False to hide the button that launches the asset picker window. The default is True. |
AutoPostBack |
Set to True to cause the asset picker to automatically post back when the user changes the selected URL by typing directly in the text box, or when the user selects a different item in the asset picker window. The default is False. |
AsserUrlClientID |
When specified, this ID is used to find the HTML element for the returned AssetUrl value returned by the asset picker. Defaults to the ClientID of the child TextBox control. |
Example
This example <cms:AssetUrlSelector> control uses many of the available attributes.
<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" />
See Also
Concepts
Managing Rich Media Assets in SharePoint Server 2010 (ECM)
Rich Media Programming Model in SharePoint Server 2010 (ECM)
How to: Customize the SharePoint HTML Editor Field Control (ECM)