在上一篇http://www.cnblogs.com/fanwenxuan/archive/2012/02/15/2353115.html中我介绍了“WebProvisioned”的应用,并且提出了一些疑问。那么对于一下问题的解决方案是什么?

需求: 我现在有一个新的需求,当用户新建“博客”或者“工作组”站点的时候,我要在站点里面新建一个列表;或者说当用户新建“我的站点”的时候,我想要在每个用户自己的站点上加上点东西,怎么办?

我们可以直接去修改站点定义,譬如说修改“工作组”站点的定义文件,当时微软是不建议修改这些文件的。所以我们的方案是使用Feature Stapling功能。我对这个功能的理解是:通过Feature的方式来修改站点定义。他的作用范围是整个Farm。也就是你激活这个Feature Stapling之后,在任何位置新建站点,都会触发你的feature功能。

具体步骤:

1.创建一个”列表定义”的Feature

   1:  <?xml version="1.0" encoding="utf-8"?>
   2:  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   3:    <ListInstance Title="FlyFeatureStaper - FlyList0215"
   4:                  OnQuickLaunch="TRUE"
   5:                  TemplateType="107"
   6:                  FeatureId="00bfea71-a83e-497e-9ba0-7a5c597d0107"
   7:                  Url="Lists/FlyTask"
   8:                  Description="Fly task">
   9:    </ListInstance>
  10:  </Elements>

   1:  <Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="FlyFeatureStaper Feature1" Id="6f4f155e-64a7-467b-9aa9-602e7e3ebdcf" Scope="Web">
   2:    <ElementManifests>
   3:      <ElementManifest Location="FlyList0215\Elements.xml" />
   4:    </ElementManifests>
   5:  </Feature>

这个Feature的范围可以是web,site,或者其他,他的内容可以是Event Handler, Workflow,或者Web Part等等

2.创建一个新的Feature(Scope必须是Farm级别),并且新建一个空的Element文件。

<Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="FlyFeatureStaper Feature2" Id="a30110c8-df7a-4b23-9e14-383cd453a7cb" Scope="Farm">
  <ElementManifests>
    <ElementManifest Location="FlyStapler0215\Elements.xml" />
  </ElementManifests>
</Feature>

Element.xml文件

   1:  <?xml version="1.0" encoding="utf-8"?>
   2:  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   3:    <FeatureSiteTemplateAssociation Id="6f4f155e-64a7-467b-9aa9-602e7e3ebdcf"
   4:                                    TemplateName="STS#0"/>
   5:  </Elements>

这里需要注意的是里面的Id和TemplateName两个值。Id表示你要stapling的Feature的Id,这里也就是我的第一个feautre的ID;TemplateName表示要起作用的站点定义。STS#0表示工作组站点。你可以通过“Get-SPWebTemplate” powershell命令来获取所有的站点定义:例如http://virtualizesharepoint.com/2011/06/15/how-to-find-the-template-name-of-sharepoint-site/

最后一步,部署Feature。 Feature Stapling需要在Farm Features中激活。

结果:新建工作组站点的时候,会自动创建一个名称为“FlyFeatureStaper - FlyList0215”的任务列表。

更多场景:当你想在“我的站点”中添加一些页面,或者Web Part的时候,可以通过Feature Stapling的方式实现。

更多内容参考:http://sharepointmagazine.net/articles/introduction-to-sharepoint-feature-stapling-part-1

http://www.sharepointnutsandbolts.com/2007/05/feature-stapling.html

转载于:https://www.cnblogs.com/fanwenxuan/archive/2012/02/15/2353136.html

