Pergunta

Estou trabalhando com o SharePoint 2013 e editei minha página mestra HTML no SharePoint Designer para mostrar uma trilha de navegação como fizemos no SharePoint 2010.O código é colocado após o ID "DeltaPlaceHolderPageTitleInTitleArea" na página mestra e é o seguinte:

<!--SPM:<asp:sitemappath 
    runat="server" 
    sitemapprovider="SPContentMapProvider" 
    rendercurrentnodeaslink="true" 
    nodestyle-cssclass="breadcrumbNode" 
    currentnodestyle-cssclass="breadcrumbCurrentNode" 
    rootnodestyle-cssclass="breadcrumbRootNode" 
    SkipLinkText=""/>--> 

Embora isso realmente mostre uma trilha de navegação, não mostra como eu esperava que fosse.Digamos que eu tenha um conjunto de sites chamado "Intranet" e estou em um subsite chamado "Geral".No subsite “Geral”, estou em uma página chamada “Introdução”.Esta página (e todas as outras páginas deste subsite) são gerenciadas por conjuntos de termos.

Mostraria uma trilha como esta:Intranet > Geral > Introdução

Mas agora, digamos que em meu conjunto de termos, eu tenha outros 2 termos que são elementos filhos do termo "Introdução". Esses elementos filhos (termos filhos) são chamados de "Histórico" e "Locais".Se eu estivesse na página “Histórico”, seria apenas mais uma página logo abaixo do subsite “Geral”.

Ele mostraria uma trilha de navegação como esta:Intranet > Geral > Histórico
Embora eu gostaria que aparecesse assim:Intranet > Geral > Introdução > História

Estou um pouco confuso sobre isso, pois não entendo o que devo fazer para que a trilha de navegação detecte qual página é um termo filho e qual é o termo pai e assim por diante.

Agradeço antecipadamente por sua ajuda!

EDITAR:Basicamente, o que procuro é algo como o exemplo em este blog.Só que quero evitar o uso de uma web part.Gostaria de fazer alterações no JavaScript ou diretamente na página mestra.

Foi útil?

Solução

Eu encontrei uma maneira de obter uma estrutura hierárquica de trilho usando os valores do termo orientado a navegação do subsite!:)

Ao descobrir que a lista de item de navegação é selecionada (ou seja, que tem a url para a página em que você está), eu pode percorrer a lista e recolher todos os elementos do pai.
Com base nesses elementos pai, agora eu sei a hierarquia e pode usar os valores desses elementos para criar uma trilha de navegação.

Aqui está uma imagem dela como a conhecemos:old breadcrumb
E aqui está um screenshot do trilho eu tenho atualmente, com a ajuda de JavaScript:enter image description here
Como você pode ver, agora ele mostra o caminho completo para uma página.Eu escrevi um novo post no meu blog sobre a minha resposta, com todo o código necessário, incluindo os pedaços de código que você deve adicionar e substituir em sua página principal.

Sinta-se livre para perguntar se você está tendo problemas com o código ou se precisar de ajuda.

Outras dicas

Robert diz que eu facilmente pode implementar utilizando-se de SPTitleBreadcrumb em quase de maneira semelhante.Aqui é o meu código html no layout da página:

<div id="modern-breadcrumb">
                <!--MS:<SharePoint:SPTitleBreadcrumb
                                 runat="server"
                                 RenderCurrentNodeAsLink="false"
                                 SiteMapProvider="CurrentNavigationTaxonomyProvider"
                                 ParentLevelsDisplayed="2"
                                 DefaultParentLevelsDisplayed="2" 
                                 RootNodeStyle-CssClass="home" 
                                 NodeStyle-CssClass="bc-node" 
                                 CurrentNodeStyle-CssClass="current" 
                                 PathSeparator="" 
                                 PathDirection="RootToCurrent">-->      
                <!--ME:</SharePoint:SPTitleBreadcrumb>-->
            </div>

A propriedade Term mostra a taxonomia de navegação de metadados gerenciados da página atual, mas não fornece hiperlinks.

 <!--CS: Start Term Property Snippet--><!--SPM:<%@Register Tagprefix="spsswc"  Namespace="Microsoft.Office.Server.Search.WebControls" Assembly="Microsoft.Office.Server.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>--><!--SPM:<%@Register Tagprefix="ac679b743"  Namespace="Microsoft.SharePoint.Taxonomy" Assembly="Microsoft.SharePoint.Taxonomy, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>--><!--MS:<ac679b743:TermProperty runat="server" TermStoreID="00000000-0000-0000-0000-000000000000" TermSetID="00000000-0000-0000-0000-000000000000" TermID="00000000-0000-0000-0000-000000000000" Property="Path" Title="&#60;%$Resources:osrvcore,TermProperty_Title%&#62;" FrameType="None" SuppressWebPartChrome="True" Description="&#60;%$Resources:osrvcore,TermProperty_Description%&#62;" IsIncluded="True" ZoneID="ImportedPartZone" PartOrder="0" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="&#60;%$Resources:osrvcore,WebPartImportError%&#62;" ImportErrorMessage="&#60;%$Resources:osrvcore,WebPartImportError%&#62;" PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_9e235508_1981_4af3_afca_f5a52d0e66cf" ChromeType="None" ExportMode="All" Preview="&#60;div class=&#34;ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth &#34;&#62;  &#60;div WebPartID=&#34;00000000-0000-0000-0000-000000000000&#34; HasPers=&#34;true&#34; id=&#34;WebPartwpz2_g_9e235508_1981_4af3_afca_f5a52d0e66cf&#34; width=&#34;100%&#34; class=&#34;ms-WPBody noindex &#34; OnlyForMePart=&#34;true&#34; allowDelete=&#34;false&#34; style=&#34;&#34; &#62;&#60;div id=&#34;WebPartContent&#34;&#62;   [ TermProperty &#34;g_9e235508_1981_4af3_afca_f5a52d0e66cf&#34; ]  &#60;/div&#62;&#60;div class=&#34;ms-clear&#34;&#62;&#60;/div&#62;&#60;/div&#62; &#60;/div&#62;" __MarkupType="vsattributemarkup" __WebPartId="{9e235508-1981-4af3-afca-f5a52d0e66cf}" WebPart="true" Height="" Width="">--><!--PS: Start of READ-ONLY PREVIEW (do not modify)-->[ TermProperty "Unnamed4" ]<!--PE: End of READ-ONLY PREVIEW--><!--ME:</ac679b743:TermProperty>--><!--CE: End Term Property Snippet-->

Ou use JavaScript assim (precisa de muito mais trabalho para funcionar totalmente)

<SCRIPT LANGUAGE="JavaScript">
 <!--
var path = "";
 var href = document.location.href;
 var s = href.split("/");
 for (var i=2;i<(s.length-1);i++) {
 path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+"</A> / ";
 }
 i=s.length-1;
 path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+"</A>";
 document.writeln(path);
 //-->
 </script>

Eu era capaz de obter um trilho de trabalho gerenciadas de navegação usando o seguinte controle em uma página mestra

<SharePointWebControls:ListSiteMapPath runat="server"
    SiteMapProviders="GlobalNavigationTaxonomyProvider"
    RenderCurrentNodeAsLink="true" CssClass="s4-breadcrumb"
    NodeStyle-CssClass="s4-breadcrumbNode"
    CurrentNodeStyle-CssClass="s4-breadcrumbCurrentNode"
    RootNodeStyle-CssClass="s4-breadcrumbRootNode"
    HideInteriorRootNodes="true"
    SkipLinkText=""
    PathSeparator="">
</SharePointWebControls:ListSiteMapPath>

Outra opção é utilizar o SPTitleBreadcrumb de controle, como mostrado abaixo:

<SharePoint:AjaxDelta id="DeltaPlaceHolderPageTitleInTitleArea" runat="server">

    <asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server">
                                        <SharePoint:SPTitleBreadcrumb
                                 runat="server"
                                 RenderCurrentNodeAsLink="false"
                                 SiteMapProvider="CurrentNavigationTaxonomyProvider"
                                 ParentLevelsDisplayed="4"
                                 DefaultParentLevelsDisplayed="4" PathDirection="RootToCurrent">
                                    <PATHSEPARATORTEMPLATE>
                                        <SharePoint:ClusteredDirectionalSeparatorArrow runat="server" />

           </PATHSEPARATORTEMPLATE>

      </SharePoint:SPTitleBreadcrumb>

 </asp:ContentPlaceHolder>

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