Pergunta

Se um conjunto de sites de publicação conseguiu ou estruturais de navegação definido como a origem para a navegação superior, como é o seu trabalho com estas definições através de programação?O SPWeb.Navigation.TopNavigationBar propriedade retorna um conjunto inteiramente diferente de nós de navegação (Barra de links Superior sobre a não publicação de sites).

Aqui estão algumas capturas de tela de INTERFACE do usuário, onde as configurações que eu estou falando, estão localizados:

Não-Publicação (Barra De Link Superior Configurações):

Top Link Bar Settings

Publicação (Global Definições De Navegação):

Publishing Navigation Settings Global Navigation Settings

Como você pode detectar programaticamente se um site está usando a SPNavigation.TopNavigationBar, Gerenciados de Navegação, ou Estrutural de Navegação Global Navegação / top definições de navegação?

Foi útil?

Solução

Então, depois olhando para o funcionamento interno do código de trás para aqueles páginas de configurações, descobri que é possível detectar a origem da publicação de navegação do site usando o WebNavigationSettings classe e da leitura GlobalNavigation.Source propriedade (um StandardNavigationSource enum) como tais:

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
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top