Pergunta

Estamos usando o SharePoint 2010 Standard e temos um cenário em que há um site de equipe com recursos de publicação habilitados.Temos uma Masterpage personalizada (uma versão ligeiramente modificada da v4.master - com controles adicionais personalizados) e CSS personalizado.

O problema é que em qualquer site que não seja o nível superior de um conjunto de sites, o controle Navegação Superior parece ignorar as configurações de Navegação nas páginas de conteúdo.

A página mestra personalizada é definida como a página mestra do sistema, bem como a página mestra do site (obrigatória para o site da equipe) e todas as alterações de navegação aparecem perfeitamente em qualquer página da pasta _layouts.No entanto, quaisquer páginas criadas por usuários (por padrão definidas como um tipo de 'Página Wiki' - que, até onde eu sei, usa o modelo ~14/TEMPLATE/DocumentTemplates/wkpstd.aspx) não exibem a navegação correta.

A navegação exibida é a seguinte:

  • Conjunto de sites de nível superior (correto):HomeLink [link criado manualmente], Link1, Link2, Link3, Link4
  • Subsite:HomeLink (incorreto, pois as configurações estão definidas para 'herdar do pai')

Todas as configurações de navegação estão corretas e foram verificadas e testadas novamente em outros ambientes.

Alguém tem alguma idéia de por que isso pode não estar funcionando?Verificamos se há PlaceHolders conflitantes ou substituídos em todos os modelos que pensamos que poderiam estar sendo usados, mas não conseguimos encontrar nada que faça referência aos PlaceHolders padrão que estamos usando (PlaceHolderTopNavBar e PlaceHolderHorizontalNav).

Os controles usados ​​para renderizar o menu são os padrões:

<SharePoint:AspMenu ID="TopNavigationMenuV4"
Runat="server" EnableViewState="false"
DataSourceID="topSiteMap"
AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true" UseSeparateCss="false"
Orientation="Horizontal" StaticDisplayLevels="5"
MaximumDynamicDisplayLevels="0" SkipLinkText=""
CssClass="s4-tn" />

<asp:SiteMapDataSource ShowStartingNode="False"
SiteMapProvider="GlobalNavSiteMapProvider"
id="topSiteMap" runat="server" />

desde já, obrigado

Foi útil?

Solução 2

OK, finalmente descobrimos o que estava causando o problema.

Como resultado da ativação do recurso de publicação no site da equipe, as configurações de navegação mudam.

Em nossa página mestra (baseada em um Team Site v4.master), o controle do menu superior foi configurado para usar um DataSource retornando um objeto SiteMapDataSource.No entanto, desde que ativamos o recurso Publicação, precisávamos usar GlobalNavigation, que na verdade é um PortalSiteMapProvider, o que requer que você gere um PortalSiteMapProvider objeto como seu DataSource para o AspMenu controle (se você estiver usando isso).

Portanto, substituímos o código asp:SiteMapDataSource acima por:

PublishingNavigation:PortalSiteMapDataSource
    StartFromCurrentNode="true"
    ShowStartingNode="false"
    SiteMapProvider="GlobalNavigation"
    id="topSiteMap"
    runat="server"

Agora podemos usar a navegação conforme pretendido.

Outras dicas

Este é provavelmente um problema conhecido, que é meu palpite intuitivo, já que enfrentei exatamente a mesma situação antes ao criar uma navegação consistente que é comum em todo o farm, enquanto todos os conjuntos de sites eram sites de equipe usando recursos de publicação.Naquela época, o que fez tudo funcionar foi uma substituição no nível da fazenda, o que não era uma abordagem muito boa, mas seguimos em frente.

Fizemos as alterações exatas no controle de usuário da barra de navegação superior residente em

"C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\Web Server Extensions\14 EMPLATE\CONTROLTEMPLATES opNavBar.ascx"

para combiná-lo com o código-fonte da masterpage topnavbar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top