コード例 #1
0
        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);
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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");
        }
コード例 #4
0
 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;
 }