/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
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); }