1

我一直在尝试找到一种方法来跨多个网站集扩展 SharePoint 面包屑导航,但一直找不到方法。我可以将网站集上的门户网站连接设置设置为链接到其父网站集。但是,这不会只显示一个父网站集。这是我正在创建的设置类型的示例。

根站点 Intranet 有一个称为站点的托管路径。在站点下有一个名为HR的站点集合,位于/sites/hr/。在 HR 下还有另一个管理路径设置,称为外展。在外展中有一个名为Recruiting的网站集,位于/sites/hr/outreach/recruiting/。因此,当用户在招聘站点时,我希望他们看到Intranet > HR > Recruiting作为面包屑路径。

站点地图示例:

<?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>

在招聘中设置门户网站连接我可以在招聘时获得HR > Recruiting,在 HR 上设置门户网站连接我可以在 HR 网站中获得Intranet > HR。不过我不能。

我尝试使用SPXmlContentMapProvider来读取站点地图文件,但是当我将其设置为default.master中GlobalNavigationSiteMapSiteMapPath的 SiteMapProvider时,我根本无法让它显示。(GlobalNavigationSiteMap是在站点顶部创建面包屑的 SiteMapPath)。但是,相同的体系结构在通用 .NET 应用程序上运行良好,但在 SharePoint 中似乎不起作用。我还正确地将站点地图注册为defaultProvider 并能够使用它来替换TopNavigationMenu。(顶部导航菜单是默认 SharePoint 布局顶部的全局导航菜单/按钮栏)。

有没有办法将此功能实际构建到 SharePoint 中?

4

2 回答 2

2

既然您正在实现自定义母版页(或自定义默认母版页),为什么不将面包屑控件替换为您自己的?如果您需要将站点地图与 Sharepoint 生成的地图相结合,或者制作自定义站点地图提供程序。

于 2009-07-21T10:20:01.230 回答
0

我想了很多关于为什么不能使用SPXmlContentMapProvider 的问题,我认为这归结为 SharePoint 如何呈现和使用托管路径。我的理论是这样的:

SharePoint 中的所有网站集位置都是托管路径。由于内容确实存储在数据库中,并且 IIS 将信息呈现为像在文件夹中一样,但页面并不位于文件夹中。相反,该位置位于 SharePoint 的“以太”中的某个位置,无论SPXmlContentMapProvider看到的位置本身在哪里,它都在 xml 文件中的条目之后的其他位置。现在 Request.Url 确实知道您在哪里,但该信息似乎并未呈现给SPXmlContentMapProvider

我也想出了一个解决这个问题的方法。您可以手动编辑每个网站集的母版页,以将该网站集的面包屑路径粘贴在GlobalNavigationSiteMap前面。因此,具有此导航要求的每个网站集都需要拥有自己的自定义母版页。这是一种丑陋的、蛮力的做事方式,我无意实施。它会起作用,但将是维护的噩梦。

于 2009-07-21T15:00:06.983 回答