示例#1
0
        /// <summary>
        /// Resolves the name of the provider used by the manager which is responsible for the content type that is filtering the shown taxa.
        /// Returns the default provider name for the manager if ContentProviderName is not set.
        /// </summary>
        /// <returns></returns>
        protected virtual string GetContentProviderName()
        {
            string providerName = String.Empty;

            if (String.IsNullOrWhiteSpace(this.ContentProviderName))
            {
                if (!string.IsNullOrEmpty(this.ContentTypeName))
                {
                    var manager = (IProviderResolver)ManagerBase.GetMappedManager(this.ContentType);

                    return(manager.GetDefaultContextProvider().Name);
                }
                else if (!String.IsNullOrEmpty(this.DynamicContentTypeName))
                {
                    var moduleBuilderProvider = ModuleBuilderManager.GetManager().Provider;

                    DynamicModuleType dynamicContentType = moduleBuilderProvider.GetDynamicModuleTypes()
                                                           .FirstOrDefault(t => t.TypeName == this.ContentType.Name && t.TypeNamespace == this.ContentType.Namespace);

                    if (dynamicContentType != null)
                    {
                        DynamicModuleManager.GetDefaultProviderName(dynamicContentType.ModuleName);
                    }
                }
            }
            else
            {
                providerName = this.ContentProviderName;
            }

            return(providerName);
        }
示例#2
0
 private DropDownItem Map(DynamicModuleType dynamicModuleType)
 {
     return(new DropDownItem
     {
         Value = dynamicModuleType.GetFullTypeName(),
         Text = String.Format("{0} ({1})", dynamicModuleType.TypeName, dynamicModuleType.ModuleName)
     });
 }
        /// <summary>
        /// Generates the content of master template.
        /// </summary>
        /// <returns></returns>
        private string GenerateMasterTemplate(DynamicModuleType moduleType)
        {
            var defaultTemplateText = this.GetDefaultTemplate(TemplateGenerator.MasterViewDefaultPath);
            var mainPictureMarkup   = this.GetMainPictureSection(moduleType);

            defaultTemplateText = defaultTemplateText.Replace(TemplateGenerator.MainShortField, moduleType.MainShortTextFieldName);
            defaultTemplateText = defaultTemplateText.Replace(TemplateGenerator.MainPictureFieldText, mainPictureMarkup);

            return(defaultTemplateText);
        }
        /// <summary>
        /// Generates the content of detail template with all dynamic fields needed.
        /// </summary>
        /// <param name="moduleType">Type of the module.</param>
        /// <returns></returns>
        private string GenerateDetailTemplate(DynamicModuleType moduleType)
        {
            var defaultTemplateText   = this.GetDefaultTemplate(TemplateGenerator.DetailViewDefaultPath);
            var generatedFieldsMarkup = this.GenerateDynamicFieldSection(moduleType);

            defaultTemplateText = defaultTemplateText.Replace(TemplateGenerator.MainShortField, moduleType.MainShortTextFieldName);
            defaultTemplateText = defaultTemplateText.Replace(TemplateGenerator.DynamicFieldsText, generatedFieldsMarkup);

            return(defaultTemplateText);
        }
        public DynamicModuleDefinition(DynamicModuleType dynamicModuleType)
        {
            Name = $"{dynamicModuleType.TypeNamespace.Split('.').Last()}.{dynamicModuleType.TypeName}";
            Type = TypeResolutionService.ResolveType($"{dynamicModuleType.TypeNamespace}.{dynamicModuleType.TypeName}");
            DynamicModuleType = dynamicModuleType;

            var inboundPipeTypeName = WebConfigurationManager.AppSettings[$"InboundPipe.{Name}"];
            var inboundPipeType     = inboundPipeTypeName.IsNullOrWhitespace() ? null : Type.GetType(inboundPipeTypeName);

            InboundPipeType = inboundPipeType;
        }
        /// <summary>
        /// Gets the main picture section markup.
        /// </summary>
        /// <param name="moduleType">Type of the module.</param>
        /// <returns></returns>
        private string GetMainPictureSection(DynamicModuleType moduleType)
        {
            var firstMediaFieldTypeImage = moduleType.Fields.FirstOrDefault(f => f.FieldType == FieldType.Media &&
                                                                            f.FieldStatus != DynamicModuleFieldStatus.Removed &&
                                                                            f.MediaType == "image");
            var fieldMarkup = TemplateGenerator.EmptyLine;

            if (firstMediaFieldTypeImage != null)
            {
                var mainImageField = new MainImagesField();
                fieldMarkup = mainImageField.GetMarkup(firstMediaFieldTypeImage);
            }

            return(fieldMarkup);
        }
