我所知道的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启用了。
posted @ 2008-07-03 14:56  jdxyw  阅读(2606)  评论(3编辑  收藏  举报