MCMS 占位符内容 Web 部件






4.36/5 (5投票s)
在 WSS 站点中显示内容管理服务器占位符的内容。
引言
此 Web 部件可在 Windows SharePoint Services (WSS) 站点或 SharePoint Portal Server (SPS) 站点中显示 内容管理服务器 (MCMS) 页面占位符的内容。Web 部件本身不存储任何实际的占位符内容。如果 MCMS 站点中的占位符使用新内容进行了更新,WSS 站点中的 Web 部件将自动显示新内容。
背景
有几种方法可以在 WSS 站点中提取 MCMS 的内容。现成的解决方案是 Microsoft 提供的免费 SharePoint 技术 MCMS 连接器。它附带一个 MCMS 页面列表 Web 部件,用于显示特定频道中页面的摘要列表。如果您的需求比这更复杂,您将需要编写自己的自定义代码。
最简单的方法是使用页面查看器 Web 部件。它会在 IFrame 中显示任何网页内容。由于整个网页及其导航等都已加载,因此它不会为用户提供内容是 WSS 站点一部分的 UI 体验。
如果 MCMS 站点与您的 WSS 站点位于同一台服务器上,您可以在 Web 部件中使用 MCMS API 进行开发。但在生产环境中,这通常不是常态,您可能需要诉诸 Web 服务或自定义 IFrame 开发来仅显示占位符内容,而不是整个 MCMS 页面。
MCMS Web 服务确实是一个非常好的方法,尽管 Web 部件调用 Web 服务时您可能会遇到一些身份验证问题。据我所知,Windows 集成身份验证对于 Web 服务不起作用。如果您有 SPS 站点,我建议使用 SPS 的单点登录 (SSO) 服务进行身份验证。
通过 IFrame 路由,此 Web 部件会调用一个自定义 MCMS 页面,该页面会将您选择的特定占位符的内容渲染到 IFrame 中。IFrame 会根据内容的长度自动调整其高度,以便不显示滚动条。
安装
- Web 部件
在 WSS 服务器上,运行 SharePoint Services 管理工具 Stsadm.exe 来安装 MCMSWebPartsPackage.cab 包。或者,您也可以使用包含的源文件重新构建包。要安装该包,请运行以下命令
Stsadm.exe -o addwppack -filename c:\MCMSWebPartsPackage.cab
修改 web.config 以将 Web 部件标记为安全
<SafeControls> ..... <SafeControl Assembly= "QuestechSystems.MCMSWebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a877c88baf21ba83" Namespace="QuestechSystems.MCMSWebParts" TypeName="*" /> </SafeControls>
此时,“MCMS 占位符内容”Web 部件应出现在虚拟服务器 Web 部件库中。
- MCMS WssIntegration
在 MCMS 服务器上,将 WssIntegration 目录复制到 MCMS 站点的根目录。打开 Visual Studio。将目录包含在 MCMS 项目中。重新构建项目。
用法
“MCMS 占位符内容” Web 部件带有自己的自定义工具窗格,具有以下属性
- MCMS 站点 URL - MCMS 站点的 URL。例如 http://woodgrovenet、http://server/woodgrovenet。服务器可以是远程服务器。
- 页面 - 这是发布显示路径。在您使用“选择占位符”对话框选择占位符后,它会自动填充。
- 占位符 - 这是占位符的名称。在您使用“选择占位符”对话框选择占位符后,它会自动填充。
- 选择页面和占位符 - 单击此按钮将打开“选择占位符”对话框。此对话框允许您选择要渲染内容的发布以及其中的占位符。
您可能还想在“外观”部分更改 Web 部件的标题,以匹配您选择的占位符。
备注
- Web 部件存储发布路径、发布 GUID 和占位符名称。它使用发布 GUID 和占位符名称来检索占位符内容。如果发布被移动到其他频道,Web 部件仍然能够找到已移动的发布并渲染占位符内容。但是,在自定义工具窗格中显示的发布路径将不正确。
- Web 部件会渲染占位符的原始内容。像
XmlPlaceholder
这样的占位符将无法正确渲染。 - 在编辑或设计 WSS 页面时,Web 部件将渲染占位符的未发布视图。
- 如果您只有一个 MCMS 站点可以从中提取内容,您可以修改 RenderMCMSPlaceholderTool.cs 中的
GetSiteUrlDefaultValue()
方法,使其始终显示特定的 MCMS 站点 URL。 - 渲染的占位符内容中的所有超链接都将在主页面中打开,而不是在 IFrame 中。
- 在非 IE Windows 浏览器中,IFrame 中可能会出现滚动条。我仅在 Windows IE 中进行了测试。
- 如果占位符内容使用自定义 CSS 样式,它不会像在 MCMS 站点中那样在 Web 部件中渲染。在 MCMS 站点的 web.config 文件中,添加
appSettings
键SiteCssHrefForWss
,并将其值设置为您的站点样式表的 HREF。例如,如果 MCMS 站点是 WoodgroveNet 站点<add key="QuestechSystems.SiteCssHrefForWss" value="/WoodgroveNet/Style/styles.css" />
历史
- V1.0 - 2004.12.11 - 基础。
- V1.1 - 2005.01.15 - 解决了 CMS 和 WSS 站点位于不同服务器时的跨站点安全问题。
- V1.2 - 2005.01.22 - 添加了在渲染占位符内容时插入样式表引用的选项(请参阅上面的注释 7)。