Features 是MOSS 2007以开箱即用的一套新功能,Features 存储在SharePoint服务器的如下路径下: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES。 每个Featrue在此路径下有自己的子目录,在每一个Feature子目录下会发现名字为Feature.xml的文件, 它存储一些关于Featrue的metadata信息。
下面我就利用feature来实现一个小功能,在"网站操作"中添加自定义的菜单,首先使用VS2005建立一 个HelloWorld的类库项目,然后添加文件夹Helloworld,在文件夹中添加feature.xml文件代码如下:
<Feature Id="B2CB42E2-4F0A-4380-AABA-1EF9CD526F20" Title="Hello World Feature" Description="这是我的第一个Feature" Scope="Web" Hidden="FALSE" ImageUrl="TPG\canteen.gif" ReceiverAssembly="HelloWorld, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b38a04419cc857d9" ReceiverClass="HelloWorld.FeatureReceiver" xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
下面我们来说明下包含在Featrue 元素中的metadata 信息。
ID: 一个GUID,用于唯一标识这个Feature,这个可以使用GUID的生成工具得到;
Scope:其值可以是Web或Site,它指明了这个Feature是应用于整个的Site Collection还是仅仅用于单 独的一个子站点。如果Scope="Web",则在[网站操作—网站设置—网站管理—网站功能]下激活,如果 Scope="Site"则要在[网站操作—网站设置—网站管理—网站集功能]下激活。
Hidden:值可以是True或False.该设置指定了这个Feature是否在Site Feature页面上显示。
DefaultResourceFile: 资源文件名字,Feature依赖它提供其它附加的配置信息。
<ElementManifests>元素:这个元素包含了另一个XML文件的位置,而这个文件包含的 <Elemnets>的内容是Feature要实现的。
然后我们在添加elements.xml文件,代码如下:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Id="SiteActionsToolbar" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="100" Title="Hello World" Description="使用feature方式自定义菜单" ImageUrl="_layouts/images/crtsite.gif">
<UrlAction Url="http://msdn.microsoft.com" />
</CustomAction>
</Elements>