public override void Process(GetPageItemArgs args) { if (AbortProcessor(args)) { return; } args.Result = _context.Item; }
public override void Process(GetPageItemArgs args) { Assert.ArgumentNotNull(args, "args"); if (args.Result != null) { return; } args.Result = this.ResolveItem(args); }
/// <summary> /// Indicates whether the request should be ignored. /// </summary> /// <param name="args">The pipeline arguments.</param> /// <returns></returns> private bool IgnoreRequest(GetPageItemArgs args) { return(Context.Site == null || Context.Domain == null || Context.Item == null || Context.Database == null || args.Result != null || Configuration.IgnoreSites.Count != 0 && Configuration.IgnoreSites.Contains(Context.Site.Name.ToLower()) || Context.Domain.Name.Equals(Constants.Sitecore.DefaultDomain, StringComparison.InvariantCultureIgnoreCase) && Context.Site.DisplayMode != DisplayMode.Edit || Context.Database.Name.Equals(Constants.Sitecore.CoreDatabse, StringComparison.InvariantCultureIgnoreCase) || Context.Item.IsWilcard()); }
protected virtual bool WildvardResolvingPossible(GetPageItemArgs args) { if (args?.Result == null || Context.Site == null || Context.Database == null || Context.Database.Name == "core") { return(false); } return(WildcardManager.Current.HasWildcardsPath(args.Result)); }
protected virtual Item ResolveItem(GetPageItemArgs args) { if (args.Result == null) { return null; } var route = WildcardManager.Current.GetWildcardRouteForItemResolver(args.Result, Context.Site); return WildcardItemResolver.Current.ResolveItem(args.Result, route); }
protected virtual Item ResolveItem(GetPageItemArgs args) { if (args.Result == null) { return(null); } WildcardRouteItem route = WildcardManager.Current.GetWildcardRouteForItemResolver(args.Result, Context.Site); return(WildcardItemResolver.Current.ResolveItem(args.Result, route)); }
protected virtual bool WildvardResolvingPossible(GetPageItemArgs args) { if (args == null || args.Result == null || Context.Site == null || Context.Database == null || Context.Database.Name == "core") { return false; } if (!WildcardManager.Current.HasWildcardsPath(args.Result)) { return false; } return true; }
public override void Process(GetPageItemArgs args) { if (!WildvardResolvingPossible(args)) { return; } HttpContext.Current.Items[OriginalItemCacheKey] = args.Result; Item resolvedItem = ResolveItem(args); if (resolvedItem != null) { args.Result = resolvedItem; } }
private bool AbortProcessor(GetPageItemArgs args) { if (!_context.Items.Contains(Constants.CustomContextItemKey)) { return(true); } if (_context.Item == null) { return(true); } if (args.Result != null) { return(true); } return(false); }
public override void Process(GetPageItemArgs args) { if (!this.WildvardResolvingPossible(args)) { return; } HttpContext.Current.Items[OriginalItemCacheKey] = args.Result; var resolvedItem = this.ResolveItem(args); if (resolvedItem != null) { args.Result = resolvedItem; } }
protected new virtual Item ResolveItem(GetPageItemArgs args) { string path = this.GetPath(args.RouteData); if (string.IsNullOrEmpty(path)) { return(null); } Item wildcardItem = this.GetItem(path, args); if (wildcardItem == null) { return(null); } if (!WildCardProvider.IsWildcardItem(wildcardItem)) { return(wildcardItem); } ReferenceField datasourceReference = wildcardItem.Fields[Templates.WildCard.Fields.WildCardDatasourceField]; if (datasourceReference == null || datasourceReference.TargetItem == null) { return(wildcardItem); } if (HttpContext.Current.Items.Contains(Templates.WildCard.Fields.ContextItemKey)) { HttpContext.Current.Items[Templates.WildCard.Fields.ContextItemKey] = wildcardItem; } else { HttpContext.Current.Items.Add(Templates.WildCard.Fields.ContextItemKey, wildcardItem); } string itemRelativePath = StringUtil.EnsurePrefix('/', WildCardProvider.GetWildCardItemRelativeSitecorePathFromUrl(path, wildcardItem)); string itemPath = string.Concat(datasourceReference.TargetItem.Paths.FullPath, itemRelativePath); string[] pathSegments = itemPath.Split('/'); return(WildCardProvider.GetDatasourceItem(string.Join("/", pathSegments.Take(pathSegments.Length - 1)), pathSegments.LastOrDefault())); }
/// <summary> /// Processes the specified GetPageItem pipeline arguments. /// </summary> /// <param name="args">The pipeline arguments.</param> public override void Process(GetPageItemArgs args) { Assert.ArgumentNotNull(args, nameof(args)); // Ignore requests if it should not be applied (see method for details). if (this.IgnoreRequest(args)) { return; } // Get cache to determine if item has been resolved var isResolved = MainUtil.GetBool(Context.Items[Constants.CustomUrlResloverCacheKey], false); if (isResolved) { // Item has previously been resolved args.Result = Context.Item; } }
protected new virtual Item ResolveItem(GetPageItemArgs args) { string path = this.GetPath(args.RouteData); if (string.IsNullOrEmpty(path)) { return null; } Item wildcardItem = this.GetItem(path, args); if (wildcardItem == null) { return null; } if (!wildcardItem.IsWildcardItem()) { return wildcardItem; } ReferenceField datasourceReference = wildcardItem.Fields[AppConstants.WildcardDatasourceField]; if (datasourceReference == null || datasourceReference.TargetItem == null) { return wildcardItem; } if (HttpContext.Current.Items.Contains(AppConstants.ContextItemKey)) { HttpContext.Current.Items[AppConstants.ContextItemKey] = wildcardItem; } else { HttpContext.Current.Items.Add(AppConstants.ContextItemKey, wildcardItem); } string itemRelativePath = StringUtil.EnsurePrefix('/', WildcardProvider.GetWildCardItemRelativeSitecorePathFromUrl(path, wildcardItem)); string itemPath = string.Concat(datasourceReference.TargetItem.Paths.FullPath, itemRelativePath); string[] pathSegments = itemPath.Split('/'); return WildcardProvider.GetDatasourceItem(string.Join("/", pathSegments.Take(pathSegments.Length - 1)), pathSegments.LastOrDefault()); }