Sharepoint中的Feature Stapling功能相关推荐

  1. 使用SharePoint中的Move To功能将一个文档转移到其他位置

    Office 365 SharePoint 中现在可以通过Move To功能将文档移动到本站点的其他位置或者其他站点. 1 - 首先,选中要移动的文档.可以多选. 2 - 之后就可以在右侧的Panel ...

  2. arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结

    MapGIS到ArcGIS数据转换 1.面(区)图层:通过Map2Shp格式转换软件转换(能保证属性和图形数据不丢失) 2.线图层:通过MapGIS文件转换模板转换(能保证属性和图形数据不丢失) 3. ...

  3. 用VS向SharePoint中部署添加List 并指定应用的Content Type

    在SharePoint Project中添加相应的Item,完全用界面的形式向EricSunArticlesList中添加好对应的Column,之后用Feature将List添加到SharePoint ...

  4. SharePoint中的富文本编辑器控件

    在sharepoint中,自带一个html文本编辑器,可以对字体的大小,颜色甚至复制和粘贴都可以.这次做项目我们准备通过spd把这个编辑器放到自定义的aspx页面中.费了很大的力气,终于在博客堂()和 ...

  5. 学习 launch-editor 源码整体架构,探究 vue-devtools「在编辑器中打开组件」功能实现原理...

    1. 前言 你好,我是若川[1],微信搜索「若川视野」关注我,专注前端技术分享,一个愿景是帮助5年内前端开阔视野走向前列的公众号.欢迎加我微信ruochuan12,长期交流学习. 这是学习源码整体架构 ...

  6. ADO.NET 2.0 中的新增 DataSet 功能

    发布日期: 1/13/2005 | 更新日期: 1/13/2005 Jackie Goldstein Renaissance Computer Systems 适用于: Microsoft ADO.N ...

  7. Feature Flag 功能发布控制

    背景 产品在新功能发布前,可能会采取小流量测试的方式,或者在确定方案前使用A/B测试来衡量.一般开发人员会跟运维同学合作,通过一些现有平台切换机器或者流量来实现.本文介绍了另外一种简便的方式,并解释了 ...

  8. 凭借K2 SmartObject框架,在SharePoint中集成数据

    随着SharePoint 2013的发布,Microsoft已提供Business Connectivity Services(BCS)增强功能以及外部列表功能,确保您可以更简单地在SharePoin ...

  9. Microsoft SharePoint Server 2010 的新增功能

    Microsoft SharePoint Server 2010 包括几个关键的增强和新增功能.重新设计的用户界面中的功能区通过将命令放置到更易于导航的基于任务的选项卡上,来帮助您更快地完成工作.可以 ...

最新文章

  1. 如何使用PHP发送电子邮件?
  2. Windows开启WMI时一些总结
  3. SDUT 2860-生日Party(BFS)
  4. Python的C/C++扩展
  5. 无向简单图怎么判断_bfs----判断无向简单图中任意两点是否连通
  6. Flutter学习之事件循环机制、数据库、网络请求
  7. 如何检查CentOS版本– 8种方法
  8. selenium2.0处理case实例(二)
  9. android多线程计时器,Android 计时器Timer用法
  10. android系统关闭wifi,Android以编程方式打开/关闭WiFi HotSpot
  11. 解决办法一:GetProcAddress函数返回值总为NULL
  12. Atitit 文档资料管理同步解决方案
  13. 收银系统服务器ip设置,如何修改打印机IP地址?
  14. HTML动画滑动图片特效
  15. 邮件群发平台_群发开发信不进垃圾箱的技巧
  16. Error Some file crunching failed, see logs for details 解决方案
  17. 基于52840 S340协议栈USB flash U盘实现
  18. Mysql培训第二天
  19. Android之WebView
  20. Java中集合拥有的共性方法

热门文章

  1. 深度学习的实用层面 —— 1.10 梯度消失与梯度爆炸
  2. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)
  3. leetcode - 120. 三角形最小路径和
  4. Struts2中EL表达式的取值范围问题
  5. 算法竞赛中的时间复杂度选择——以最大连续和问题为例
  6. B. MIN-MEX Cut
  7. linux修改动态ip名领,Linux动态和静态修改ip(转)
  8. Java中complex怎么被调用_java中存在三种调用机制
  9. linux mount 日志,mount
  10. 系统部署文档_详解window系统下安装部署SWFTools(文档转换)工具教程