Pregunta

He estado tratando de encontrar una manera de extender las migas de pan de SharePoint a través de múltiples colecciones de sitios, y no he podido encontrar una manera. Puedo establecer la configuración de conexión de sitio del portal en la colección de sitios para vincular a su colección de sitios principal. Pero eso no mostrará solo una colección de sitios principal. Aquí hay un ejemplo del tipo de configuración que estoy buscando crear.

El sitio raíz, Intranet, tiene una ruta administrada llamada sitios. Debajo de los sitios hay una colección de sitios llamada HR ubicada en / sites / hr / . Bajo RRHH hay otra ruta administrada configurada llamada alcance. En el alcance hay una colección de sitios llamada Reclutamiento ubicada en / sites / hr / outreach / recruiting / . Por lo tanto, cuando un usuario está en el sitio de reclutamiento, quiero que vea Intranet > HR > Reclutamiento como la ruta de navegación.

Ejemplo como mapa del sitio:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
    <siteMapNode title="Intranet" url="http://intranet/Pages/Default.aspx">
    <siteMapNode title="HR" url="http://intranet/sites/hr/default.aspx">
            <siteMapNode title="Recruiting" url="http://inranet/hr/outreach/recruiting/default.aspx"/>
        </siteMapNode>
    </siteMapNode>
</siteMap>

Configurando la conexión del sitio del portal al reclutar puedo obtener HR > Reclutamiento cuando estás & # 8217; estás reclutando y configurando la conexión del sitio del portal en RR.HH. puedo obtener Intranet > Recursos humanos cuando estás en el sitio de recursos humanos. Aunque no puedo.

He intentado usar el SPXmlContentMapProvider para leer el archivo del mapa del sitio, pero no he podido hacer que se muestre cuando configuré el SiteMapProvider para el SiteMapPath de GlobalNavigationSiteMap en el default.master . ( GlobalNavigationSiteMap es el SiteMapPath que crea las migas de pan en la parte superior del sitio). Sin embargo, la misma arquitectura funciona bien en una aplicación .NET genérica, pero no parece funcionar en SharePoint. También he registrado correctamente el mapa del sitio como defaultProvider y he podido usarlo para reemplazar el TopNavigationMenu . ( TopNavigationMenu es el menú de navegación global / barra de botones en la parte superior del diseño predeterminado de SharePoint).

¿Hay alguna manera de construir esta funcionalidad en SharePoint?

¿Fue útil?

Solución

Dado que está implementando una página maestra personalizada (o personalizando la predeterminada), ¿por qué no reemplazar el control de migas de pan con el suyo? O haga un proveedor de mapa de sitio personalizado si necesita combinar su mapa de sitio con el mapa generado de Sharepoint.

Otros consejos

He pensado mucho acerca de por qué no puede usar SPXmlContentMapProvider y creo que se trata de cómo SharePoint representa y usa rutas administradas. Mi teoría es esta:

Todas las ubicaciones de colección de sitios en SharePoint son rutas administradas. Dado que el contenido se almacena realmente en la base de datos, y aunque IIS presenta la información como si estuviera en una carpeta, las páginas no se encuentran en carpetas. En cambio, la ubicación está en algún lugar del " éter " de SharePoint y cualquier ubicación SPXmlContentMapProvider se ve en sí misma, está en otro lugar que las entradas en el archivo xml. Ahora Request.Url sabe dónde está, pero esa información no parece presentarse al SPXmlContentMapProvider .

También se me ocurrió una solución para el problema. Puede editar manualmente la página maestra para cada colección de sitios para pegar la ruta de navegación para esa colección de sitios frente al GlobalNavigationSiteMap . Por lo tanto, cada colección de sitios con este requisito de navegación necesitaría tener su propia página maestra personalizada. Es una forma fea y de fuerza bruta de hacer cosas que no tengo intención de implementar. Funcionaría, pero sería una pesadilla de mantenimiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top