Domanda

Sto cercando di trovare un modo per estendere il breadcrumb di SharePoint su più raccolte siti e non sono riuscito a trovare un modo. Posso impostare l'impostazione connessione al sito portale sulla raccolta siti per collegarla alla raccolta siti padre. Ma ciò non mostrerà solo una raccolta siti padre. Ecco un esempio del tipo di installazione che sto cercando di creare.

Il sito radice, Intranet, ha un percorso gestito chiamato siti. Sotto i siti è presente una raccolta siti denominata Risorse umane situata in / siti / ora / . Sotto HR c'è un altro percorso gestito impostato chiamato outreach. In ambito divulgativo esiste una raccolta siti denominata Reclutamento situata in / sites / hr / outreach / recruiting / . Pertanto, quando un utente si trova nel sito di reclutamento, voglio che visualizzino Intranet > Risorse umane & GT; Reclutamento come pista del pangrattato.

Esempio come sitemap:

<?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>

Impostando la connessione al sito portale al momento del reclutamento, posso ottenere Risorse umane > Reclutamento quando stai reclutando e impostando la connessione al sito portale su risorse umane posso ottenere Intranet > Risorse umane quando ti trovi nel sito Risorse umane. Non posso però.

Ho provato a utilizzare SPXmlContentMapProvider per leggere il file Sitemap, ma non sono riuscito a visualizzarlo affatto quando l'ho impostato come SiteMapProvider per SiteMapPath di GlobalNavigationSiteMap in default.master . ( GlobalNavigationSiteMap è SiteMapPath che crea le briciole di pane nella parte superiore del sito). La stessa architettura funziona comunque bene su un'applicazione .NET generica, ma non sembra funzionare in SharePoint. Ho anche registrato correttamente la Sitemap come provider predefinito e sono stato in grado di usarla per sostituire il TopNavigationMenu . ( TopNavigationMenu è il menu / barra di pulsanti di navigazione globale nella parte superiore del layout di SharePoint predefinito).

Esiste un modo per integrare effettivamente questa funzionalità in SharePoint?

È stato utile?

Soluzione

Dato che stai implementando una pagina master personalizzata (o personalizzando quella predefinita), perché non sostituire il controllo breadcrumb con il tuo? Oppure crea un fornitore di Sitemap personalizzato se devi combinare la Sitemap con la mappa generata di Sharepoint.

Altri suggerimenti

Ho riflettuto molto sul perché non puoi usare SPXmlContentMapProvider e penso che dipenda dal modo in cui SharePoint esegue il rendering e utilizza i percorsi gestiti. La mia teoria è questa:

Tutte le posizioni della raccolta siti in SharePoint sono percorsi gestiti. Poiché il contenuto è realmente archiviato nel database e mentre IIS presenta le informazioni come se fossero in una cartella, le pagine non si trovano in cartelle. Invece la posizione è da qualche parte nell '"etere" di SharePoint e in qualsiasi posizione SPXmlContentMapProvider si vede che si trova, è da qualche altra parte rispetto alle voci nel file xml. Ora Request.Url sa dove ti trovi, ma quelle informazioni non sembrano essere presentate al SPXmlContentMapProvider .

Ho anche escogitato un problema per risolvere il problema. È possibile modificare manualmente la pagina principale per ogni raccolta siti per inserire la traccia breadcrumb per quella raccolta siti di fronte alla GlobalNavigationSiteMap . Pertanto, ogni raccolta siti con questo requisito di navigazione dovrebbe quindi avere la propria pagina master personalizzata. È un modo brutto e brutale di fare cose che non ho intenzione di implementare. Funzionerebbe, ma sarebbe un incubo per la manutenzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top