lunes, 7 de septiembre de 2009

Mi primer “delegate control”

Los controles delegados constituyen una potente funcionalidad de sharepoint que definen regiones dentro de las páginas maestras que pueden ser sustituidas para resolver algún requerimiento.

Lo más interesante es que esto puede ser realizado sin necesidad de alterar la página maestra, ya que la operación se realiza a través de una feature.

Veamos un ejemplo sencillo: imaginemos que queremos agregar en el ángulo superior derecho un link hacia la página web de nuestra empresa, tal como se ve en la imagen:
Los pasos que debemos seguir son:

1) Crear un User Control (ejemplo APLinks.ascx)

<%@ Control Language="C#" ClassName="APLinks" %>
<table><tr>
<td class="ms-globallinks" ><a href=http://www.rmya.com.ar/>RMyA</a></td>
<td class="ms-globallinks" ></td >
</tr></table>

2) Crear un el elemento que llama al User Control (ejemplo elements.xml)

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"&gt;
<Control Id="AdditionalPageHead"
ControlSrc="~/_controltemplates/AP/APClientScripts.ascx"
/>
<Control Id="GlobalSiteLink0"
Sequence="99"
ControlSrc="~/_controltemplates/AP/APLinks.ascx"
/>
</Elements>

En ese ejemplo se ven dos controles. El que aplica a nuestro caso es GlobalSiteLink0. La secuencia indica el orden de precedencia respecto al control estándar de sharepoint que normalmente es 100.

3) Crear la feature y activarla (ejemplo feature.xml)

<Feature xmlns=http://schemas.microsoft.com/sharepoint/
Id="{0B4566F8-5A77-482c-8FA7-0EAC0EA0C7DE}"

Title="Analyzer Point"

Description="Extensión a WSS creada por RMyA para soportar funcionalidad para Analyzer Point."

Scope="Web"

Hidden="FALSE"
ReceiverAssembly="AP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0a908865defbb104"
ReceiverClass="AP.FeatureReceiver"
>
<ElementManifests
>
<ElementManifest

Location="elements.xml"
/>
</ElementManifests
>
</Feature
>

Pueden encontrar otro ejemplo aquí: http://msdn.microsoft.com/en-us/library/ms470880.aspx
Estos son los controles delegados que pueden usar:

  • AdditionalPageHead
  • GlobalSiteLink0
  • GlobalSiteLink1
  • GlobalSiteLink2
  • SmallSearchInputBox
  • TopNavigationDataSource
  • PublishingConsole
  • QuickLaunchDataSource

Hasta la próxima…

0 comentarios:

Publicar un comentario