将SharePoint 2007 “FAB 40”模板迁移到SharePoint 2010 中(Surya Kiran)

[原文发表地址] Migrating the SharePoint 2007 “FAB 40” templates to SharePoint 2010 (Surya Kiran)

[原文发表时间] 2012-06-01 12:45

简介

作为一名微软全球交付的顾问,我最近在与一名客户交流,他要求在Office 365 ,SharePoint Online Dedicated环境中为 Windows SharePoint Service 3.0继续使用应用程序模板(也就是Fab 40 模板)。然而我们处于进退两难的地步,因为一些模板不适用于 SharePoint 2010 版本。在.Net Reflector的帮助下,我已经找到了解决这种困境的方法。

背景
基本上升级后会有一些.wsp 文件出现问题。特别是升级后,有些客户无法基于下列模板创建新的站点:Absence Request and Vacation Schedule Management, Call Center, Help Desk, IT Team Workspace, Knowledge Base, Physical Asset Tracking and Management。

有一些可免费下载的模板,它们可以适用于 SharePoint 2010,但不适用于从 SharePoint 2007中升级过来的网站。
在一个 SharePoint 2010 环境中安装一个修复了的FAB 40 模板之后,它们将适用于从 SharePoint 2007中升级过来的站点,也可以创建新的网站。请参阅这篇文章底部的结论和链接部分,在那里你可以下载模板。

请注意因为迁移的FAB 40 模板并不是沙盒解决方案,它们不能在Office 365 Standard中使用,而只可在Office 365 Dedicated中使用。

问题

以下模板与Post Provisioning Event Handler ZonedWebPartsUrlList 有问题:

  • Physical Asset Tracking and Management
  • Absence and Vacation Schedule
  • IT Team Workspace
  • Knowledge Base

传递给ZonedWebPartsUrlList属性的文件列表由Post Provisioning Event Handler来读取,页面上的每个Web Part都使用 GUID 列表来更新。不幸的是, Post Provisioning Event Handler中的许多方法会进行模糊处理,并且不能由.NET Reflector逆向处理。然而,我仍能推断出问题。

当在Provisioning Event Handler 中执行SubstituteTokens方法时将引发一个错误。这里是由.NET Reflector所揭示的代码。

此外,下列模板与其他的Event Handlers有问题

  • Document Library and Review
  • Inventory Tracking

解决方案

下面是五个修复程序的详细信息:

  • 在onet.xml 为这些模板添加ZonedWebPartsUrlList属性注释:
    • Physical Asset Tracking and Management
    • Absence and Vacation Schedule
    • IT Team Workspace
    • Knowledge Base
  • 使用这些模板的Data View Web Part中的列表名称替换列表 ID:
    • Physical Asset Tracking and Management
    • Absence and Vacation Schedule
    • IT Team Workspace
    • Knowledge Base
  • 在 onet.xml中,为现有功能添加注释,为以下模板编写新的事件接收器。我使用.Net Reflector来检查旧的 DLL 文件,并将相同的代码复制到新的事件接收器 DLL 文件中。
    • Document Library and Review
    • Inventory Tracking
  • 在onet.xml TSA Content Types 和Fields Feature中为现有功能添加注释
  • 在 onet.xml 中更改 URL 导航。在 SharePoint 2010 Url属性值不能被资源文件解析。

http://gallery.technet.microsoft.com/Migrating-the-SharePoint-edf9ed0c下载已迁移的FAB 40 SharePoint 2010 模板

结论和链接

有关详细信息,请参阅以下:

如何:在 SharePoint 2010 中隐藏功能区(Rajeswari Mohandas)

[原文发表地址] How to: Hide the Ribbon in SharePoint 2010 (Rajeswari Mohandas)

[原文发表时间]  2012-04-30 16:41

在这篇文章中,您会学习到如何使用 JavaScript在 SharePoint 2010 中隐藏功能区。

关于SharePoint 2010 中的功能区

SharePoint 2010 功能区提供了一个与Microsoft Office 客户端产品相似的用户体验。功能区是一个工具栏,它显示在最顶部来提供最常用的工具、 控件和命令。

