Ejemplo n.º 1
0
        public TemplateItem BuildProductTemplateFromDefinition(ProductDefinition definition)
        {
            var builder = new TemplateBuilder();

            ID templateId = definition.SitecoreTemplateId();

            builder.CreateTemplate(definition.Name, templateId, definition.Name, definition.GetSitecoreBaseTemplateIds());
            _productDefinitionIdToTemplateIdMap[definition.ProductDefinitionId] = templateId;

            var definitionFields = definition.ProductDefinitionFields.Where(x => x.RenderInEditor && !x.Deleted && !x.IsVariantProperty).ToList();

            if (definitionFields.Any())
            {
                ID  sectionId       = definition.SitecoreTemplateSectionDynamicDefinitions(templateId);
                var resourceManager = ObjectFactory.Instance.Resolve <IResourceManager>();
                var userService     = ObjectFactory.Instance.Resolve <IUserService>();
                builder.CreateSection(resourceManager.GetLocalizedText(userService.GetCurrentUserCulture(), "Tabs", "DynamicFields"), sectionId, 150);

                int sortOrder = 10;
                foreach (var definitionField in definitionFields)
                {
                    CreateDynamicItemField(builder, definitionField, sortOrder, sectionId);
                    sortOrder += 10;
                }
            }
            var templateItem = builder.Build();

            templateItem.AddToFieldList(FieldIDs.Icon, _iconFolder + "/ui/map.png");
            return(templateItem);
        }