• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduction To Developing Custom Actions Within SharePoint
 

Introduction To Developing Custom Actions Within SharePoint

on

  • 23,455 views

Presentation delivered at SharePoint Saturday in Boston on 3/14/09

Presentation delivered at SharePoint Saturday in Boston on 3/14/09

Statistics

Views

Total Views
23,455
Views on SlideShare
23,192
Embed Views
263

Actions

Likes
10
Downloads
1
Comments
0

8 Embeds 263

http://sharepointitaly.blogspot.it 165
http://www.slideshare.net 90
http://static.slideshare.net 2
http://www.linkedin.com 2
http://e-presentations.us 1
https://twitter.com 1
http://www.sharepointitaly.blogspot.it 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Thank you for your time today.
  • Hidden=trueActivate and deactivate via CMD line – why? You do not want site admins, who you are hiding this from, to be able to deactivate the feature to delete the site!stsadm -o activatefeature -name SPS.HideCustomAction -url http://spsaturday.litwareinc.com
  • Record questions – post answers on my blog following SharePoint Saturday

Introduction To Developing Custom Actions Within SharePoint Introduction To Developing Custom Actions Within SharePoint Presentation Transcript

  • Geoff Varosky
  • – Geoff Varosky MCP, MCTS – Senior Solutions Developer for Grace-Hunt, LLC. – Company: http://www.grace-hunt.com – Blog: http://gvaro.spaces.live.com – Email: gvarosky@grace-hunt.com – Twitter: @gvaro
  • – What are Custom Actions? – Demonstrations • Creating a Simple Custom Action • Creating a Slightly More Complex Custom Action • Hiding Custom Actions • Custom Action Groups – References – Q&A
  • Per Microsoft – “A custom action represents a link, toolbar button, menu item, or any control that can be added to a toolbar or menu that a user sees. Custom actions can be bound to list type, content type, file type, or programmatic identifier (ProgID).” Source: http://snipurl.com/d8y70
  • What does that mean? – Custom Actions can be bound to List Types • A Custom Action can be bound to a Document Library, but, may not be bound to a Task List – Example: Check In/Check Out
  • What does that mean? – Custom Actions can be bound to File Types • Example: ‘Edit in Microsoft Word’ bound to Word (.doc, .docx, etc.) Document Content Types
  • What does that mean? – Custom Actions can be bound to Content Types • Example: Folders, Document Content Types, List Content Types, etc. – Programmatic Identifiers • Example: Task List Identifier (107)
  • Examples of Custom Actions • Edit Control Block (ECB Menu)
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu • Site Settings Page
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu • Site Settings Page • Central Administration Pages – Operations, Application Management
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu • Site Settings Page • Central Administration Pages – Operations, Application Management • Shared Service Provider Pages
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu • Site Settings Page • Central Administration Pages – Operations, Application Management • Shared Service Provider Pages • You get the idea…
  • Examples of Custom Actions • Edit Control Block (ECB Menu) • Toolbars • Site Actions Menu • Site Settings Page • Central Administration Pages – Operations, Application Management • Shared Service Provider Pages • You get the idea… (hopefully?)
  • But wait, there’s more! – Create links to pages that really should be there… • Example: There is a link to the Site Collection Recycle Bin on the Site Settings page, however, there is no link to the current site Recycle Bin. (Why? Who knows…) Never fear though – you can add one easily (Demo #1) – Custom Actions can pass along information to act upon • Example: Add a “Complete Task” action to an Edit Control Block, which calls an ASPX page, taking the parameters of the List ID and Item ID, and updating the task item within a list. (Demo #2)
  • …and more – Custom Actions can also be hidden • Example: You do not want site administrators to be able to delete their sites by using the Delete This Site link on the Site Settings page – so, we can remove it by using HideCustomAction (Demo #3) – Create Groupings of Custom Actions by using CustomActionGroup • Example: Create a grouping of your Custom Actions on the Site Settings page for all of your Custom Actions… (Demo #4)
  • – Notepad! – What do I use? • Visual Studio 2005/2008 • Andrew Connell’s SharePoint Project Utility for Visual Studio – http://snipurl.com/d8yv9 • WSPBuilder – http://snipurl.com/d8yxv
  • Creating a Simple Custom Action
  • Feature Definition (feature.xml)
  • Scope – Web – A “sub-site” – Only activates the feature on the specific web – Site – Site Collection – Applies to all webs within the site collection – Web Application – Applies to all site collections and webs within a web application – Farm – Applies to all web applications, site collections, etc.....
  • Element Manifest (manifest.xml)
  • <CustomAction ContentTypeId = quot;Textquot; ControlAssembly = quot;Textquot; ControlClass = quot;Textquot; ControlSrc = quot;Textquot; Description = quot;Textquot; GroupId = quot;Textquot; Id = quot;Textquot; ImageUrl = quot;Textquot; Location = quot;Textquot; RegistrationId = quot;Textquot; RegistrationType = quot;Textquot; RequireSiteAdministrator = quot;TRUEquot; | quot;FALSEquot; Rights = quot;Textquot; Sequence = quot;Integerquot; ShowInLists = quot;TRUEquot; | quot;FALSEquot; ShowInReadOnlyContentTypes = quot;TRUEquot; | quot;FALSEquot; ShowInSealedContentTypes = quot;TRUEquot; | quot;FALSEquot; Title = quot;Textquot;> </CustomAction>
  • Id (optional) – Specifies a unique identifier for custom action – May be a GUID or a unique term – Example: DeleteWeb GroupID (optional) – Identifies the unique group that this element is contained in – Example: SiteAdministration
  • Location (optional) – Specifies the location for this custom action – Example: Microsoft.SharePoint.SiteSettings RegistrationType (optional) – Specifies the list, item content type, file type, or programmatic identifier that this action is associated with – Example: List
  • RegistrationId (optional) – Specifies the registration attachment for a per-item action – Example (List Identifier – Task List): 107 Title (required) – Specifies the name of your action – Example: DeleteWeb Description (optional) – Longer description for action which is shown as a tooltip or sub- description (where applicable) for the action
  • Sequence (optional) – The order in which your action will appear. – If not specified, displayed in the order it is read by SharePoint by Feature and by order in element listing (XML).
  • Permissions – RequireSiteAdministrator (optional) – Boolean (True or False) – Cannot be used on ECB menu list items – Rights – Specify rights needed for this Custom Action to be visible – Example: “ApproveItems,DeleteListItems” – Possible Values http://snipurl.com/d8z2l
  • UrlAction Tokens – ~site – References the current SPWeb context – ~sitecollection – References the current SPSite context – {ItemId} – GUID of the item action is called from – {ItemUrl} – URL of the item the action is called from
  • UrlAction Tokens – {ListId} – GUID representation of the list – {SiteUrl} – References the URL of the SPWeb context the action is called from – {RecurrenceId} – Unsupported in context menus – Source URL – This token is not available, but there is a way to get it via JavaScript, which we will see in Demo #2 – http://snipurl.com/d8zb6
  • Creating a Slightly More Complex Custom Action
  • Hiding Custom Actions
  • Custom Action Groups
  • – My Blog • http://gvaro.spaces.live.com – GraceHunt.SharePoint CodePlex Projects • http://codeplex.com/GraceHunt – John Holliday’s Custom Action Resources • Hiding Custom Actions, and a Utility to get all custom action identifiers http://snipurl.com/d8zea
  • – MSDN • Custom Action Definitions – http://snipurl.com/d8zi7 • Default Custom Action Locations and IDs – http://snipurl.com/d8zka • How to: Add Custom Actions to the User Interface – http://snipurl.com/d8zq2 • CustomAction Element – http://snipurl.com/d9jd4 • CustomActionGroup Element – http://snipurl.com/d9jfx • HideCustomAction Element – http://snipurl.com/d9jhs
  • Q&A
  • – Geoff Varosky MCP, MCTS – Senior Solutions Developer for Grace-Hunt, LLC. – Company: http://www.grace-hunt.com – Blog: http://gvaro.spaces.live.com – Email: gvarosky@grace-hunt.com – Twitter: @gvaro