SOUS WSS
Création du controle
Tout d'abord nous devons créer un contrôle ascx (appelons le 'MySearchArea.ascx') qui prendra la place du 'SearchArea.ascx' situé dans C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES
Copiez le contenu de 'SearchArea.ascx' dans votre contrôle et modifiez les lignes suivantes :
<SELECT id='idSearchScope' name='MySearchScope' class='ms-searchbox' title=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchScopeToolTip),Response.Output);%>>Laissez le dans le même répertoire que son grand frère ;)
<INPUT Type=TEXT id='idSearchString' size=25 name='MySearchString' display='inline' maxlength=255 ACCESSKEY=S class='ms-searchbox' onKeyDown="return MySearchKeyDown(event, <%=strEncodedUrl%>);" title=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchTextToolTip),Response.Output);%>>
</td>
<td>
<div class="ms-searchimage"><a target='_self' href='javascript:' onClick="javascript:MySubmitSearchRedirect(<%=strEncodedUrl%>);javascript:return false;" title=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchImageToolTip),Response.Output);%> ID=onetIDGoSearch><img border='0' src="/images/mon_image.gif" alt=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchImageToolTip),Response.Output);%>></a></div>
Edition de Core.js
Ensuite éditez le fichier C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033\Core.js
Insérer deux nouvelles fonctions Javascript avec le code suivant :
function MySubmitSearchRedirect(strUrl)
{
var frm=document.forms["frmSiteSearch"];
frm=document.forms[MSOWebPartPageFormName];
var searchText=frm.elements["MySearchString"].value;
var searchScope=frm.elements["MySearchScope"].value;
strUrl=strUrl+"?k="+escapeProperly(searchText)+"&u="+escapeProperly(searchScope);
window.location = strUrl;
}
function MySearchKeyDown(event, strUrl)
{
if (IsKeyDownSubmit(event))
{
MySubmitSearchRedirect(strUrl);
return false;
}
return true;
}
Editer la MasterPage
Editez votre masterpage et ajouter votre nouveau contrôle :
<%@ Register tagprefix="uc1" tagname="customsearch" src="~/_controltemplates/MySearchArea.ascx" >
Répérez le div 'SearchArea' et remplacez le par le code suivant (n'oubliez de mettre à false la propriété Visible du contrôle SharePoint) :
<div id="SearchArea"><uc1:customsearch id="customsearch1" runat="server"/><asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server" Visible="false" ><SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/></asp:ContentPlaceHolder></div>
Page de résultat
Créez une nouvelle page 'searchresults.aspx' dans une bibliothèque de documents de votre site qui hérite de votre charte graphique (masterpage) et faite un copier coller du code de la page SharePoint pour son contenu C:\Program Files\Fichiers communs\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\searchresults.aspx
Web.config
Enfin, modifiez le 'Web.config' de votre application web :
Section PageParserPaths
<PageParserPath VirtualPath="/Pages/searchresults.aspx" CompilationMode="Always" AllowServerSideScript="true" />Section SafeControls
<SafeControl Assembly="Microsoft.SharePoint.ApplicationPages, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.ApplicationPages" TypeName="*" Safe="True" AllowRemoteDesigner="True" />
Faites un IISRESET... c'est prêt! :)
Un grand merci à cet article pour m'avoir mâché le boulot http://www.cnblogs.com/sky-tcff/archive/2007/10/22/930818.html
Sous MOSS
Pour ce qui est de MOSS, il suffit d'éditer les fichiers 'SearchArea.xml' présents dans les répertoires
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\OSearchBasicFeature
et
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\OSearchEnhancedFeature
pour modifier l'image par exemple cela donne :
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control Id="SmallSearchInputBox" Sequence="50" ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
<Property Name="GoImageUrl">/images/mon_image.gif</Property>
<Property Name="GoImageUrlRTL">/_layouts/images/goRTL.gif</Property>
<Property Name="GoImageActiveUrl">/images/mon_image.gif</Property>
<Property Name="GoImageActiveUrlRTL">/_layouts/images/goRTL.gif</Property>
<Property Name="DropDownMode">ShowDD</Property>
<Property Name="SearchResultPageURL">/_layouts/osssearchresults.aspx</Property>
<Property Name="ScopeDisplayGroupName"></Property>
<Property Name="FrameType">None</Property>
</Control>
</Elements>
Pour plus d'infos :
http://clintcherry.spaces.live.com/blog/cns!AEC0DCBC460E45B9!421.entry
http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.portal.webcontrols.searchboxex_members.aspx
Voili, voilou... bon courage :)
Aucun commentaire:
Enregistrer un commentaire