示例#7
0
        /// <summary>
        /// Installs the default detail template.
        /// </summary>
        /// <param name="dynamicModule">The dynamic module.</param>
        /// <param name="moduleType">Type of the module.</param>
        /// <returns></returns>
        public Guid InstallDetailTemplate(DynamicModule dynamicModule, DynamicModuleType moduleType)
        {
            var moduleTitle          = dynamicModule.Title;
            var area                 = string.Format(MvcConstants.DynamicAreaFormat, moduleTitle, moduleType.DisplayName);
            var pluralModuleTypeName = PluralsResolver.Instance.ToPlural(moduleType.DisplayName);
            var dynamicTypeName      = moduleType.GetFullTypeName();
            var condition            = string.Format(MvcConstants.MvcTemplateCondition, dynamicTypeName);
            var controlType          = typeof(DynamicContentController).FullName;

            var detailTemplateName      = string.Format(MvcConstants.DetailTemplateName, moduleType.DisplayName);
            var friendlyControlDetail   = string.Format(MvcConstants.FriendlyControlDynamicDetailTemplate, moduleTitle, pluralModuleTypeName);
            var nameForDevelopersDetail = detailTemplateName.Replace('.', '-');

            var content        = this.GenerateDetailTemplate(moduleType);
            var detailTemplate = this.RegisteredTemplate(area, detailTemplateName, nameForDevelopersDetail, friendlyControlDetail, content, condition, controlType);

            return(detailTemplate.Id);
        }
        /// <summary>
        /// Generates the dynamic field section markup.
        /// </summary>
        /// <returns></returns>
        protected internal virtual string GenerateDynamicFieldSection(DynamicModuleType moduleType)
        {
            var fieldGenerators = ObjectFactory.Container.ResolveAll <Field>(new ParameterOverride("moduleType", moduleType)).ToList();

            StringBuilder fieldsSectionBuilder = new StringBuilder();

            foreach (var fieldGenerator in fieldGenerators)
            {
                var fieldsForType = moduleType.Fields.Where(fieldGenerator.GetCondition);
                if (fieldsForType.Count() != 0)
                {
                    foreach (DynamicModuleField currentField in fieldsForType)
                    {
                        fieldsSectionBuilder.Append(fieldGenerator.GetMarkup(currentField));
                        fieldsSectionBuilder.Append(TemplateGenerator.EmptyLine);
                    }
                }
            }

            return(fieldsSectionBuilder.ToString());
        }
        /// <summary>
        /// Installs the default detail template.
        /// </summary>
        /// <param name="dynamicModule">The dynamic module.</param>
        /// <param name="moduleType">Type of the module.</param>
        /// <returns></returns>
        public Guid InstallDetailTemplate(DynamicModule dynamicModule, DynamicModuleType moduleType)
        {
            var moduleTitle          = dynamicModule.Title;
            var area                 = string.Format(MvcConstants.DynamicAreaFormat, moduleTitle, moduleType.DisplayName);
            var pluralModuleTypeName = PluralsResolver.Instance.ToPlural(moduleType.DisplayName);
            var dynamicTypeName      = moduleType.GetFullTypeName();
            var condition            = string.Format(MvcConstants.MvcTemplateCondition, dynamicTypeName);
            var controlType          = typeof(DynamicContentController).FullName;

            var detailTemplateName      = string.Format(MvcConstants.DetailTemplateName, moduleType.DisplayName);
            var friendlyControlDetail   = string.Format(MvcConstants.FriendlyControlDynamicDetailTemplate, moduleTitle, pluralModuleTypeName);
            var nameForDevelopersDetail = detailTemplateName.Replace('.', '-');

            var content        = this.GenerateDetailTemplate(moduleType);
            var detailTemplate = this.RegisteredTemplate(area, detailTemplateName, nameForDevelopersDetail, friendlyControlDetail, content, condition, controlType);

            Type dynamicType = Telerik.Sitefinity.Utilities.TypeConverters.TypeResolutionService.ResolveType(moduleType.GetFullTypeName(), false);

            ControlTemplates.RegisterTemplatableControl(typeof(DynamicContentController), dynamicType, null, area, string.Format("{0} - single", area));

            return(detailTemplate.Id);
        }
 private static void Install(DynamicModule module, DynamicModuleType type, string transactionName)
 {
     MvcWidgetInstaller.RegisterTemplates(module, type, transactionName);
     MvcWidgetInstaller.RegisterToolboxItem(module, type);
 }
