Question

Si une collection de sites de publication a réussi ou structurels de navigation défini comme source pour la navigation du haut, comment travaillez-vous avec ces paramètres par programme?L' SPWeb.Navigation.TopNavigationBar propriété renvoie un ensemble tout à fait différent de nœuds de navigation (en Haut de la Barre de liens sur la non-publication de sites).

Voici quelques captures d'écran de l'INTERFACE utilisateur, où les paramètres dont je parle sont situés:

Pas De Publication De (Lien En Haut De La Barre De Paramètres):

Top Link Bar Settings

Publication (Global Navigation Paramètres):

Publishing Navigation Settings Global Navigation Settings

Comment pouvez-vous détecter par programmation si un site est à l'aide de la SPNavigation.TopNavigationBar, Géré de Navigation, ou de structure de Navigation Mondial de Navigation / haut de la page des paramètres de navigation?

Était-ce utile?

La solution

Bon, alors après le regardant dans les rouages du code de derrière pour les paramètres des pages, j'ai trouvé que vous pouvez détecter la source de la publication du site la navigation à l'aide de la WebNavigationSettings la classe et la lecture de son GlobalNavigation.Source propriété (un StandardNavigationSource enum) comme tel:

if (PublishingWeb.IsPublishingWeb(web))
{
    WebNavigationSettings settings = new WebNavigationSettings(web);
    switch (settings.GlobalNavigation.Source)
    {
        case StandardNavigationSource.PortalProvider:
            // Data source is Structured Navigation
            break;
        case StandardNavigationSource.TaxonomyProvider:
            // Data source is Managed Navigation
            break;
        case StandardNavigationSource.InheritFromParentWeb:
            // Root navigation data source is inherited
            break;
        case StandardNavigationSource.Unknown:
            // The documentation for this value states:
            // "Returns a value of unknown to indicate an advanced configuration
            // that does not correspond to one of the standard configurations.
            // This value cannot be manually assigned to the Source property."
            break;
    }
}
else
{
    // Non-publishing site, root source is SPNavigation.TopNavigationBar
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top