protected virtual List <string> ReadPageTemplateIncludes() { //Generate a list of Page Templates which have includes in the metadata List <string> res = new List <string>(); RepositoryItemsFilter templateFilter = new RepositoryItemsFilter(Engine.GetSession()) { ItemTypes = new List <ItemType> { ItemType.PageTemplate }, Recursive = true }; foreach (XmlElement item in GetPublication().GetListItems(templateFilter).ChildNodes) { string id = item.GetAttribute("ID"); PageTemplate template = (PageTemplate)Engine.GetObject(id); if (template.MetadataSchema != null && template.Metadata != null) { ItemFields meta = new ItemFields(template.Metadata, template.MetadataSchema); IEnumerable <string> values = meta.GetTextValues("includes"); if (values != null) { List <string> includes = new List <string>(); foreach (string val in values) { includes.Add(JsonEncode(val)); } string json = String.Format("\"{0}\":[{1}]", template.Id.ItemId, String.Join(",\n", includes)); res.Add(json); } } } return(res); }
private Binary PublishPageIncludes(StructureGroup structureGroup, Component relatedComponent) { IDictionary <string, string[]> pageIncludes = new Dictionary <string, string[]>(); RepositoryItemsFilter pageTemplatesFilter = new RepositoryItemsFilter(Session) { ItemTypes = new[] { ItemType.PageTemplate }, Recursive = true }; IEnumerable <PageTemplate> pageTemplates = Publication.GetItems(pageTemplatesFilter).Cast <PageTemplate>(); foreach (PageTemplate pt in pageTemplates.Where(pt => pt.MetadataSchema != null && pt.Metadata != null)) { ItemFields ptMetadataFields = new ItemFields(pt.Metadata, pt.MetadataSchema); string[] includes = ptMetadataFields.GetTextValues("includes").Select(id => GetPublishPath(id)).ToArray(); pageIncludes.Add(pt.Id.ItemId.ToString(), includes); } return(AddJsonBinary(pageIncludes, relatedComponent, structureGroup, "includes")); }
private Binary PublishPageIncludes(StructureGroup structureGroup, Component relatedComponent) { IDictionary<string, string[]> pageIncludes = new Dictionary<string, string[]>(); RepositoryItemsFilter pageTemplatesFilter = new RepositoryItemsFilter(Session) { ItemTypes = new [] { ItemType.PageTemplate }, Recursive = true }; IEnumerable<PageTemplate> pageTemplates = Publication.GetItems(pageTemplatesFilter).Cast<PageTemplate>(); foreach (PageTemplate pt in pageTemplates.Where(pt => pt.MetadataSchema != null && pt.Metadata != null)) { ItemFields ptMetadataFields = new ItemFields(pt.Metadata, pt.MetadataSchema); string[] includes = ptMetadataFields.GetTextValues("includes").ToArray(); pageIncludes.Add(pt.Id.ItemId.ToString(), includes); } return AddJsonBinary(pageIncludes, relatedComponent, structureGroup, "includes"); }
protected virtual List<string> ReadPageTemplateIncludes() { //Generate a list of Page Templates which have includes in the metadata List<string> res = new List<string>(); RepositoryItemsFilter templateFilter = new RepositoryItemsFilter(Engine.GetSession()) { ItemTypes = new List<ItemType> {ItemType.PageTemplate}, Recursive = true }; foreach (XmlElement item in GetPublication().GetListItems(templateFilter).ChildNodes) { string id = item.GetAttribute("ID"); PageTemplate template = (PageTemplate)Engine.GetObject(id); if (template.MetadataSchema != null && template.Metadata != null) { ItemFields meta = new ItemFields(template.Metadata, template.MetadataSchema); IEnumerable<string> values = meta.GetTextValues("includes"); if (values != null) { List<string> includes = new List<string>(); foreach (string val in values) { includes.Add(JsonEncode(val)); } string json = String.Format("\"{0}\":[{1}]", template.Id.ItemId, String.Join(",\n", includes)); res.Add(json); } } } return res; }