使用SharePoint 2010主题(Anweshi Deverasetty)

Categories: Sharepoint
Tags: No Tags
Comments: 3 Comments
Published on: 2011 年 12 月 15 日

[原文发表地址] Working with SharePoint 2010 Themes (Anweshi Deverasetty)

[原文发表时间] 2011-02-03 07:00

嗨,大家好,我是Anweshi Deverasetty。在过去的4年半中,我一直担任微软服务全球交付的副顾问。我从事软件行业已有9年,尤其是在SharePoint部分研究。目前,我在做一个项目,要将SharePoint 2007移至2010,实现Pivot视图,BCS,快速搜索等。这篇博客就是我致力开发和部署主题的产物。

希望你们阅读愉快!

介绍

我们的应用涉及SharePoint 2007到2010环境Web应用上的站点集合迁移。在用户角度的基本要求上,介于我们想在站点集合上执行可视化升级,我们用stsadm 中的PreserveOldUserExperience执行了迁移。这会做数据迁移,不过保留SharePoint 2007的外观和感觉。之后,可视化升级会用来升级至SharePoint 2010的外观和感觉。你可以点击这里在MSDN上了解更多PreserveOldUserExperience。

迁移主要涉及3个步骤——数据迁移,可视化升级和使我们的自定义组件与新版本兼容。做完数据迁移之后,执行可视化升级就很简单了,只是从站点设置→站点集合管理执行可视化升级而已,如下图所示(点击查看大图):

clip_image001

1:站点设置中的可视化升级

不过仅仅执行可视化升级并没有多大作用。在你落实可视化升级之前需要考虑很多,做很多准备。第一件事就是在主页和主题上的工作。设计主题前,你要决定你是否希望跟着主题走,或者想要CSS风格。从始至终保持一种风格而不是而不是两种都使用 是很重要的,主题有时可能会覆盖CSS, 反之亦然。接下来会告诉你如何创建和部署一个主题。

关于主题

主题在2010中彻底被改变了。全新的2010主题使用的是完全不同的设计。SharePoint 2007主题使用CSS和图像,而新的2010主题则使用.thmx格式。这就意味着主题可以用PowerPoint或其它任何在本篇后面要讨论的工具简单地创建。你会注意到旧版SharePoint 2007主题在SharePoint 2010中不再使用。当你没有执行可视化升级执行迁移时,旧主题可以支持2007的外观和感觉。

这有许多可用的预定义主题,你可以从站点设置→外观和感觉→站点主题中看到。注意在SharePoint服务器中,你可以在浏览器内自定义主题。在SharePoint Foundation中,这个功能还不支持。以下是SharePoint服务器中站点主题的快速浏览(点击查看大图):

clip_image002

2 :在站点设置中设置主题

创建自定义主题

SharePoint 2007创建主题要花些功夫,因为我们要处理CSS和图像。不过由于2010中主题设计大大改善,所以变得简单多了。下面就是一些可用的工具。提供了多种方法来创建主题。

自定义主题功能

在外观和感觉部分设置站点设置主题是SharePoint服务器中默认的功能,能使你自定义主题。在图2中,你可以看到自定义主题选项,让你自定义选中的主题。无论何时你选择一个预定义主题并自定义它,它就会创建一个新的主题叫做自定义,然后所有的变化都会应用到这个自定义主题中。所以每次你对一个预定义主题做了修改,自定义主题就会被改写。现在,如果你想保存这个主题,并在本地下载,你要按照以下步骤来操作:

1. 查看HTML源代码页面,查找/_catalogs/theme/Themed/uniqueHexId/corev4-uniqueNumber.css

2. 在浏览器中,导航至http://yourServer/_catalogs/theme/Themed/uniqueHexId/theme.thmx并下载文件

3. 重命名文件MyCustomTheme.thmx

主题生成器

你还可以用主题生成器来创建主题,可以在http://connect.microsoft.com/themebuilder获取。你可以选择现有的主题,或者用这个工具创建新的主题。以下是主题生成器的截屏:

clip_image003

3:主题生成器UI

PowerPoint

还可以用PowerPoint来创建主题。在颜色下的设计标签上,选择创建新主题颜色。对它进行自定义,并以thmx格式文件保存。下面是创建新主题颜色对话框的截屏:

clip_image004

4PowerPoint主题UI

部署主题

通过代码和UI有很多种方法部署主题。以下是部署主题的不同方法。

主题Gallery部署

你可以把在PowerPoint或者主题生成器中创建的thmx文件上传到主题Gallery。将主题部署到主题Gallery很不错,尤其是你为单站点集合的话。如果你希望它应用到多个站点集合,那就看下一个方法。你可以通过站点操作→站点设置→主题来访问主题画廊。你一旦上传了,就可以去设置主题界面,如上图2所示,然后设置主题。你可以看到下图所示的主题画廊:

clip_image005

5:主题Gallery

特征部署

发布任何构件作为一个特征,总是最好的实践。这适用于多站点集合。以下是功能和元素XML文件的一个例子。

Feature.xml
<?xml version="1.0" encoding="utf-8" ?>
<Feature  Id="28E39FC9-BFE9-4FAE-9E71-C5BFEB818D2E"
          Title="My Custom Theme"
          Description="My Custom Theme"
          Version="1.0.0.0"
          Scope="Site"
          Hidden="FALSE"
          DefaultResourceFile="core"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <ElementManifests>
    <ElementManifest Location="Elements.xml"/>
  </ElementManifests>
</Feature>
 
Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="MyCustomTheme" Url="_catalogs/theme" Path="MyCustomTheme" RootWebOnly="true">
    <File Url="MyCustom.thmx" Type="GhostableInLibrary" Path="MyCustom.thmx">
    </File>
  </Module>
</Elements>
 

有关部署和安装功能的详细信息,请见安装或卸载功能。一旦功能被安装启用,就会如图5所示,在主题Gallery中显示。

对象模型部署

你可以使用Microsoft.SharePoint.Utilities命名空间中的ThmxTheme类来程序化部署主题。ApplyTo方法将主题应用至站点集合。以下为代码片段:

C# 代码

using (SPWeb web = site.OpenWeb())
{
    using (ThmxTheme theme = ThmxTheme.Open(web.Site, "./_catalogs/theme/MyCustomTheme.thmx”))
    {
       theme.ApplyTo(web, false);
    }

}

3 Comments - Leave a comment
  1. quoted on bgl-cosme.info说道:

    bgl-cosme.info

    使用SharePoint 2010主题(Anweshi Deverasetty) « vbcti

  2. quoted on h10 hotels codes说道:

    h10 hotels codes

    使用SharePoint 2010主题(Anweshi Deverasetty) « vbcti

  3. theowalcot说道:

    That’s amazing, You are Superman, aren’t you ?

Leave a comment


Welcome , today is 星期六, 2017 年 03 月 25 日