4. Remplacer des contrôles, spécialisation avancée du site
L’avantage de remplacer des contrôles Sharepoint par ses propres contrôles est de pouvoir ajouter des fonctionnalités qui ne sont pas présentes dans les sites Sharepoint Services par défaut. Cela peut être :
- L’ajout d’un fils rouge pour la navigation inter-site.
- La modification de la barre de navigation rapide.
- La personnalisation avec l’ajout de fonctions dans la barre contextuelle des listes.
La création de tels contrôles se base sur l’utilisation de contrôles web personnalisés ainsi que sur le modèle objet Sharepoint. Il est préférable de ne pas utiliser de contrôles web utilisateur car ces derniers nécessitent l’utilisation d’un fichier ascx en plus d’une l’assemblie.
Exemple de création d’un fils rouge
Voici par exemple comment créer simplement un fil rouge de navigation entre les sites Sharepoint :
|
///
<summary>
///
File rouge pour accéder au site
///
</summary>
public
class SiteLinkBar :
System.Web.UI.WebControls.WebControl
{
private
string GetErrorTable(Exception e)
{
System.Text.StringBuilder sb = new
System.Text.StringBuilder();
sb.Append("<table width=100% bgcolor=lightgrey
border=\"solid 1px\">");
sb.Append(" <tr>");
sb.Append(" <td valign=top style=\"border: solid
0px;font:normal
8pt Verdana\">");
sb.Append(" "+ e.ToString() + "<br/>");
sb.Append(" </td>");
sb.Append(" </tr>");
sb.Append("</table>");
return
sb.ToString().Replace("\t", " ");
}
protected
override void
Render(HtmlTextWriter output)
{
try
{
SPWeb web = null;
SPSite site =
Microsoft.SharePoint.WebControls.Navigation.GetContextSite
(System.Web.HttpContext.Current);
web = site.OpenWeb(this.id);
string str = "<a
href=\""+web.Url+"\"><u>"+web.Title+"</u></a>";
while(!web.IsRootWeb)
{
web = web.ParentWeb;
str = "<a href=\""+web.Url+"\"><u>"+web.Title+"</u></a>"
+ "> " + str;
}
output.Write("<div class=\"ms-formdescription\">");
output.Write(str);
output.Write("</div>");
}
catch(Exception e)
{
output.Write(this.GetErrorTable(e));
}
}
} |
Il faut ensuite l’ajouter à la page default.aspx de son modèle de site et éventuellement aux autres pages.
Cette capture d’écran montre le contrôle « fils rouge » vue plus haut, et un contrôle de menu personnalisé remplaçant le menu Sharepoint.
Ce « fils rouge » nous indique notre emplacement dans les sites Sharepoint. A travers cet exemple simple
de manipulation du modèle objet de Sharepoint, on se rend vite compte des possibilités énorme que cela nous donne.
Ainsi, une façon d’étendre encore plus les possibilités des sites passe par la création de webparts.
Pour plus de détails, vous pouvez vous reporter sur cet article.
Créer un contrôle pour l’en-tête des pages
L’une des possibilités les plus classiques de personnalisation est la mise en place d’un en-tête de page commun
pour les modèles de site développé. L’en-tête peut alors regrouper des fonctionnalités générales, comme un logo,
une barre de menu générique, une barre d’informations sur l’utilisateur courant, ainsi qu’une zone de saisie de recherche.
La barre pourra être hébergée dans l’en-tête personnalisé du site selon la méthode décrite plus haut dans l’article.
Une architecture d’en-tête de page peut être la suivante :
Dans ce modèle, les contrôles de l’en-tête ont des propriétés qui peuvent être configurées à partir de fichiers XML. Par exemple :
-
Le logo : lien de redirection lorsque l’on clique sur le logo
-
Barre de recherche : vers quelle page rediriger la recherche
-
Barre de menu : Configuration des éléments du menu. La configuration peut prendre en compte la mise en forme du texte à afficher, des liens relatifs, statiques, l’exécution de javascript . Ou encore des opérations plus complexe, comme l’affichage des sous-sites de premier niveau ou des menus visibles uniquement pour certaines catégories d’utilisateurs (administrateur, lecteur, visiteur, …).
Pour finir
Voici un exemple de modèle de site qui peut être obtenu en appliquant la plupart des points vus dans l’article:
Ce modèle de site prend en compte :
- La personnalisation des configurations
- L’utilisation d’un en-tête de pages personnalisées
- L’utilisation d’une feuille de style
- L’ajout de liste personnalisée
- Le remplacement et l’ajout de contrôles web
Tout ceci permet d’obtenir des modèles de site spécifique et adapté à une utilisation donnée. Pour avoir
d’autres exemples, à partir de ce lien,
Microsoft propose librement un ensemble de modèle de site pour des applications métiers de base.
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|