It's not a pipeline, but you could use the item:saved
event's event args' ItemChanges
property for this.
Basically, you would:
Check to see if the item saved was of the template you are looking for
var savedItem = Event.ExtractParameter(args, 0) as Item;
if (savedItem == null || savedItem.TemplateID != new ID("YOUR-TEMPLATE-ID"))
return;
Check to see if one of the Sitecore.Data.Items.ItemChanges
was the Sitecore.FieldIDs.LayoutField
or Sitecore.FieldIDs.FinalLayoutField
var itemChanges = Event.ExtractParameter(args, 1) as ItemChanges;
if (itemChanges == null || !itemChanges.HasFieldsChanged || (!itemChanges.IsFieldModified(FieldIDs.LayoutField) && !itemChanges.IsFieldModified(FieldIDs.FinalLayoutField)))
return;
Check to see if the difference between the two includes adding the rendering you care about
- Add your other renderings
Note that this will fire every time anything is saved in Sitecore (including the changes you make at step 4 above!), so make sure you put in checks early to get out if your code isn't going to apply.
item:saved
oritem:saving
events fire. Sitecore has no specific pipeline for individual types of item changes.