Bonjour,
Je ne suis pas développeur ASP.NET, mais ai besoin de customiser un peu le menu de gauche d'un publishing site dans MOSS2007.
J'ai créé un site standard de publication sous MOSS2007. Comme ce site doit supporter 3 langues différentes, j'utilise un module HTTP: PointFire. Ce module permet de garder dans la même librairie Pages toutes les pages du site, quelle que soit la langue. Un champ "Language" est ajouté aux content types, et permet d'identifier la langue d'une page web. Ainsi, pour une page "contact" par exemple, j'ai en fait 3 pages: 1 par langue.
Le problème avec ce système, c'est que le menu de gauche affiche alors toutes les pages, sans faire la distinction de la langue. Or, il doit afficher seulement les pages en français si le visiteur a sélectionné le français, et de même pour les deux autres langues.
J'ai trouvé dans un livre une manière de dériver un provider à partir du CurrentNavSiteMapProvider. Voici le code adapté à mes besoins:
Ma question est: comment dois-je procéder pour faire tourner ce code, çàd où dois-je le mettre? Sachant que je ne suis pas développeur ASP.NET, merci de me détailler les étapes à réaliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PortalSiteMapProvider psmp = PortalSiteMapProvider.CurrentNavSiteMapProvider; // get instance of the root site PortalWebSiteMapNode prNode = psmp.FindSiteMapNode(/) as PortalWebSiteMapNode; // get all Pages with language field set to French SPQuery query = new SPQuery(); query.Query = < Where > < eq > < FieldRef Name=Item Language/ > < Value Type=Text > French < /Value > < /eq > < /Where > ; SiteMapNodeCollection pages = psmp.GetCachedListItemsByQuery (prNode, Pages, query, SPContext.Current.Web);
Merci d'avance
Partager