当前位置: 首页 > news >正文

我所知道的SharePoint feature(1)

    最近,公司的一些东西用到了feature,本着好记忆不如烂笔头的精神,觉得将自己学习的一些东西写下来,防止以后忘了。我知道园子里有许多人都写过相类似的东西,这里不敢班门弄斧,本着有过改之,无着加勉,希望大家多多提意见。高手们多多指点,新手们共同学习。
    首先是对feature的一个定义,我从MSDN上找到一段对feature的定义
    Windows SharePoint Services 3.0 introduces an inherently portable and modular functionality known as a feature, which simplifies modification of sites through site definitions. A feature is a package of Windows SharePoint Services elements that can be activated for a specific scope and that helps users accomplish a particular goal or task.
     从我自身来说,我觉的可以把feature看做是为了完成某项任务和功能的小模块,而这个小模块可以在不同的范围上激活或是结束。
    既然是讲feature,就先讲一个简单的例子,这个例子是MSDN上的,我在我的虚拟机上实验过了,是可行的,讲这个例子的目的是有个更为直观的认识。
    1.首先,你可以用VS2005创建一个C#的class library的工程,创建这个工程我们不用里面的任何东西,只是为了编辑两个XML文件,在VS2005编辑feature是很方便的,因为我这台电脑不能使用虚拟机,所以方便之处只能下次再说了。你先创建一个文件夹,然后在这个文件中创建两个XML文件,具体的请看下图:
                                          
    2.下面是feature的内容,Ttile不用说了。这里最为重要的是Scope和Id这两个属性,Scope指定了,这个feature可以激活使用的范围是什么。一共是有四个级别的范围。Farm WebApplication Site Web.
    Farm:服务器场范围,这个是最大的范围
    WebApplcation:你可以看就是一个http://ccccc:vv之类的一种形式。在一个服务器场中,会有多个webapplication
    Site:site collection就是网站集。
    Web:subsite网站集下的一个web
    Id属性中的GUID是标识feature的唯一全局标识符,可以用VS2005中的工具来生成,在Tools菜单下面有个Create Guid的工具,选择第四种的格式,你可以不断的生成新的GUID,直到你觉的数字不错了:)
                                 
< Feature  Title ="New Simple Form Toolbar Button"
  Scope
="Web"  
  Id
="GUID"  
  xmlns
="http://schemas.microsoft.com/sharepoint/" >
  
< ElementManifests >
    
< ElementManifest  Location ="Elements.xml"   />
  
</ ElementManifests >
</ Feature >
    在这个feature.xml文件中是对整个feature做一个描述和基本定义,真正对这个feature起作用的,或是说完成这个feature所预想的功能的是在ElementManifest中指定的文件,你可以指定多个这样的文件,来完成多个工作。
    3.这个feature的目的是adds a button to the toolbar of the form for editing announcements items within the scope of a SharePoint site。因为我用的是英文版本的MOSS2007,我不太清楚里面的有些东西该如何翻译成中文,我也没有见过中文版本的MOSS,所以这里我将英文直接贴出来,希望大家谅解。
    
< Elements  xmlns ="http://schemas.microsoft.com/sharepoint/" >
  
< CustomAction  Title ="Simple"  
    Sequence
="10"  
    RegistrationType
="List"  
    RegistrationId
="104"  
    Location
="EditFormToolbar"  
    Id
="Simple Toolbar" >
    
< UrlAction  Url ="/_layouts/SampleUrl.aspx"   />  
  
</ CustomAction >
</ Elements >

    上面是elements.xml文件的内容。一个CustomAction是为一个link或是工具栏对象定义行为。
    Id:为这个CustomAction指定一个文本标识符
    Sequence:指定action的优先级的顺序
    Location:Action出现的位置,在MSDN中有对Location有详尽的列表,以后会提到。你不仅可以对action指定title还可以加上你想要的图标。
    RgistrationType:Specifies the registration attachment for a per-item action. (不好意思,我不知道该如何翻译才更合适)。这是个可选的文本属性。从我的理解来说,这是对那些类似list中的item指定action。有ContentType List FileType ProgID。这里指定的是List,因为announcements是List的一种类型。
    RegistrationID:104代表着announcements。
    关于RegistrationID等具体的数值在MSDN中有详细的列表,后面的文章中也会有提到。
    UrlAction:指定了,当我们点击相应的item时,调用的是哪个页面。你可以自定义这个页面放在 Local_Drive :\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\Layouts
    
< html >
< head  runat ="server" >
< title > Sample Page </ title >
</ head >
< body >
< p > Hello, world! </ p >
</ body >
</ html >
以上就是这个例子的代码。
    4.将刚才创建的文件夹复制到 Local_Drive :\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\Features下面。
    运行 stsadm -o installfeature -filename SimpleFormToolbarButton\Feature.xml 
    这个是安装这个feature的命令行,安装feature的命令行有多种,这个只是其中的一种。
    安装完之后,你选择一个web,site action->site setting->site feature (因为我手中没有MOSS,只是凭记忆,有的地方的书写可能不太对,不过大致一样),进入到feature管理页面,激活后,到一个announcements中,就 可以看到新feature启用了。

转载于:https://www.cnblogs.com/jdxyw/archive/2008/07/03/1234790.html

相关文章:

  • 新增题目功能模块总结
  • 手机的各项性能测试
  • MyEclipse 历史版本
  • INSERT 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'
  • TCP/IP协议三次握手与四次握手流程解析
  • raid卡电池问题
  • JavaScript中的闭包
  • 微软将为 Linux 用户带来令人振奋的消息
  • 基于 React 和 Redux 的现代内容编辑器 ORY Editor
  • 使用IL实现对象的Clone,浅拷贝,和深拷贝的几篇文章
  • 基于 JavaScript 的操作系统你听说过吗?
  • JQuery 日程管理组件 FullCalendar 文档
  • 索引
  • 黄东旭:When TiDB Meets Kubernetes
  • c# FileSystemWatcher控件的使用方法
  • [Vue CLI 3] 配置解析之 css.extract
  • 【node学习】协程
  • docker-consul
  • Java超时控制的实现
  • js
  • Linux CTF 逆向入门
  • React16时代,该用什么姿势写 React ?
  • Redux系列x:源码分析
  • 从重复到重用
  • 大主子表关联的性能优化方法
  • 爬虫模拟登陆 SegmentFault
  • 一文看透浏览器架构
  • 用element的upload组件实现多图片上传和压缩
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #1015 : KMP算法
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $().each和$.each的区别
  • (3)llvm ir转换过程
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (Note)C++中的继承方式
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (区间dp) (经典例题) 石子合并
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)插入排序
  • (转载)Linux网络编程入门
  • .NET 中 GetProcess 相关方法的性能
  • .NET学习教程二——.net基础定义+VS常用设置
  • .py文件应该怎样打开?
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @RestController注解的使用
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [android学习笔记]学习jni编程
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [C++]:for循环for(int num : nums)
  • [C++打怪升级]--学习总目录