Skip to content

Instantly share code, notes, and snippets.

@hishaamn
Last active May 17, 2018 17:09
Show Gist options
  • Save hishaamn/eacd1093119045e56d42bf20a61985e9 to your computer and use it in GitHub Desktop.
Save hishaamn/eacd1093119045e56d42bf20a61985e9 to your computer and use it in GitHub Desktop.
private readonly ID clickPageEventCategoryItemId = new ID("Item ID of the Content Event Click");
public void OnItemSaved(object sender, EventArgs args)
{
var savedItem = Event.ExtractParameter(args, 0) as Item;
if (savedItem == null || savedItem.Database.Name.ToLower() != "master")
{
return;
}
var itemId = savedItem.ID.ToGuid().ToString();
var clickEventName = $"{itemId}_click";
var clickEventItem = savedItem.Database.SelectSingleItem($"/sitecore/system/Settings/Analytics/Page Events/Content Events Click/*[@@Name = '{itemId}_click']");
if (clickEventItem != null)
{
return;
}
savedItem.Fields.ReadAll();
Sitecore.Data.Fields.CheckboxField trackPerformanceField = savedItem.Fields["Track Performance"];
if (!trackPerformanceField.Checked)
{
return;
}
var clickPageEventCategoryItem = savedItem.Database.GetItem(this.clickPageEventCategoryItemId);
using (new EventDisabler())
{
using (new SecurityDisabler())
{
clickEventItem = clickPageEventCategoryItem.Add(clickEventName, new TemplateID(PageEventItem.TemplateID));
var clickPageEventItem = PageEventItem.Create(clickEventItem);
clickPageEventItem.BeginEdit();
clickPageEventItem.IsSystem = true;
clickPageEventItem.EndEdit();
using (new EditContext(clickEventItem))
{
clickEventItem.Fields[FieldIDs.WorkflowState].Value = "EDCBB550-BED3-490F-82B8-7B2F14CCD26E";
clickEventItem.Fields[FieldIDs.DisplayName].Value = clickEventName;
clickEventItem.Fields[PageEventItem.FieldIDs.Points].Value = "0";
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment