自定义Feature及部署

这个菜单是用 Feature 部署上去的功能,先提一下 Feature 的作用:
微软在 MOSS 中利用 Feature 的特性,可以将 Feature.xml 中以特定格式描述的功能部署到 MOSS 中,这些功能包括工作流,菜单项,网站栏、内容类型 ... 等等。然后可以在 MOSS 中配置启用或者停用这些功能,由于这个特性不需要进行代码开发,只需要配置 Feature.xml 和其中指定的另一个 xml ,方法简单可行。
Feature.xml 如下:
 

 
解释一下其中的内容,
Id GUID 类型标示的唯一值,可以由 VS 自带的 GUID Generator 来生成,
Tiltle 是功能标题, Version 是版本号, Description: description 的描述,
Scope : 其值可以是 Web Site, 它指明了这个 Feature 是应用于整个的 Site Collection 还是仅仅用于单独的一个子站点。
Hidden: 值可以是 True False. 该设置指定了这个 Feature 是否在 Site Feature 页面上显示。 DefaultResourceFile: 资源文件名字, Feature 依赖它提供其它附加的配置信息。
AlwaysForceInstall : 这个属性设置为 true 可以在重复安装这个 feature 中自动覆盖原来安装的那个相同的 feature. Feature.xml 文件中的 元素,这个元素包含了另一个 XML 文件的位置,而这个文件包含的 的内容是 Feature 要实现的。 元素指明了要使用一个名为 ProvisionedFiles.xml 的文件,以下是该文件的 元素内容。
 
 
下面是 Feature.xml 中指定的 elements.xml 内容:


 

 

 

 

    

 

 

 



    

 

 

 



    

 

 

 



    

 

 

 

  



       



 
其中第一个 CustomAction Action 下拉菜单下创建了一个自定义菜单项 .
第二个 CustomAction 在页面的 Site Action 菜单下增加了一个用户自定义菜单项 .
第三个 CustomAction Site Setting 页面中的 LOOK AND FEEL 标题下创建了一个自定义链接 .
第四个 CustomAction 在文档库的 New 下拉菜单下创建了一个自定义菜单项 .
第五个 CustomAction 是在文档库的每个列表项的菜单上增加一个菜单项
 
RegistrationId: 定义于哪种类型 ( 参照 RegistrationId 列表 )
Location groupid 两个属性分别指定该 feature 是定义了哪两个菜单 .
  Sequence 属性指定新增加的菜单项在这个菜单中的排序,设置的大一点该菜单项排列就靠后 .
  Title Description 分别是该菜单项的标题和描述 .
  UrlAction 属性指定了该菜单项的连接到的页面 , 当然了 , 这个 demo 连接到的是我们在第一步中建立那个页面 . 这里有一个相对路径的问题 ,~site 表示站点的主目录 , ~sitecollection  表示站点集的主目录 . 因为我的 demo 是做在一个站点集下面的 , 所以采用 ~sitecollection 后面是连接文件的相对路径 ..
 
再做俩个批处理文件来部署和卸载这个 Feature
部署批处理文件 InstallFeature.bat
 
@rem======================================================================

@rem

@rem    InstallFeature.bat

@rem

@rem======================================================================

@echo off

setlocal

pushd .

goto InstallFeature



@rem----------------------------------------------------------------------

@rem   InstallFeature

@rem----------------------------------------------------------------------

:InstallFeature

    set SPAdminTool=%CommonProgramFiles%/Microsoft Shared/web server extensions/12/BIN/stsadm.exe

    set TargetUrl=http://huijianming

    set FeaturePath=menu/Feature.xml

   

    echo InstallFeature %FeaturePath% 

    "%SPAdminTool%" -o installfeature -filename %FeaturePath% -force

    echo Activating feature %FeaturePath% 

    "%SPAdminTool%" -o activatefeature -filename %FeaturePath% -url %TargetUrl% -force

    echo iisreset

    iisreset

 
卸载批处理文件 UnInstallFeature.bat
@rem======================================================================

@rem

@rem    UnInstallFeature.bat

@rem

@rem======================================================================

@echo off

setlocal

pushd .

goto UnInstallFeature

 

@rem----------------------------------------------------------------------

@rem   UnInstallFeature

@rem----------------------------------------------------------------------

:UnInstallFeature

    set SPAdminTool=%CommonProgramFiles%/Microsoft Shared/web server extensions/12/BIN/stsadm.exe

    set TargetUrl=http://eip.brc.com.cn:81/bbs

     set FeaturePath=BBSMySiteAction1/Feature.xml

   

    echo InstallFeature %FeaturePath% 

    "%SPAdminTool%" -o uninstallfeature -filename %FeaturePath% -force

   

    echo iisreset

    iisreset

将以上的两个 XML 放到 Menu 的文件夹中,然后将文件夹拷贝到 C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES
运行部署批处理文件
 
 
RegistrationId 列表 :
InvalidType = -1
GenericList = 100    // 列表
DocumentLibrary = 101    // 文档库
Survey = 102
Links = 103
Announcements = 104
Contacts = 105
Events = 106
Tasks = 107
DiscussionBoard = 108 // 讨论板
PictureLibrary = 109
DataSources = 110
WebTemplateCatalog = 111
UserInformation = 112
WebPartCatalog = 113
ListTemplateCatalog = 114
XMLForm = 115
MasterPageCatalog = 116
NoCodeWorkflows = 117
WorkflowProcess = 118
WebPageLibrary = 119
CustomGrid = 120
DataConnectionLibrary = 130
WorkflowHistory = 140
GanttTasks = 150
Meetings = 200
Agenda = 201
MeetingUser = 202
Decision = 204
MeetingObjective = 207
TextBox = 210
ThingsToBring = 211
HomePageLibrary = 212
Posts = 301
Comments = 302
Categories = 303
Pages = 850 (thanks to Anders Jacobsen for this one)
IssueTracking = 1100
AdminTasks = 1200

你可能感兴趣的:(MOSS技术)