Customização dos Níveis no Menu de Navegação de Topo

O SharePoint cria em todas as site collections um menu de navegação de topo com 1 ou 2 níveis, dependendo do template do site utilizado e se a feature de Publishing Infrastructure está activada. No entanto, existem situações em que seria desejável poder ter mais que dois níveis nesse menu. Para aqueles que, como eu, procuraram essa opção em todos os ecrãs de configuração, posso dizer-vos que não existe… mas é possível fazer essa costumização, da seguinte forma:

  1. Utilizando o SharePoint Designer, abrir o site principal da site collection.
  2. Na árvore do site, aceder à pasta _catalogs\masterpages e editar a master page default.master. Esta master page existe fisicamente no sistema de ficheiros (e por essa razão é designada como file system page) e quando é editada no SharePoint Designer é automaticamente criada uma cópia editável da mesma que é depois guardada na base de dados, passando a ser uma database page. Este processo é conhecido como ghosting uma vez que a página passa a ser virtual deixando de existir fisicamente.
  3. No código da master page, procurar a tag relativa ao controlo do menu de navegação do topo:
    <SharePoint:AspMenu ID="TopNavigationMenu"…
  4. Alterar o valor do atributo MaximumDynamicDisplayLevels para 3 (ou para o número de níveis que se pretende visualizar no menu).
  5. Gravar a master page e fazer refresh ao site.

Nota 1: O passo 2 é importante porque, se for editada a versão física da master page existente normalmente na pasta c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL, as alterações irão repercurtir-se em todos os sites existentes (baseados nessa master page) e sites criados posteriormente (baseados em templates do SharePoint). Normalmente não é esse o comportamento desejado.

Nota 2: Se, depois do processo apresentado, tentarmos alterar os itens do menu de navegação de topo, usando as opções de configuração do site (acessível através de Site Actions > All Site Settings > Navigation Settings) rapidamente chegaremos à conclusão que só é possível alterar manualmente os dois primeiros níveis do menu. Trata-se de uma limitação do controlo usado pelo SharePoint para editar o site map, que apenas permite a edição de dois níveis. Isto nada tem a haver com o facto de termos configurado o menu para mostrar mais do que dois níveis. Então como é que adiciono novas entradas ao menu de navegação de topo? Ver próxima nota…

Nota 3: O SharePoint cria automaticamente o site map que alimenta o menu, à medida que criamos novos conteúdos no portal. A única forma que temos de gerir esse menu é adicionar criteriosamente os conteúdos de forma a que o site map gerado automaticamente origine a estrutura de menu que desejamos. Para isso temos apenas que perceber as regras que regem esse processo e que são relativamente simples:

  1. A hierarquia de sites existente na site collection é mapeada directamente na hierarquia do menu de navegação de topo. Quer isto dizer que no primeiro nível do menu aparecem todos os subsites do site principal da site collection, no segundo nivel aparecem todos os subsites do site seleccionado no primeiro nível, e assim por diante.
  2. Cada site tem um conjunto de itens de navegação local, que correspondem a links para conteúdos locais a esse site (document libraries, listas, surveys, etc…) e são mostrado num menu de navegação lateral com dois níveis. No menu de navegação de topo, no mesmo nível em que são colocados os links para os subsites de um determinado site, são também colocados os itens do primeiro nivel da navegação local que correspondam a conteúdos e não a headings. Complicado? Talvez com um exemplo se perceba melhor…

Exemplo: considere-se uma site collection com dois sites, A e B. O site A tem dois subsites, A1 e A2, e três listas, L1, L2 e L3. Na navegação local do site A1, a lista L1 está colocada sob o heading Listas (portanto, no segundo nível), e as restantes estão no primeiro nível. Neste caso, o menu de navegação de topo mostra no primeiro nível um link para o site A e outro link para o site B. Seleccionando o site A no primeiro nível, é mostrado o segundo nível que tem quatro links: para o site A1, para o site A2, para a lista L2 e para a lista L3. A lista L1 está no segundo nível por isso não aparece.

Conclusão: este comportamento do SharePoint faz com que apenas exista um determinado nível no menu, se o nível anterior for um subsite. Não é possível fazer vários níveis de headings com links configuráveis manualmente, que seria a forma mais flexível e, para mim, mais desejável. Para quem precise mesmo de um comportamento mais flexível, é sempre possível configurar o controlo do menu para que deixe de usar o site map do SharePoint e passe a usar um ficheiro XML ou uma outra classe criada especificamente para o efeito.

Read here this post in english… 

Leave a Reply

Your email address will not be published. Required fields are marked *