Esempio n. 1
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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));
        }