SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Actions Within Share Point

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    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

    1 Favorite

    SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Actions Within Share Point - Presentation Transcript

    1. Introduction to Developing Custom Actions within SharePointGeoff Varosky
    2. About Me
      Geoff Varosky MCP, MCTS
      Senior Solutions Developer for Grace-Hunt, LLC.
      Blog: http://www.geoffvarosky.com
      Email: gvarosky@grace-hunt.com
      Twitter: @gvaro
    3. About Grace-Hunt
      Founded in 2004
      Based in Hudson, MA
      Presence in North East, Mid Atlantic, and South East Regions
      Senior Level Staff
      Microsoft Gold Partner
      Specializing in SharePoint and Dynamics (CRM, SL, GP, NAV)
      Web: http://www.grace-hunt.com
    4. Agenda
      What are Custom Actions?
      Demonstrations
      Creating a Simple Custom Action
      Anatomy of a Custom Action
      Creating a Slightly More Complex Custom Action
      Hiding Custom Actions
      Custom Action Groups
      References
      Q&A
    5. Just What Are Custom Actions?
      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
    6. Just What Are Custom Actions?
      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
    7. Just What Are Custom Actions?
      What does that mean?
      Custom Actions can be bound to File Types
      Example: ‘Edit in Microsoft Word’ bound to Word (.doc, .docx, etc.) document types
    8. Just What Are Custom Actions?
      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)
    9. What Can Custom Actions Do?
      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?)
    10. Examples
      Toolbars
    11. Examples
      Site Actions Menu
    12. Examples
      Site Settings
    13. Examples
      Site Settings (Custom Action Group)
    14. Examples
      Edit Control Block (ECB)
    15. Examples
      Central Administration Pages
    16. What Can Custom Actions Do?
      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)
    17. What Can Custom Actions Do?
      …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)
    18. What Tools Are Needed?
      Notepad!
      What do I use?
      Visual Studio
      Andrew Connell’s SharePoint Project Utility for Visual Studio
      http://snipurl.com/d8yv9
      Requires DevExpress DX Core to be installed (free)
      WSPBuilder (CodePlex)
      http://snipurl.com/d8yxv
      SharePoint Solution Installer (CodePlex)
      http://snipurl.com/nt6ux
    19. Demo
      Creating a Simple
      Custom Action
    20. Anatomy of a Custom Action
      Feature Definition (feature.xml)
    21. Anatomy of a Custom Action
      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.....
    22. Anatomy of a Custom Action
      Element Manifest (manifest.xml)
    23. Anatomy of a Custom Action
      <CustomAction
      ContentTypeId = "Text"
      ControlAssembly = "Text"
      ControlClass = "Text"
      ControlSrc = "Text"
      Description = "Text"
      GroupId = "Text"
      Id = "Text"
      ImageUrl = "Text"
      Location = "Text"
      RegistrationId = "Text"
      RegistrationType = "Text"
      RequireSiteAdministrator = "TRUE" | "FALSE"
      Rights = "Text"
      Sequence = "Integer"
      ShowInLists = "TRUE" | "FALSE"
      ShowInReadOnlyContentTypes = "TRUE" | "FALSE"
      ShowInSealedContentTypes = "TRUE" | "FALSE"
      Title = "Text">
      </CustomAction>
    24. Anatomy of a Custom Action
      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
    25. Anatomy of a Custom Action
      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
    26. Anatomy of a Custom Action
      RegistrationId(optional)
      • Specifies the registration attachment for a per-item action
      • Example (List Identifier – Task List): 107 (http://snipurl.com/ntd5g)
      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
    27. Anatomy of a Custom 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).
    28. Anatomy of a Custom Action
      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/ntcz5
    29. Anatomy of a Custom Action
      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
    30. Anatomy of a Custom Action
      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 (http://snipurl.com/ntcjc)
      • 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
    31. Demo
      Creating a Slightly More Complex Custom Action
    32. Demo
      Hiding Custom Actions
    33. Demo
      Custom Action Groups
    34. Resources
      My Blog
      http://www.geoffvarosky.com
      Click on SharePoint Saturday category on left side of page
      GraceHunt.SharePointCodePlex 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
    35. Resources
      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
    36. Q&A
    37. About Me
      Geoff Varosky MCP, MCTS
      Senior Solutions Developer for Grace-Hunt, LLC.
      Company: http://www.grace-hunt.com
      Blog: http://www.geoffvarosky.com
      Email: gvarosky@grace-hunt.com
      Twitter: @gvaro

    + Geoff VaroskyGeoff Varosky, 4 months ago

    custom

    586 views, 1 favs, 0 embeds more stats

    Updated presentation from my SharePoint Saturday Bo more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 586
      • 586 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories