Sovrascrivere i DelegateControl di SharePoint 2007
I DelegateControl di SharePoint 2007 (WSS3 - MOSS) sono identificati all'interno delle pagine dal tag
e, a differenza dei placeholders, possono essere sovrascritti tramite feature.
Nell'esempio vado a ridefinire, tramite una feature, il controllo GlobalSiteLink0 (definito nella default.master e solitamente non visibile). Questo controllo si trova nella pagina in alto a destra ed è posizionato sul fianco destro della scritta Welcome utenteCorrente.
La modifcia consiste nell'aggiungere un'immagine cliccabile che punta a questo sito.
La feature è composta da 3 file:
la feature va installata con
e poi attivata sul sito che interessa.
XML
<SharePoint:DelegateControl runat="server" ControlId="nomeDelControllo" />
Se esistono più controlli viene visualizzato quello con attributo Sequence più BASSO (vedi element.xml).
Nell'esempio vado a ridefinire, tramite una feature, il controllo GlobalSiteLink0 (definito nella default.master e solitamente non visibile). Questo controllo si trova nella pagina in alto a destra ed è posizionato sul fianco destro della scritta Welcome utenteCorrente.
La modifcia consiste nell'aggiungere un'immagine cliccabile che punta a questo sito.
La feature è composta da 3 file:
- feature.xml la descrizione della feature da posizionare in 12\TEMPLATE\FEATURES\SgartControl
- elements.xml la descrizione del controllo da posizionare in 12\TEMPLATE\FEATURES\SgartControl
- SgartControl.ascx il template del controllo da posizionare in 12\TEMPLATE\CONTROLTEMPLATES\Sgart
XML: feature.xml
<Feature Id="46DF1702-F61C-4C7A-87C4-B00F92C4CFAA"
Title="Sgart Control"
Description="Sgart Control example"
Scope="Site"
Hidden="FALSE"
xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- copy to 12\TEMPLATE\FEATURES
then install feature
stsadm -o installfeature -name SgartControl
-->
<ElementManifests>
<ElementManifest Location="Elements.xml"/>
</ElementManifests>
</Feature>
XML: elements.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control Id="GlobalSiteLink0"
Sequence="5"
ControlSrc="~/_controltemplates/Sgart/SgartControl.ascx"
/>
</Elements>
C#: SgartControl.ascx
<%@ Control Language="C#" %>
<%@Assembly Name="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@Register TagPrefix="CMS" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.Publishing.WebControls"%>
<!-- sostituisce il controllo standars VariationsLabelMenu.ascx
copy file to ...12\TEMPLATE\CONTROLTEMPLATES\Sgart -->
<span style="border: solid 1px red;">
<a href="http://www.sgart.it" target="_blank"><img src="http://www.sgart.it/images/sgart16.gif" alt="" width="16" height="16" border="0" /></a>
<cms:VariationDataSource id="LabelMenuDataSource" LabelMenuConfiguration="1" Filter="" runat="server"/>
</span>
la feature va installata con
DOS / Batch file
stsadm.exe -o installfeature -name SgartControl