Пример #1
0
        public TemplateItem BuildCategoryTemplateFromDefinition(IDefinition definition)
        {
            var builder     = new TemplateBuilder();
            var userService = ObjectFactory.Instance.Resolve <IUserService>();

            var cultureInfo     = userService.GetCurrentUserCulture();
            var resourceManager = ObjectFactory.Instance.Resolve <IResourceManager>();
            var sectionName     = resourceManager.GetLocalizedText(cultureInfo, "Tabs", "DynamicFields");

            var specificDefinition = definition as Definition;

            ID templateId = definition.SitecoreTemplateId();

            builder.CreateTemplate(definition.Name, templateId, definition.Name, definition.GetBaseTemplateIds());
            _definitionIdToTemplateIdMap[specificDefinition.DefinitionId] = templateId;

            var combinedFields = new List <IDefinitionField>();

            combinedFields.AddRange(((Definition)definition).DefinitionFields);

            if (combinedFields.Any())
            {
                ID sectionId = definition.SitecoreDynamicFieldsSectionId(templateId);
                builder.CreateSection(sectionName, sectionId, 150);

                int sortOrder = 10;
                foreach (var definitionField in combinedFields.Where(x => x.RenderInEditor))
                {
                    CreateDynamicItemField(builder, definitionField, sortOrder, sectionId);
                    sortOrder += 10;
                }
            }

            var template = builder.Build();

            template.AddToFieldList(FieldIDs.Icon, SitecoreConstants.UCommerceIconFolder + "/ui/map.png");

            return(template);
        }
Пример #2
0
        private void BuildListOfProductsField(TemplateBuilder builder, int sortOrder)
        {
            var dataSource = string.Format("StartSearchLocation={0}", FieldIds.Product.ProductsRootFolderId);

            builder.CreateTreeListWithSearchField(FieldIds.Category.ProductsInCategory, "Products", sortOrder, dataSource, new List <KeyValuePair <string, string> >());
        }
 private void AddPriceGroupSpecificField(TemplateBuilder builder, PriceGroup priceGroup, int sortOrder, ID priceGroupFieldId)
 {
     builder.CreateCheckBoxField(priceGroupFieldId, priceGroup.Name, sortOrder);
 }