自定义Feature及部署

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

<Feature Id="6098EC11-8128-409A-8D2C-414E93F67DD4" 

 

            Title="add my menu" 

 

            Description="this is a custom menu" 

 

            Version="1.0.0.0" 

 

            Scope="Site" 

 

            Hidden="FALSE" 

 

            DefaultResourceFile="customDocumentLibrary" 

 

            xmlns="http://schemas.microsoft.com/sharepoint/">

 

            <ElementManifests>

 

                <ElementManifest Location="elements.xml" /> 

 

            </ElementManifests>

 

</Feature>
 
解释一下其中的内容,
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 文件中的 <ElementManifests> 元素,这个元素包含了另一个 XML 文件的位置,而这个文件包含的 <Elemnets> 的内容是 Feature 要实现的。 <ElementManifest> 元素指明了要使用一个名为 ProvisionedFiles.xml 的文件,以下是该文件的 <Elements> 元素内容。
 
 
下面是 Feature.xml 中指定的 elements.xml 内容:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

 <!-- create command link site setting page -->

 

 <!—第一个 -->

 <CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar"

    GroupId="ActionsMenu"

    Location="Microsoft.SharePoint.StandardMenu"

    Sequence="1000"

ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG"

    Title="匿名开启/关闭的设置">

    <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/>

 </CustomAction>

 

 <!—第二个 -->

<CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar1"

    GroupId="SiteActions"

    Location="Microsoft.SharePoint.StandardMenu"

    Sequence="1000"

ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG"

    Title="匿名开启/关闭的设置">

    <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/>

 </CustomAction>

 

 <!—第三个 -->

<CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar3"

    GroupId="Customization"

    Location="Microsoft.SharePoint.SiteSettings"

    Sequence="306"

 

    Title="匿名开启/关闭的设置">

    <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/>

 </CustomAction>

 

 <!—第四个 -->

<CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar"

    GroupId="NewMenu"

    Location="Microsoft.SharePoint.StandardMenu"

    Sequence="1000"

ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG"

    Title="匿名开启/关闭的设置">

    <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/>

 </CustomAction>

 

 <!—第五个 -->

  <CustomAction Id="ECBItemToolbar"

      Id="UserInterfaceLightUp.ECBItemToolbar"

    RegistrationType="List"

   RegistrationId="101"

       Location="EditControlBlock"

    Sequence="106"

       Title="匿名开启/关闭的设置">

<UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/>

       </CustomAction>

</Elements>

 
其中第一个 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值