public override void Process(ItemResolverArgs args)
 {
     args.PrototypeItem = GetPrototypeItem(args.OriginalItem.ID, args);
     if (args.PrototypeItem != null)
     {
         args.AbortPipeline();
     }
 }
示例#2
0
        public override void Process(ItemResolverArgs args)
        {
            var excluded = args.Settings.ExecludePaths.Select(i => i.ToLower(CultureInfo.CurrentCulture)).Contains(args.OriginalItem.Parent.Paths.FullPath.ToLower(CultureInfo.CurrentCulture));

            if (excluded)
            {
                args.AbortPipeline();
            }
        }
        public override void Process(ItemResolverArgs args)
        {
            args.FilePath = GetFilePath(args.OriginalItem.Paths.FullPath, args);

            if (!string.IsNullOrEmpty(args.FilePath))
            {
                args.AbortPipeline();
            }
        }
        private static string GetFilePath(string itemPath, ItemResolverArgs args)
        {
            itemPath = itemPath.Replace("/sitecore/layout/", string.Empty);
            var index   = itemPath.IndexOf('/');
            var section = itemPath.Substring(0, index);

            var relativePath = itemPath.Replace(section + "/", "/Prototype/" + section + "/") + ".html";

            var filePath = HttpContext.Current.Server.MapPath(relativePath);

            return(File.Exists(filePath) ? filePath : string.Empty);
        }
        private static Item GetPrototypeItem(ID itemId, ItemResolverArgs args)
        {
            if (args.Settings.IdMappings.ContainsKey(itemId.ToString()))
            {
                itemId = new ID(args.Settings.IdMappings[itemId.ToString()]);

                var newItem = Context.Database.GetItem(itemId);
                if (newItem != null)
                {
                    return(newItem);
                }
            }

            return(null);
        }
        private static Item GetPrototypeItem(string itemPath, ItemResolverArgs args)
        {
            var prototypePath = GetPath(itemPath, args.Settings);

            if (!prototypePath.Equals(itemPath, StringComparison.OrdinalIgnoreCase))
            {
                var newItem = Context.Database.GetItem(prototypePath);
                if (newItem != null)
                {
                    return(newItem);
                }
            }

            return(null);
        }
 public static void Run(ItemResolverArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     CorePipeline.Run("websiteprototype.itemresolver", args);
 }
示例#8
0
 public override void Process(ItemResolverArgs args)
 {
     args.Settings = SettingsLoader.GetSettings();
 }