Posted by chrissyz on June 6, 2009
It has been a while since last time I blogged. And I do feel bad about being ignorant of my blog for such a long time. So this time I am gonna show some code to feed those hungry souls. Today I would like to talk about adding a list menu item through feature. This example is to add a menu item in a calendar list.
We all know a feature includes two files, feature.xml and elements.xml
In our feature.xml, nothing special, it will look like any other normal
feature.xml
<?xml version=“1.0“encoding=“utf-8“?>
<Feature Id=“GUID”
Title=”Calender list Menu“
Description=“Creates Custom Action in Calender list item menu”
Version=“12.0.0.0″
Hidden=“TRUE”
Scope=“Site“
xmlns=“http://schemas.microsoft.com/sharepoint/“>
<ElementManifests>
<ElementManifest Location=“elements.xml“/>
</ElementManifests>
</Feature>
Then comes the elements.xml
<?xml version=“1.0“encoding=“utf-8“?>
<Elements xmlns=“http://schemas.microsoft.com/sharepoint/“>
<CustomAction
Id=“F699684E-3127-428e-BF2B-EA71CA6E36C8“
RegistrationType=“List“
RegistrationId=“106“
Location=“EditControlBlock“
Sequence=“1000“
Title=“Calendar Custom Action“>
<UrlAction
Url=“~site/YourPageLibrary/YourCustomPage.aspx?ID={ItemId}&List={ListId}“/>
</CustomAction>
</Elements>
RegistrationType can be “ContentType”, “FileType” (for example if you only want your feature appear to .xsn file), list and Prog ID.
The RegistrationID element is used to specifiy the ID of RegistrationType. If RegistrationType is “ContentType”, to get Registration ID, open the document library settings, in the ContentType section click on the content type you
choose, then grab the hex string in the url after “ctype=” parameter.
If you use FileType as RegistrationType, then just add the “.doc” or “.xls” etc in the RegistrationID
If the RegistrationType is list or ProgID, John Holiday has a blog summarized all the RegistrationID, look it up!