示例#11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ShortTextField"/> class.
 /// </summary>
 /// <param name="moduleType">Type of the module.</param>
 public ShortTextField(DynamicModuleType moduleType)
 {
     this.moduleType = moduleType;
 }
        private static void RegisterToolboxItem(Telerik.Sitefinity.DynamicModules.Builder.Model.DynamicModule dynamicModule, DynamicModuleType moduleType)
        {
            MvcWidgetInstaller.UnregisterToolboxItem(moduleType.GetFullTypeName());
            var configurationManager = ConfigManager.GetManager();
            var toolboxesConfig = configurationManager.GetSection<ToolboxesConfig>();

            var section = MvcWidgetInstaller.GetModuleToolboxSection(dynamicModule, toolboxesConfig);
            if (section == null)
                return;

            var toolboxItem = new ToolboxItem(section.Tools)
            {
                Name = moduleType.GetFullTypeName() + "_MVC",
                Title = PluralsResolver.Instance.ToPlural(moduleType.DisplayName),
                Description = string.Empty,
                ModuleName = dynamicModule.Name,
                ControlType = typeof(MvcWidgetProxy).AssemblyQualifiedName,
                ControllerType = typeof(DynamicContentController).FullName,
                CssClass = "sfNewsViewIcn sfMvcIcn",
                Parameters = new NameValueCollection()
                    {
                        { "WidgetName", moduleType.TypeName },
                        { "ControllerName", typeof(DynamicContentController).FullName }
                    }
            };

            section.Tools.Add(toolboxItem);

            configurationManager.SaveSection(toolboxesConfig);
        }
 private static void RegisterTemplates(Telerik.Sitefinity.DynamicModules.Builder.Model.DynamicModule dynamicModule, DynamicModuleType dynamicModuleType, string transactionName)
 {
     MvcWidgetInstaller.TemplateGaneratorAction(
         templateGenerator =>
         {
             templateGenerator.InstallMasterTemplate(dynamicModule, dynamicModuleType);
             templateGenerator.InstallDetailTemplate(dynamicModule, dynamicModuleType);
         },
         transactionName);
 }
示例#14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ShortTextField"/> class.
 /// </summary>
 /// <param name="moduleType">Type of the module.</param>
 public ShortTextField(DynamicModuleType moduleType)
 {
     this.moduleType = moduleType;
     this.ExcludedFieldNames.Add(this.moduleType.MainShortTextFieldName);
 }
示例#15
0
        private static void RegisterToolboxItem(Telerik.Sitefinity.DynamicModules.Builder.Model.DynamicModule dynamicModule, DynamicModuleType moduleType)
        {
            MvcWidgetInstaller.UnregisterToolboxItem(moduleType.GetFullTypeName());
            var configurationManager = ConfigManager.GetManager();
            var toolboxesConfig      = configurationManager.GetSection <ToolboxesConfig>();

            var section = MvcWidgetInstaller.GetModuleToolboxSection(dynamicModule, toolboxesConfig);

            if (section == null)
            {
                return;
            }

            var toolboxItem = new ToolboxItem(section.Tools)
            {
                Name           = moduleType.GetFullTypeName() + "_MVC",
                Title          = PluralsResolver.Instance.ToPlural(moduleType.DisplayName),
                Description    = string.Empty,
                ModuleName     = dynamicModule.Name,
                ControlType    = typeof(MvcWidgetProxy).AssemblyQualifiedName,
                ControllerType = typeof(DynamicContentController).FullName,
                CssClass       = "sfNewsViewIcn sfMvcIcn",
                Parameters     = new NameValueCollection()
                {
                    { "WidgetName", moduleType.TypeName },
                    { "ControllerName", typeof(DynamicContentController).FullName }
                }
            };

            section.Tools.Add(toolboxItem);

            configurationManager.SaveSection(toolboxesConfig);
        }
示例#16
0
 private static void RegisterTemplates(Telerik.Sitefinity.DynamicModules.Builder.Model.DynamicModule dynamicModule, DynamicModuleType dynamicModuleType, string transactionName)
 {
     MvcWidgetInstaller.TemplateGaneratorAction(
         templateGenerator =>
     {
         templateGenerator.InstallMasterTemplate(dynamicModule, dynamicModuleType);
         templateGenerator.InstallDetailTemplate(dynamicModule, dynamicModuleType);
     },
         transactionName);
 }
示例#17
0
 private static void Install(DynamicModule module, DynamicModuleType type, string transactionName)
 {
     MvcWidgetInstaller.RegisterTemplates(module, type, transactionName);
     MvcWidgetInstaller.RegisterToolboxItem(module, type);
 }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ShortTextField"/> class.
 /// </summary>
 /// <param name="moduleType">Type of the module.</param>
 public ShortTextField(DynamicModuleType moduleType)
 {
     this.moduleType = moduleType;
 }