LibrarySites.Banner

Important Pipelines in the Sitecore ASP.NET CMS

This blog post describes and links to resources about what I consider to be the most important pipelines in the Sitecore ASP.NET CMS. For more information about pipelines, see my blog post All About Pipelines in the Sitecore ASPNET CMS.

There are too many pipelines to list here, and to be honest, I don't know what all of them do. Please review the relevant section of the web.config file for more options and details.

In the /configuration/sitecore/pipelines section of the web.config file, some of the key pipelines include:

In the /configuration/sitecore/processors section of the web.config file, some of the key pipelines include:

  • <uiAddFromTemplate>: Add an item based on a data template, branch template or command template.
  • <uiCopyItems>: Copy an item and its descendants.
  • <uiCloneItems>: Clone an item and its descendants.
  • <uiDeleteItems>: Delete an item and its descendants.
  • <uiDragItemTo>: Invoked when a user drags and drops an item to move it.
  • <uiDuplicateItem>: Invoked to duplicate an item.
  • <uiMoveItems>: Invoked to move an item and its descendants.
  • <uiRenameItem>: Invoked to rename an item.
  • <uiGetMasters>: Determines the insert options allowed for an item. Update 29.March.2012: for more information about insert options see the blog post All About Insert Options in the Sitecore ASP.NET CMS.
  • <loggingin>: When logging in.
  • <loggedin>: After login. For an example of a <loggedin> pipeline processor, see my blog post Randomize Sitecore Desktop Background Image. Update 8.Feb.2013: and Automatically Show the Quick Info Section in the Content Editor of the Sitecore ASPN.ET CMS.
  • <logout>: Implements logout.
  • <saveUI>: When a CMS user saves an item.
  • <uiUpload>: Upload a media item.
  • Hi John  Is there any official Sitecore documentation on the pipelines, when they are fired and in what order?  Aside from this blog article and a few others on the web, I have not been able to find much info in this. Seems like most people seem to trial and error with guess work. Seems a bit crazy not having this officially documented, kinda like Microsoft saying "we're not gonna tell you what the page lifecycle is, have a stab in the instead" :)

  • @Kamruz: The short answer is no, Sitecore provides no such documentation. I have longer answers, but I don't think they add any specific value to this discussion. You are welcome to ask me questions on this topic, but I can never be sure of my answers, especially as some details change between versions, and some of the calls to pipelines are in obfuscated assemblies. One tip I can suggest is to add a processor to a pipeline and log the stack trace - sometimes that will explain what calls it. You can also use a tool like .NET Reflector and search for the name of a pipeline within the code (the third button/toggle after the search field - not searching for a class name, not searching for a member name, but searching in the code for a token, where that token is the name of the pipeline). It may be unfortunate, but these are honestly the techniques that I use.

  • Seems to be the same technique that I am using too :)  Except that it is very buggy and time consuming having to trial and error this every time! This *really* should be documented. Can this be raised with someone to create some documentation around this?

  • @Kamruz: The footer of every page on at http://sdn.sitecore.net provides an email address that you can use to request things like this from the documentation team. I recommend that you send a message there, and if you don't get any kind of commitment, contact a Sitecore rep for your region using www.sitecore.net/.../Contact.aspx. Without some pressure from the community, I don't think Sitecore will prioritize this effort.

  • Thanks John, I'll get a few people to email them :)  I think there is a lot of potential in the pipelines, and having some concrete documentation would help open up a world of possibilities for everyone since we would then understand (and know about) the different events.

  • John - I have an interesting use case from a customer - they want to perform a bulk file upload that will (1) extract some meta data about the file from the filename, and (2) create permissions on the items based on the meta data...there will likely be a "confirmation" screen that appears after the upload is complete.  Is there a way to plug into the pipeline for the advanced file upload and perform these actions?

  • Ok, so I got through the first part...creating an item template an adding the fields I needed, then plugging into the pipeline to  retrieve the data and create the custom item.....I am still struggling with the confirmation screen to display after the save is processed...can you point me in the right direction?

  • @Brian: To be honest, I am not very familiar with the uiUpload pipeline. It would probably be better to look into this on the SDN forums so that we can attach code and post links and more than 2,000 characters. Can you describe the problem here and comment on this blog post with a link to that post?  sdn.sitecore.net/.../ShowForum.aspx

  • Awesome blog! Good info and right to the point. I really enjoy this site! I also have a blog, but for me it is just the beginning. Please, come to visit my site. Maybe you will like it.

  • Im obliged for the post.Really looking forward to read more. Really Great.

  • TNHLdk Thank you for your blog post.Thanks Again.

  • Not as much information as here, but just realised a document about pipelines was added to SDN: sdn.sitecore.net/.../Sitecore Pipelines.aspx

  • Is there a bulk update option in sitecore or will one be available soon?  If not, what is the recommended bulk updater tool that works well with sitecore.  Such as needed to tag 15 different files with same update, or being able to delete the same tag in 20 different files all in the content tree?