Procédure : personnaliser le sélecteur d'éléments
Le sélecteur d'éléments est un outil qui permet aux créateurs d'insérer facilement une URL ou une image à partir d'une bibliothèque SharePoint ou d'une liste dans la collection de sites actuelle. Vous pouvez l'utiliser pour insérer un contenu sans taper l'URL qui pointe vers ce contenu. Cet outil est disponible dans de nombreux contrôles de champs dans les sites de publication, par exemple :
Le contrôle de champ Éditeur HTML
Le contrôle de champ Image
Le composant WebPart Liens de synthèse
Le volet Rechercher dans situé à gauche dans la fenêtre du sélecteur contient des raccourcis vers des bibliothèques SharePoint prédéfinies. Ces raccourcis sont conçus pour aider les créateurs à localiser rapidement et facilement un contenu sans avoir à parcourir les dossiers dans la collection de sites. Dans les sélecteurs d'images, ces raccourcis pointent sur :
La bibliothèque d'images du site actuel
La bibliothèque d'images de la collection de sites actuelle
Dans les sélecteurs d'URL, ils pointent sur :
La bibliothèque de pages du site actuel
La bibliothèque de documents du site actuel
La bibliothèque de documents de la collection de sites actuelle
Si vos créateurs ont souvent besoin d'insérer des documents qui ne se trouvent pas à ces emplacements par défaut, vous pouvez définir un autre raccourci pointant vers un autre emplacement de votre collection de sites. Vous pouvez définir un raccourci personnalisé vers des sélecteurs d'images et un autre vers des sélecteurs d'URL. Une fois qu'ils ont été définis, ces raccourcis s'affichent dans le volet Rechercher dans à côté des raccourcis par défaut. Vous pouvez définir des raccourcis personnalisés vers des sélecteurs uniquement dans l'étendue d'un contrôle : une fois que vous avez modifié le balisage d'un contrôle dans un fichier de modèle, seuls les sélecteurs d'éléments démarrés à partir de ce contrôle affichent les raccourcis personnalisés spécifiés.
Personnalisation du sélecteur d'éléments au niveau de la mise en page
Vous pouvez définir un raccourci de sélecteur personnalisé pour un contrôle RichHtmlField ou RichImageField à l'intérieur d'une mise en page :
Accédez à
\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\PublishingLayouts\PageLayouts
et ouvrez un fichier .aspx de mise en page.Recherchez le contrôle de champ de publication associé au contrôle qui utilise le sélecteur d'éléments. Par exemple,
<PublishingWebControls:RichHtmlField>
représente le contrôle de champ Éditeur HTML.Ajoutez un des attributs suivants, ou les deux, à cette balise :
DefaultAssetLocation : définit l'URL du raccourci personnalisé dans un sélecteur d'URL.
DefaultAssetImageLocation : définit l'URL du raccourci personnalisé dans un sélecteur d'images.
Ces adresses URL doivent être liées à une collection de sites, pointant sur une bibliothèque, une liste ou un autre emplacement dans votre collection de sites, tel que
"/ReusableContent"
.Par exemple, le contrôle
<PublishingWebControls:RichHtmlField>
suivant définit les raccourcis personnalisés/URLpicker
et/imagepicker
respectivement pour les sélecteurs d'URL et d'images.<PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" DefaultAssetLocation="/URLpicker" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
De la même façon, le contrôle
<PublishingWebControls:RichHtmlField>
suivant définit un raccourci personnalisé pour son sélecteur d'images.<PublishingWebControls:RichImageField id="Content" FieldName="PublishingPageImage" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
Enregistrez les modifications et fermez le fichier .aspx de mise en page.
Ajoutez un contrôle AssetUrlSelector à toutes les pages .aspx de votre application
Vous pouvez ajouter un contrôle serveur <cms:AssetUrlSelector>
à n'importe quelle page .aspx de votre application. Ce contrôle serveur affiche un élément TextBox qui indique l'URL actuellement sélectionnée et un élément LinkButton qui, quand l'utilisateur clique sur celui-ci, exécute le code JavaScript approprié pour lancer l'interface utilisateur du sélecteur d'éléments.
Vous pouvez utiliser les attributs suivants du contrôle <cms:AssetUrlSelector>
pour personnaliser la boîte de dialogue du sélecteur d'éléments.
Attribut | Description |
---|---|
DefaultOpenLocationUrl |
Définit l'emplacement par défaut où le sélecteur d'éléments doit être ouvert. |
DefaultsToLastUsedLocation |
Choisissez True pour ouvrir la fenêtre du sélecteur d'éléments au dernier emplacement utilisé. La première fois que vous utilisez le sélecteur d'éléments, il s'ouvre à l'emplacement spécifié par la propriété DefaultOpenLocationUrl. Choisissez False si vous souhaitez toujours l'ouvrir à l'emplacement spécifié dans DefaultOpenLocationUrl. |
DisplayLookInSection |
Choisissez True pour afficher une section Rechercher dans dans la fenêtre du sélecteur d'éléments. Sinon, choisissez False. |
OverrideDialogFeatures |
Remplace plusieurs propriétés dans la boîte de dialogue Sélecteur d'éléments. |
OverrideDialogTitle |
Définit le titre de la boîte de dialogue Sélecteur d'éléments. |
OverrideDialogDescription |
Définit la description affichée dans la partie supérieure de la boîte de dialogue Sélecteur d'éléments. |
OverrideDialogImageUrl |
Définit l'icône affichée en haut à droite dans la boîte de dialogue Sélecteur d'éléments. |
AssetTextClientID |
Lorsque cet identificateur est spécifié, il permet de trouver l'élément HTML de la valeur AssetText renvoyée par le sélecteur d'éléments. Il utilise par défaut le ClientID du contrôle TextBox enfant. |
AsserUrlClientID |
Lorsque cet identificateur est spécifié, il permet de trouver l'élément HTML de la valeur AssetUrl que renvoie le sélecteur d'éléments. Il utilise par défaut le ClientID du contrôle TextBox enfant. |
ClientCallback |
Chaîne qui contient une fonction JavaScript à appeler lorsque la boîte de dialogue du sélecteur d'éléments renvoie une valeur. Il s'agit de String.Empty par défaut. |
UseImageAssetPicker |
Choisissez True pour utiliser la version de l'image du sélecteur d'éléments. Choisissez False pour utiliser la version URL. Le sélecteur d'images s'ouvre par défaut en mode Miniature. Si un utilisateur sélectionne une URL qui ne pointe pas sur une image, l'application l'avertit. |
AllowExternalURLs |
Choisissez True pour que des URL externes puissent être spécifiées. La valeur par défaut est False. |
AssetUrlTextBoxVisible |
Choisissez False pour masquer la zone de texte de l'URL. La valeur par défaut est True. |
AssetPickerButtonVisible |
Choisissez False pour masquer le bouton qui lance la fenêtre du sélecteur. La valeur par défaut est True. |
AutoPostBack |
Choisissez True pour que le sélecteur d'éléments effectue une publication automatique lorsque l'utilisateur modifie l'URL sélectionnée en tapant directement dans la zone de texte ou quand il sélectionne un autre élément dans la fenêtre du sélecteur d'éléments. La valeur par défaut est False. |
AsserUrlClientID |
Lorsque cet identificateur est spécifié, il permet de trouver l'élément HTML de la valeur AssetUrl renvoyée par le sélecteur d'éléments. Il utilise par défaut le ClientID du contrôle TextBox enfant. |
Exemple
Cet exemple de contrôle <cms:AssetUrlSelector>
utilise plusieurs de ces attributs.
<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" />