背景:
         需求:需要对document中的author进行修改。

分析:
       1,sdk中显示该属性为只读的,无法修改。于是只好新建了另一个字段来做当Author。
       2,怎么修改?添加menu在menu bar里面,然后再弹出一个新的窗口来修改。
       3,用户先选中需要修改的item,然后通过点击menu实现。

实现:
       本文先描述添加Menu的过程。

1,  在该目录下: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES新建DocumentEditAuthor的目录,首先新建Feature.xml(必须)。

 

对Document library中修改文档的Author之利用Feature添加新的Menu (一)<?xml version="1.0" encoding="utf-8"?>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<Feature  Id="619d2b43-47df-46ae-89e3-af5b43abbcc4"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Title
="Edit Author Actions"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Description
="A Feature with Update document author menu"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Version
="1.0.0.0"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Hidden
="FALSE"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Scope
="Web"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          xmlns
="http://schemas.microsoft.com/sharepoint/">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
<ElementManifests>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        
<ElementManifest Location="MenuItem.xml" />
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
</ElementManifests>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</Feature>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)


2,  然后新建另一个文件MenuItem.xml(根据ElementManifest location的内容)。

对Document library中修改文档的Author之利用Feature添加新的Menu (一)<?xml version="1.0" encoding="utf-8" ?> 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<CustomAction Id="MyCustomSelectedMenuAction" 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   RegistrationType
="List"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   RegistrationId
="101"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   GroupId
="ActionsMenu"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Location
="Microsoft.SharePoint.StandardMenu"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Sequence
="1001"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Title
="Update Selected对Document library中修改文档的Author之利用Feature添加新的Menu (一)"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   ImageUrl
="/_layouts/images/completeallwftasks.gif"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Description
="Update selected document author.">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   
<UrlAction Url="javascript:GotoEditAuthor(0,' + {ListId} + ')"/>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</CustomAction> 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<CustomAction Id="MyCustomAllMenuAction" 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   RegistrationType
="List"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   RegistrationId
="101"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   GroupId
="ActionsMenu"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Location
="Microsoft.SharePoint.StandardMenu"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Sequence
="1002"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Title
="Update All对Document library中修改文档的Author之利用Feature添加新的Menu (一)"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   ImageUrl
="/_layouts/images/menuEditItem.gif"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   Description
="Update all document author.">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)   
<UrlAction Url="javascript:GotoEditAuthor(1,' + {ListId} + ')"/>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</CustomAction> 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</Elements> 
对Document library中修改文档的Author之利用Feature添加新的Menu (一)

注意, 在UrlAction Url里面可以直接写某目录下的文件, 同时可以是javascript。

3,  发布该Feature.
stsadm.exe –o installfeature –name DocumentEditAuthor –force.
stsadm.exe –o activatefeature –name DocumentEditAuthor –url http://WebName/Docs/ -force.

4,  IISRESET.

效果:
对Document library中修改文档的Author之利用Feature添加新的Menu (一)

这里再描述另一种显示在item上的menu。
1,  同样在Feature下建一个目录DocumentExpire,然后Feature:

对Document library中修改文档的Author之利用Feature添加新的Menu (一)<?xml version="1.0" encoding="utf-8"?>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<Feature  Id="A7A2885A-64B8-49F0-955B-7D976D6E293B"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Title
="Extended List Actions"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Description
="Expire Item"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Version
="1.0.0.0"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Hidden
="FALSE"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          Scope
="Web"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)          xmlns
="http://schemas.microsoft.com/sharepoint/">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
<ElementManifests>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        
<ElementManifest Location="Actions.xml" />
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
</ElementManifests>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</Feature>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)

2,  Actions.xml的文件:

对Document library中修改文档的Author之利用Feature添加新的Menu (一)<?xml version="1.0" encoding="utf-8"?>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
<CustomAction
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        
Id="CustomExpireItem"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        Location
="EditControlBlock"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        Title
="Expire Item "
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        ImageUrl
="/_layouts/images/GORTL.GIF"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        Sequence
="300"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        RegistrationType
="ContentType"
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        RegistrationId
="0x01">
对Document library中修改文档的Author之利用Feature添加新的Menu (一)        
<UrlAction Url="~site/_layouts/ExpireItemFolder/ExpireItem.aspx?List={ListId}&amp;ID={ItemId}"/>   
对Document library中修改文档的Author之利用Feature添加新的Menu (一)    
</CustomAction>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)
</Elements>
对Document library中修改文档的Author之利用Feature添加新的Menu (一)


3, 发布该Feature:
stsadm.exe –o installfeature –name DocumentExpire –force.
stsadm.exe –o activatefeature –name DocumentExpire –url http://WebName/Docs/ -force

4,  IISRESET

效果:
对Document library中修改文档的Author之利用Feature添加新的Menu (一)

不同的menu,注意RegistrationType和RegistrationId。

关于Guid 可以通过 http://www.famkruithof.net/uuid/uuidgen很方便的生成。
关于Feature的详细内容,参考: http://msdn2.microsoft.com/en-us/library/ms473643.aspx

相关文章:

  • 2021-07-13
  • 2022-01-10
  • 2021-12-18
  • 2021-11-22
  • 2022-12-23
  • 2021-11-01
  • 2022-01-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
  • 2021-11-03
  • 2022-12-23
相关资源
相似解决方案