SharePoint 2013 Branding: Mostrar o controlo de breadcrumbs inline

Já mostrei como exibir o controlo de navegação de breadcrumbs em SharePoint 2013. Agora, vou explicar como usar este controlo inline para que as breadcrumbs estejam sempre visiveis.

Faça as alterações que se seguem à sua masterpage personalizada. O exemplo é baseado nas masterpages HTML que o SharePoint 2013 disponibiliza, mas o mesmo aplica-se aos ficheiros .master.

Faça o download do ficheiro seattle.html e procure nele a linha:

<div class="ms-breadcrumb-dropdownBox" style="display:none;">

Dentro desta div encontra o controlo de breadcrumb, que está escondido por defeito.

Não precisamos do controlo todo, apenas do ListSiteMapPath. Pode copiar esse controlo para o seu ficheiro masterpage, para onde quer que as breadcrumbs fiquem.

Este é o código original, se não quiser pesquisar no seattle.html:

<!--SPM:<SharePoint:ListSiteMapPath 
 runat="server" 
 SiteMapProviders="SPSiteMapProvider,SPContentMapProvider" 
 RenderCurrentNodeAsLink="false" 
 PathSeparator="" 
 CssClass="ms-breadcrumb" 
 NodeStyle-CssClass="ms-breadcrumbNode" 
 CurrentNodeStyle-CssClass="ms-breadcrumbCurrentNode" 
 RootNodeStyle-CssClass="ms-breadcrumbRootNode" 
 NodeImageOffsetX="0" 
 NodeImageOffsetY="289" 
 NodeImageWidth="16" 
 NodeImageHeight="16" 
 NodeImageUrl="/_layouts/15/images/fgimg.png?rev=30" 
 RTLNodeImageOffsetX="0" 
 RTLNodeImageOffsetY="312" 
 RTLNodeImageWidth="16" 
 RTLNodeImageHeight="16" 
 RTLNodeImageUrl="/_layouts/15/images/fgimg.png?rev=30" 
 HideInteriorRootNodes="true" 
 SkipLinkText=""/>--> 
 

Agora terá que alterar algumas propriedades:

<!--SPM:<SharePoint:ListSiteMapPath 
 runat="server" 
 SiteMapProviders="SPSiteMapProvider,SPContentMapProvider" 
 RenderCurrentNodeAsLink="false" 
 PathSeparator="" 
 CssClass="my-breadcrumb" 
 NodeStyle-CssClass="my-breadcrumbNode" 
 CurrentNodeStyle-CssClass="my-breadcrumbCurrentNode" 
 RootNodeStyle-CssClass="my-breadcrumbRootNode" 
 NodeImageOffsetX="0" 
 NodeImageOffsetY="0" 
 NodeImageWidth="6" 
 NodeImageHeight="9" 
 NodeImageUrl="/_layouts/15/images/menu-right.gif?rev=30" 
 RTLNodeImageOffsetX="0" 
 RTLNodeImageOffsetY="0" 
 RTLNodeImageWidth="6" 
 RTLNodeImageHeight="9" 
 RTLNodeImageUrl="/_layouts/15/images/menu-right.gif?rev=30" 
 HideInteriorRootNodes="true" 
 SkipLinkText=""/>--> 
 

As mudanças que foram feitas:

  • CssClass, CurrentNodeStyle-CssClass e RootNodeStyle-CssClass, para poder usar estas classes no meu ficheiro CSS.
  • NodeImageOffsetX, NodeImageOffsetY, RTLNodeImageWidth, RTLNodeImageHeight, RTLNodeImageOffsetX, RTLNodeImageOffsetY, RTLNodeImageWidth, RTLNodeImageHeight. Está a ser usada uma imagem de separador diferente da default, por isso estas propriedades têm condizer com a imagem.
  • NodeImageUrl, RTLNodeImageUrl. O URL para a nova imagem de separador. Esta imagem vem com o SharePoint 2013, por isso pode usar este código directamente na sua masterpage.

Para finalizar, os estilos:

/* esconde o separador antes do root node */
.my-breadcrumbRootNode > .s4-breadcrumb-arrowcont {
 display: none;
}

ul.my-breadcrumb ul,
ul.my-breadcrumb li {
 display: inline;
}

/* espaço à volta do separador */
.s4-breadcrumb-arrowcont {
 margin: 0 10px;
}

/* corigir o alinhamento da imagem de separador */
.s4-breadcrumb-arrowcont > span.s4-breadcrumb {
 display: inline !important; 
 overflow: auto !important;
 position: static !important;
}

/* corigir o alinhamento da imagem de separador */
.s4-breadcrumb-arrowcont > span.s4-breadcrumb img {
 position: static !important;
} 

E assim temos um controlo breadcrumb inline:

Dércia Silva
Publicado por Dércia Silva em 04 dezembro, 2013

Artigos relacionados