jueves, 29 de enero de 2009

Navegación fuera de contexto en sharepoint (moss 2007)

Una forma de recorrer una jerarquia de sites de publicación en MOSS 2007 desde fuera del contexto web (es decir desde una aplicación de consola, aplicación windows, etc. ) seria utilizando las propiedades CurrentNavigationNodes y GlobalNavigationNodes de la clase PublishingWeb.

De esta forma podemos obtener la navegación de los usuarios respetando cosas como pueden ser el orden que se ha establecido o si queremos mostrar subsites, páginas, etc.

Aquí añado un poco de código donde se muestran un uso de estas propiedades:

NOTA: Es necesario referencial la dll Microsoft.SharePoint.Publishing.dll


using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Publishing;
using Microsoft.SharePoint.Navigation;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite siteCollection = new SPSite("http://localhost"))
{
using (SPWeb site = siteCollection.OpenWeb())
{
PublishingWeb pw = PublishingWeb.GetPublishingWeb(site);
Console.WriteLine("Navegación actual de la site Nombre: {0}, Url: {1} ",site.Title,site.Url);
foreach (SPNavigationNode nodo in pw.CurrentNavigationNodes)
{
Console.WriteLine("Titulo: {0}, Url: {1}", nodo.Title, nodo.Url);
}
Console.WriteLine("Navegación global de la site Nombre: {0}, Url: {1} ", site.Title, site.Url);
foreach (SPNavigationNode nodo in pw.GlobalNavigationNodes)
{
Console.WriteLine("Titulo: {0}, Url: {1}", nodo.Title, nodo.Url);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}

No hay comentarios: