public void Process(WildcardItemUrlArgs args) { if (args.HasOverride || !args.Item.InheritsTemplate(EventConfigSettings.EventTemplateID) || Sitecore.Context.Item == null) { return; } var settingItem = Sitecore.Context.Database.GetItem(EventConfigSettings.EventCalendarSettingItem); if (settingItem != null) { if (settingItem.Fields["Fallback Events Detail Page"] != null && !settingItem.Fields["Fallback Events Detail Page"].Value.IsNullOrEmpty()) { var fieldId = settingItem.Fields["Fallback Events Detail Page"].ID; if (!fieldId.IsNull) { Item detailItem = GetWildcardDetailPage(EventConfigSettings.EventLandingTemplateID, fieldId); if (detailItem != null) { args.Url = GetItemUrl(detailItem, args.Item, args.UrlOptions, args); args.HasOverride = true; } } } } }
public override string GetItemUrl(Item item, UrlOptions options) { var args = new WildcardItemUrlArgs(item, options) { BaseAction = base.GetItemUrl }; CorePipeline.Run(EventCalendar.Constants.Pipelines.OverrideItemUrl, args); if (args.HasOverride && !string.IsNullOrEmpty(args.Url)) { return(args.Url); } return(base.GetItemUrl(item, options)); }
protected string GetItemUrl(Item detailItem, Item targetItem, UrlOptions urlOptions, WildcardItemUrlArgs args) { var friendlyUrl = GetFriendlyUrl(targetItem); return(args.BaseAction(detailItem, urlOptions) .Replace(Constants.Wildcard.UrlToken, friendlyUrl) .Replace(Constants.Wildcard.Node, friendlyUrl)); }