Pergunta

Eu tenho tentado encontrar uma maneira de estender pão ralado SharePoint em vários conjuntos de sites, e eu fui incapaz de encontrar um caminho. Eu posso definir o conexão site de portal ajuste no conjunto de sites para link para sua coleção site pai. Mas, isso não vai mostrar apenas um conjunto de sites pai. Aqui está um exemplo do tipo de configuração que eu estou olhando para criar.

O site raiz, Intranet, tem um caminho gerenciado chamado sites. Sob locais há conjunto de sites chamado HR localizado na / sites / hr / . Sob HR há outro caminho gerenciado configurado chamado de divulgação. Em outreach há um conjunto de sites chamado Recrutamento localizado em / sites / hr / divulgação / recrutamento / . Assim, quando um usuário estiver no site de recrutamento, eu quero que eles vejam Intranet> HR> Recrutamento como a trilha de migalhas.

Exemplo como mapa do site:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
    <siteMapNode title="Intranet" url="http://intranet/Pages/Default.aspx">
    <siteMapNode title="HR" url="http://intranet/sites/hr/default.aspx">
            <siteMapNode title="Recruiting" url="http://inranet/hr/outreach/recruiting/default.aspx"/>
        </siteMapNode>
    </siteMapNode>
</siteMap>

Definindo a conexão site de portal no recrutamento posso obter HR> Recrutamento quando você está no recrutamento e estabelecendo a ligação site de portal no HR posso obter Intranet> HR quando você está no site de RH. Eu não posso embora.

Eu tentei usar o SPXmlContentMapProvider para ler o arquivo Sitemap, mas eu fui incapaz de conseguir que a exibição em tudo quando eu definir que, como o SiteMapProvider para o SiteMapPath de GlobalNavigationSiteMap na default.master . ( GlobalNavigationSiteMap é o SiteMapPath que cria as migalhas de pão no topo do site). A mesma arquitetura funciona bem no entanto em uma aplicação genérica .NET, mas não parece trabalho no SharePoint. Eu também registrado corretamente o mapa do site como um defaultProvider e foi capaz de usá-lo para substituir o TopNavigationMenu . ( TopNavigationMenu é o menu de navegação / bar mundial de botões na parte superior do layout padrão SharePoint).

Existe uma maneira de realmente construir essa funcionalidade em SharePoint?

Foi útil?

Solução

Uma vez que você está implementando uma masterpage personalizado (ou personalizar o padrão), por que não substituir o controle de migalhas de pão com o seu próprio? Ou fazer um provedor de mapa do site personalizado, se você precisa combinar o seu mapa do site com o mapa gerado de Sharepoint.

Outras dicas

Eu tenho pensado muito sobre por que você não pode usar SPXmlContentMapProvider e eu acho que se resume a como SharePoint presta e usos caminhos gerenciados. Minha teoria é esta:

Todos os locais conjunto de sites no SharePoint são geridos caminhos. Uma vez que o conteúdo é realmente armazenados no banco de dados, e enquanto o IIS apresenta a informação como se fosse em uma pasta, as páginas não estão localizados em pastas. Em vez disso a localização é em algum lugar no "éter" do SharePoint e qualquer local SPXmlContentMapProvider ver de si mesmo sendo dentro, é em outro lugar, em seguida, as entradas no arquivo xml. Agora o Request.Url faz saber onde você está, mas essa informação não parece ser apresentado ao SPXmlContentMapProvider .

Eu também vêm-se com um em torno do trabalho para o problema. Você pode editar manualmente a página mestra para cada conjunto de sites para manter a trilha de migalhas para esse conjunto de sites na frente do GlobalNavigationSiteMap . Assim, cada conjunto de sites com esse requisito de navegação, então, precisa ter a sua própria página mestra personalizada. É uma maneira feia, a força bruta de fazer as coisas que eu tenho nenhuma intenção de implementar. Ele iria trabalhar, mas seria um pesadelo de manutenção.

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