功能区的层次结构组织如下图 (见图 1 和图 2)所示:

  • 文本标记组-文本选项卡能够让您在一定文本内提供一套用户界面 (UI) 控件。例如,当您在文档中选择一个表时,这将会显示一组选项卡来对表进行操作。当取消选择表时,文本选项卡就会隐藏起来。类似的文本选项卡被组织在文本选项卡组中,那样您在一个组中可以有多个选项卡。
  • 选项卡— — 选项卡用于组织相关的控件组。例如,插入选项卡控件能够使您将各种对象插入到文档中,例如文件、 表、 图像,等等。
  • — 组用于组织相关的控件。例如,字体组、 样式组、 文档视图组,等等。
  • 控件— — 按钮、 下拉列表控件、单选按钮和其他控件,让您可以从功能区中执行单个任务。

功能区可以有多个选项卡, 选项卡可以有多个组,组可以有多个控件。

1功能区选项卡和组

Figure1

2功能区文本选项卡组和控件

Figure2

SharePoint 2010 中隐藏功能区

有多种方法可以在 SharePoint 2010 中隐藏功能区。例如:

  • 当发布一个网站模板 (你应使用公共站点) 时, 在站点操作的下拉菜单中有一个显示/隐藏功能区的选项。
  • 通过使用Security Trimmer控件。Security Trimmer控件可以放置在母版页上的功能区中,然后它会基于用户权限而有条件地隐藏功能区。在下面的示例中,用户没有管理权限,因此将不能看到功能区。您可以根据要求来更改PermissionString属性值。

<SharePoint:SPSecurityTrimmedControl PermissionsString="ManagePermissions" runat="server">

<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle">

</div>

</SharePoint:SPSecurityTrimmedControl>

  • 使用自定义代码。可以使用JavaScript来 在SharePoint 2010中显示或隐藏功能区。

创建 javascript 脚本来隐藏功能区

在本节中,您将创建一个包含JavaScript 代码的文件来在加载网站和网页时显示或隐藏功能区。然后在 Microsoft Visual Studio 2010中创建一个空的 SharePoint 2010 项目,然后将 JavaScript 文件添加到其中。下一步,您引用母版页中的 JavaScript 文件。最后部署和测试的解决方案。

创建 JavaScript 文件

  1. 打开记事本。
  2. 将下面的 JavaScript 代码添加到该文件中,然后将它保存为custom.js.
   1: function ShowRibbon() {

   2:  

   3:    $("#s4-ribbonrow").show();

   4:  

   5:    $("#s4-workspace").height($(document).height() - $("#s4-ribbonrow").height() * 2);

   6:  

   7: }

   8:  

   9: function HideRibbon() {

  10:  

  11:    $("#s4-ribbonrow").hide();

  12:  

  13:    var newHeight = $(document).height();

  14:  

  15:    if ($.browser.msie) {newHeight = newHeight - 3; }

  16:  

  17:       $("#s4-workspace").height(newHeight);

  18:  

  19: }

  20:  

  21: _spBodyOnLoadFunctionNames.push("HideRibbon");

创建空的 SharePoint 2010 项目

  1. 启动 Microsoft Visual Studio 2010。
  2. 文件菜单上,指向新建,然后单击项目.
  3. 新建项目对话框的窗口中,在已安装的模板区域中,单击Visual C#,单击SharePoint,然后单击2010.
  4. 在项目项中单击空的 SharePoint 项目
  5. 名称框中,键入RibbonDemo ,然后单击确定.
  1. 在 SharePoint自定义向导中,键入您要在此例中所使用的本地网站 (例如, http://localhost/SampleWebSite).
  2. 至于信任级别,选择作为farm解决方案部署,然后单击完成.
  3. 解决方案资源管理器中,右键单击RibbonDemo项目名称, 指向添加, 然后单击现有项目.
  4. 导航到您先前创建的 JavaScript 文件(custom.js),然后单击添加.
  5. 当创建 Visual Studio 项目时,打开 SharePoint 2010 设计器到您所指定的网站。
  6. 打开网站主页面 ;添加下面的代码,然后再保存它。

<SharePoint:ScriptLink language="javascript" name="RibbonDemo/jquery-1.6.4.min.js" runat="server"/>

<SharePoint:ScriptLink language="javascript" name="RibbonDemo/custom.js" runat="server"/>

部署和测试的解决方案

  1. 解决方案资源管理器, 右击RibbonDemo项目名称,然后单击部署.
  2. 启动IE,然后浏览到你之前所指定的网站。当加载网页时就隐藏了功能区。

这篇文章讨论了 SharePoint 2010 功能区,以及如何通过使用 JavaScript 来隐藏它。您可以在下列地方找到有关在这里讨论的主题的详细信息。