/// <summary> /// Runs the processor. /// </summary> /// <param name="args">The arguments.</param> public override void Process(ConfigurationPipelineArgs args) { object container = Context.Entity.Resolve(args.ConfigurationItemType, null); if (!(container is IEntity)) { return; } Item item = args.CustomData["item"] as Item; if (item == null) { return; } LinkDatabase linkDatabase = Globals.LinkDatabase; ItemLink[] links = linkDatabase.GetReferrers(item); foreach (ItemLink link in links) { Item source = link.GetSourceItem(); if (source.Parent.TemplateID != new ID(Configuration.Settings.GetSetting("Ecommerce.Settings.SettingsRootTemplateId"))) { continue; } this.RegisterInstance(args, (IEntity)container, source); args.AbortPipeline(); break; } }
public TemplateInputTestFixture() { AliceTemplate = CreateTemplate("Alice", "Hello", TemplateFieldTypes.TEXT_FIELD); BobTemplate = CreateTemplate("Bob", "Hi", TemplateFieldTypes.TEXT_FIELD); AllisonTemplate = CreateTemplate("Allison", "Child", TemplateFieldTypes.TEXT_FIELD, new[] { AliceTemplate.ID, BobTemplate.ID }); FlowerChildTemplate = CreateTemplate("FlowerChild", "Grandchild", TemplateFieldTypes.TEXT_FIELD, new[] { AllisonTemplate.ID }); _db = new Db("master") { new DbTemplate(TemplateIDs.TemplateFolder), new DbItem(TestingContants.TEMPLATE_FOLDER, TestingContants.TestTemplateFolderId) { ParentID = ItemIDs.TemplateRoot, TemplateID = TemplateIDs.TemplateFolder }, AliceTemplate, BobTemplate, AllisonTemplate, FlowerChildTemplate }; _linkDbSwitcher = new LinkDatabaseSwitcher(_linkDb); var templateFieldTemplate = new TemplateItem(_db.GetItem(TemplateIDs.TemplateField)); _linkDb.GetReferrers(templateFieldTemplate.InnerItem).Returns(new[] { MakeLink(AliceTemplate), MakeLink(BobTemplate), MakeLink(AllisonTemplate), MakeLink(FlowerChildTemplate) }); }
private static IEnumerable <Item> GetAliasItems(Item item) { LinkDatabase linkDatabase = Factory.GetLinkDatabase(); IEnumerable <ItemLink> source = from link in linkDatabase.GetReferrers(item) where link.SourceDatabaseName.Equals(item.Database.Name) where link.SourceFieldID.Equals(RedirectManager.FieldIDs.AliasLinkedItem) where link.GetSourceItem().TemplateID.Equals(Sitecore.TemplateIDs.Alias) select link; return (from link in source select link.GetSourceItem()); }