/// <summary> /// The install method is called initially, when your module is added to your Sitefinity website /// Here you can install your module configurations, add the module pages and widgets /// </summary> /// <param name="initializer"></param> public override void Install(SiteInitializer initializer) { //This logic below is meant to verify that you're usign the module with the supported DB types only //Namely MS SQL and MS Azure //If other DB type is detected, the module will throw an exception var oaProvider = initializer.MetadataManager.Provider as IOpenAccessDataProvider; if (oaProvider != null) { var context = oaProvider.GetContext(); if (context != null && (context.Metadata.BackendType != Telerik.OpenAccess.Metadata.Backend.MsSql && context.Metadata.BackendType != Telerik.OpenAccess.Metadata.Backend.Azure) ) { throw new ApplicationException(string.Format("Unsupported database type: {0}", Enum.GetName(typeof(Telerik.OpenAccess.Metadata.Backend), context.Metadata.BackendType))); } } InstallConfiguration(initializer); InstallNewDBDiagnosticsPage(initializer); //Here we are adding our DB Diagnosticss widget to the Dashboard backend page var pageNode = initializer.PageManager.GetPageNodes().Where(x => x.Id == DashboardModule.DashboardPageNodeId).FirstOrDefault(); AddDashboardDBDiagnosticsWidgetToPage(initializer, pageNode); }
/// <summary> /// Installs the pages. /// </summary> /// <param name="initializer">The initializer.</param> protected override void InstallPages(SiteInitializer initializer) { initializer.Installer .CreateModuleGroupPage(ProductsPageGroupId, "Products") .PlaceUnder(CommonNode.TypesOfContent) .LocalizeUsing <ProductsResources>() .SetTitleLocalized("PageGroupNodeTitle") .SetUrlNameLocalized("PageGroupNodeTitle") .SetDescriptionLocalized("PageGroupNodeDescription") .AddChildPage(ProductsModule.HomePageId, "Products") .LocalizeUsing <ProductsResources>() .SetTitleLocalized("ProductsLandingPageTitle") .SetHtmlTitleLocalized("ProductsLandingPageHtmlTitle") .SetUrlNameLocalized("ProductsLandingPageUrlName") .SetDescriptionLocalized("ProductsLandingPageDescription") .AddContentView(c => { c.ControlDefinitionName = ProductsDefinitions.BackendDefinitionName; c.ModuleName = ProductsModule.ModuleName; }) .Done() .AddChildPage(ProductsModule.CommentsPageId, "Comments") .LocalizeUsing <ProductsResources>() .SetTitleLocalized("ProductCommentsPageTitle") .SetHtmlTitleLocalized("ProductCommentsPageHtmlTitle") .SetUrlNameLocalized("ProductCommentsPageUrlName") .SetDescriptionLocalized("ProductCommentsPageDescription") .AddContentView(c => { c.ControlDefinitionName = ProductsDefinitions.BackendCommentsDefinitionName; c.ModuleName = ProductsModule.ModuleName; }) .Done(); }
/// <summary> /// Upgrades this module from the specified version. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> /// <param name="upgradeFrom">The version this module us upgrading from.</param> public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { if (upgradeFrom.Major == 1 && upgradeFrom.Minor < 1) { LifecycleExtensions.UpgradePublishedTranslationsAndLanguageData <AgentItem, AgentsManager>(initializer, Config.Get <AgentsConfig>()); } }
private static void RenameControllers(SiteInitializer initializer) { var manager = initializer.PageManager; var controllerNameProperties = manager.GetControls <ControlData>() .Where(c => c.ObjectType == "Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy" || c.ObjectType == "Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Controllers.MvcWidgetProxy, Telerik.Sitefinity.Frontend") .SelectMany(c => c.Properties.Where(p => p.Name == "ControllerName")); foreach (var property in controllerNameProperties) { if (property.Value == "News.Mvc.Controllers.NewsController") { property.Value = "Telerik.Sitefinity.Frontend.News.Mvc.Controllers.NewsController"; } else if (property.Value == "ContentBlock.Mvc.Controllers.ContentBlockController") { property.Value = "Telerik.Sitefinity.Frontend.ContentBlock.Mvc.Controllers.ContentBlockController"; } else if (property.Value == "Navigation.Mvc.Controllers.NavigationController") { property.Value = "Telerik.Sitefinity.Frontend.Navigation.Mvc.Controllers.NavigationController"; } else if (property.Value == "DynamicContent.Mvc.Controllers.DynamicContentController") { property.Value = "Telerik.Sitefinity.Frontend.DynamicContent.Mvc.Controllers.DynamicContentController"; } } }
public ActionResult Index() { try { var configuration = SiteInitializer.GetConfiguration(); if (configuration != null && !configuration.IsSetupFinish) { SiteInitializer.SiteConfigError = true; return(View("Error", new ResponseModel { Success = false, Message = "Site configuration is invalid. Please remove the site.config in /App_Data folder to continue." })); } if (SiteInitializer.SiteConfigError) { WebUtilities.RestartAppDomain(); } } catch (Exception) { } return(View()); }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { // Using our Fluent Api you can add your module backend pages hierarchy in no time // Here is an example using resources to localize the title of the page and adding a dummy control // to the module page. initializer.Installer .CreateModuleGroupPage(CustomErrorPagesModule.CustomErrorPageItemGroupPageId, "CustomErrorPageItem") .PlaceUnder(CommonNode.TypesOfContent) .LocalizeUsing <CustomErrorPagesResources>() .SetTitleLocalized("CustomErrorPageItemGroupPageTitle") .SetUrlNameLocalized("CustomErrorPageItemGroupPageUrlName") .SetDescriptionLocalized("CustomErrorPageItemGroupPageDescription") .ShowInNavigation() .AddChildPage(CustomErrorPagesModule.CustomErrorPageItemHomePageId, "CustomErrorPageItem") .LocalizeUsing <CustomErrorPagesResources>() .SetTitleLocalized("CustomErrorPageItemGroupPageTitle") .SetHtmlTitleLocalized("CustomErrorPageItemGroupPageTitle") .SetUrlNameLocalized("CustomErrorPageItemMasterPageUrl") .SetDescriptionLocalized("CustomErrorPageItemGroupPageDescription") .AddControl(new CustomErrorPageItemsPage()) .HideFromNavigation() .Done() .Done(); }
/// <summary> /// Installs module virtual paths. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallVirtualPaths(SiteInitializer initializer) { // Here you can register your module virtual paths //var virtualPaths = initializer.Context.GetConfig<VirtualPathSettingsConfig>().VirtualPaths; //var moduleVirtualPath = AMPModule.ModuleVirtualPath + "*"; //if (!virtualPaths.ContainsKey(moduleVirtualPath)) //{ // virtualPaths.Add(new VirtualPathElement(virtualPaths) // { // VirtualPath = moduleVirtualPath, // ResolverName = "EmbeddedResourceResolver", // ResourceLocation = typeof(AMPModule).Assembly.GetName().Name // }); //} var virtualPaths = initializer.Context.GetConfig <VirtualPathSettingsConfig>().VirtualPaths; var moduleVirtualPath = AMPModule.ModuleVirtualPath + "*"; if (!virtualPaths.ContainsKey(moduleVirtualPath)) { virtualPaths.Add(new VirtualPathElement(virtualPaths) { VirtualPath = moduleVirtualPath, ResolverName = "EmbeddedResourceResolver", ResourceLocation = typeof(AMPModule).Assembly.GetName().Name }); } }
/// <summary> /// Installs the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public override void Install(SiteInitializer initializer) { if (this.FrontendServiceExists()) { this.InitialUpgrade(initializer); } }
/// <summary> /// Installs the layout widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallLayoutWidgets(SiteInitializer initializer) { // Here you can register your custom layout widgets in the toolbox. // See the example below. //string moduleLayoutWidgetSectionName = "Module"; //string moduleLayoutWidgetSectionTitle = "Module"; //string moduleLayoutWidgetSectionDescription = "Module"; //initializer.Installer // .Toolbox(CommonToolbox.Layouts) // .LoadOrAddSection(moduleLayoutWidgetSectionName) // .SetTitle(moduleLayoutWidgetSectionTitle) // .SetDescription(moduleLayoutWidgetSectionDescription) // .LoadOrAddWidget<LayoutControl>(WidgetNameForDevelopers) // .SetTitle(WidgetTitle) // .SetDescription(WidgetDescription) // .LocalizeUsing<ModuleResources>() // .SetCssClass(WidgetCssClass) // You can use a css class to add an icon (Optional) // .SetParameters(new NameValueCollection() // { // { "layoutTemplate", FullPathToTheLayoutWidget }, // }) // .Done() // .Done() // .Done(); }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { // Using our Fluent Api you can add your module backend pages hierarchy in no time // Here is an example using resources to localize the title of the page and adding a dummy control // to the module page. //Guid groupPageId = new Guid("d071494f-5150-4ff1-8320-589d73955a4c"); //Guid pageId = new Guid("592476a6-0fd0-4e59-b042-eb20766ef601"); //initializer.Installer // .CreateModuleGroupPage(groupPageId, "Module group page") // .PlaceUnder(SiteInitializer.SitefinityNodeId) // .SetOrdinal(100) // .LocalizeUsing<ModuleResources>() // .SetTitleLocalized("ModuleGroupPageTitle") // .SetUrlNameLocalized("ModuleGroupPageUrlName") // .SetDescriptionLocalized("ModuleGroupPageDescription") // .ShowInNavigation() // .AddChildPage(pageId, "Module page") // .SetOrdinal(1) // .LocalizeUsing<ModuleResources>() // .SetTitleLocalized("ModulePageTitle") // .SetHtmlTitleLocalized("ModulePageTitle") // .SetUrlNameLocalized("ModulePageUrlName") // .SetDescriptionLocalized("ModulePageDescription") // .AddControl(new System.Web.UI.WebControls.Literal() // { // Text = "<h1 class=\"sfBreadCrumb\">Module module Installed</h1>", // Mode = LiteralMode.PassThrough // }) // .ShowInNavigation() // .Done() // .Done(); }
/// <summary> /// Register a new ControlTemplate into Sitefinity /// </summary> /// <param name="friendlyName"></param> /// <param name="templateName"></param> /// <param name="templatePath"></param> /// <param name="areaName"></param> public static void RegisterControlTemplate(string friendlyName, string templateName, string templatePath, string areaName) { var initializer = SiteInitializer.GetInitializer(); var manager = initializer.PageManager; // Check if the given template already exists by filtering on the template path and name var existingTemplate = manager.GetPresentationItems <ControlPresentation>() .SingleOrDefault(p => p.EmbeddedTemplateName == templatePath && p.ControlType == typeof(TwitterWidget).FullName && p.Name == templateName); // If it already exists, do nothing if (existingTemplate != null) { return; } // If it does not exists, create the template initializer.RegisterControlTemplate( templatePath, typeof(TwitterWidget).FullName, templateName, null, areaName, "ASP_NET_TEMPLATE", "Falafel.Sitefinity.Modules.Twitter", friendlyName ); initializer.SaveChanges(); }
/// <summary> /// Here we are taking care of adding the Db diagnostics dashboard widget to the Sitefintiy dashboard /// First, we are registering our widget in the backend pages toolbox /// Then we are instantiating the Db diagnostics dashboard widget /// And adding it to the Dashboard backend page /// Note that we must specify a valid placeholder where the widget should be placed /// We must also specify the widget caption /// Another specific you should pay attention to is the permissions configuration for the widget /// In this case we are making sure the widget is visible only to Administrators /// </summary> /// <param name="initializer"></param> /// <param name="pageNode"></param> private void AddDashboardDBDiagnosticsWidgetToPage(SiteInitializer initializer, PageNode pageNode) { initializer.Installer .Toolbox(CommonToolbox.PageWidgets) .LoadOrAddSection("Dashboard") .LocalizeUsing <Labels>() .SetTitle("DashboardToolboxSectionTitle") .SetDescription("DashboardToolboxSectionDescription") .SetTags(ToolboxTags.Backend) .SetOrdinal(-1) // should be first .LoadOrAddWidget <DashboardDBDiagnosticsView>("DashboardDBDiagnosticsView") .SetTitle("DashboardDBDiagnosticsViewTitle") .SetDescription("DashboardDBDiagnosticsViewDescription") .LocalizeUsing <DBDiagnosticsToolResources>() .Done(); var dashboardSystemStatusView = new DashboardDBDiagnosticsView(); dashboardSystemStatusView.ID = "dashboardDBDiagnosticsView"; if (pageNode != null) { var topWidgetLayout = pageNode.GetPageData().Controls.Where(c => c.IsLayoutControl && c.PlaceHolders.Length > 0 && c.PlaceHolders[0].StartsWith("WidgetsLayoutTop")).FirstOrDefault(); if (topWidgetLayout != null) { var placeholder = topWidgetLayout.PlaceHolders[0]; PageDraftControl pageDraftControl = initializer.PageManager.CreateControl <PageDraftControl>(dashboardSystemStatusView, placeholder); pageDraftControl.Caption = Res.Get <DBDiagnosticsToolResources>().DashboardDBDiagnosticsViewTitle; pageDraftControl.Permissions.Clear(); // Should be visible only for administrators AddWidgetToDashboard(initializer.PageManager, pageNode, pageDraftControl, new string[] { "WidgetsLayoutTop" }, true, placeHolderIndex: 1); } } }
/// <summary> /// Here we are instantinating and configuring our DB Diagnostics widget /// Creating a new backend group page and placing it under the main Administration menu, under the Tools section /// This page only serves as a placeholder in the backend navigation menu /// After that we are creatign a standard backend page /// That contains the actual module UI /// It is a child of the first page we created, and is hidden from the naviagtion /// Instead, it is opened, when a user clicks on the group page from Administration menu /// Finally we are addingthe instantiated and configured DB diagnostics widget on the page /// </summary> /// <param name="initializer"></param> private void InstallNewDBDiagnosticsPage(SiteInitializer initializer) { Guid siblingId = Guid.Empty; var dbDiagnosticToolWidget = new MvcControllerProxy(); dbDiagnosticToolWidget.ControllerName = typeof(DBDiagnosticsToolController).FullName; dbDiagnosticToolWidget.Settings = new ControllerSettings(new DBDiagnosticsToolController()); initializer.Installer .CreateModuleGroupPage(ModuleGroupPageId, "DBDiagnosticsTool") .PlaceUnder(SiteInitializer.ToolsNodeId) .SetOrdinal(6f) .LocalizeUsing <DBDiagnosticsToolResources>() .SetTitleLocalized("DBDiagnosticsToolGroupPageTitle") .SetUrlNameLocalized("DBDiagnosticsToolGroupPageUrlName") .SetDescriptionLocalized("DBDiagnosticsToolGroupPageDescription") .ShowInNavigation() .AddChildPage(DBDiagnosticsPageId, "DBDiagnosticsToolPage") .SetOrdinal(1) .LocalizeUsing <DBDiagnosticsToolResources>() .SetTitleLocalized("DBDiagnosticsToolPageTitle") .SetHtmlTitleLocalized("DBDiagnosticsToolPageTitle") .SetUrlNameLocalized("DBDiagnosticsToolPageUrlName") .SetDescriptionLocalized("DBDiagnosticsToolPageDescription") .AddControl(dbDiagnosticToolWidget) .HideFromNavigation() .Done(); }
/// <summary> /// Uninstalls the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public override void Uninstall(SiteInitializer initializer) { base.Uninstall(initializer); // Add your uninstall logic here Roles.RemoveRole(); }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { initializer.Installer .CreateModuleGroupPage(AMPModule.AmpPagesGroupPageId, "AmpPages") .PlaceUnder(CommonNode.Design) .LocalizeUsing <AMPResources>() .SetTitleLocalized("AmpPagesGroupPageTitle") .SetUrlNameLocalized("AmpPagesGroupPageUrlName") .SetDescriptionLocalized("AmpPagesGroupPageDescription") .ShowInNavigation() .AddChildPage(AMPModule.AmpPagesHomePageId, "Amp pages") .LocalizeUsing <AMPResources>() .SetTitleLocalized("AmpPagesGroupPageTitle") .SetHtmlTitleLocalized("AmpPagesGroupPageTitle") .SetUrlNameLocalized("AmpPagesMasterPageUrl") .SetDescriptionLocalized("AmpPagesGroupPageDescription") .AddControl(new AmpPagesView()) .HideFromNavigation() .Done() .AddChildPage(AMPModule.AmpPageDetailPageId, "Amp page") .LocalizeUsing <AMPResources>() .SetTitleLocalized("AmpPageTitle") .SetDescriptionLocalized("AmpPageDescription") .SetUrlNameLocalized("AmpPageUrl") .SetTemplate(SiteInitializer.BackendHtml5TemplateId) .AddControl(new AmpPageView()) .HideFromNavigation() .Done() .Done(); }
/// <summary> /// This is the code which will add a template to the Sitefinity Backend Template UI /// </summary> /// <param name="embeddedTemplatePath">Path without the Virtual Node, ex: RandomSiteControls.RssConsumer.RssConsumer.ascx</param> /// <param name="type">Type of the widget</param> /// <param name="name">Name</param> /// <param name="friendlyName">Easier to read name</param> /// <param name="areaName">Section Group</param> public static void AddWidgetTemplateToBackendHtmlEditor(string embeddedTemplatePath, Type type, string name, string friendlyName, string areaName) { var initalizer = SiteInitializer.GetInitializer(); var manager = initalizer.PageManager; var existingTemplate = manager.GetPresentationItems <ControlPresentation>().Where(p => p.EmbeddedTemplateName == embeddedTemplatePath && p.ControlType == type.FullName && p.Name == name) .SingleOrDefault(); if (existingTemplate == null) { initalizer.RegisterControlTemplate( embeddedTemplatePath, type.FullName, name, null, areaName, "ASP_NET_TEMPLATE", type.Assembly.FullName, friendlyName ); initalizer.SaveChanges(); } }
/// <summary> /// Uninstalls the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public override void Uninstall(SiteInitializer initializer) { Bootstrapper.Initialized -= this.Bootstrapper_Initialized; EventHub.Unsubscribe <IPagePreRenderCompleteEvent>(RequestSpyModule.OnPagePreRenderCompleteEventHandler); base.Uninstall(initializer); }
/// <summary> /// Upgrades this module from the specified version. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> /// <param name="upgradeFrom">The version this module us upgrading from.</param> public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { base.Upgrade(initializer, upgradeFrom); if (upgradeFrom < new Version(1, 2, 140, 0)) { this.DeleteOldGridSection(); this.UpdateContentBlockTitle(); } if (upgradeFrom <= new Version(1, 2, 180, 1)) { this.RemoveMvcWidgetToolboxItems(); this.RenameDynamicContentMvcToolboxItems(); } if (upgradeFrom <= new Version(1, 2, 260, 1)) { this.RecategorizePageTemplates(); } if (upgradeFrom <= new Version(1, 2, 270, 1)) { this.UpdatePageTemplates(); } if (upgradeFrom <= new Version(1, 2, 280, 2)) { this.CreateDefaultTemplates(); } }
protected void InstallToolboxConfiguration(SiteInitializer initializer) { var config = initializer.Context.GetConfig <ToolboxesConfig>(); var pageControls = config.Toolboxes["PageControls"]; var section = pageControls .Sections .Where <ToolboxSection>(e => e.Name == ToolboxesConfig.ContentToolboxSectionName) .FirstOrDefault(); if (section == null) { section = new ToolboxSection(pageControls.Sections) { Name = ToolboxesConfig.ContentToolboxSectionName, Title = "ContentToolboxSectionTitle", Description = "ContentToolboxSectionDescription", ResourceClassId = typeof(PageResources).Name }; pageControls.Sections.Add(section); } if (!section.Tools.Any <ToolboxItem>(e => e.Name == "HelloWorldWidget")) { var tool = new ToolboxItem(section.Tools) { Name = "HelloWorldWidget", Title = "HelloWorldWidgetTitle", Description = "HelloWorldWidgetDescription", ResourceClassId = HelloWorldModule.ResourceClassId, ModuleName = HelloWorldModule.ModuleName, ControlType = typeof(HelloWorldWidget).AssemblyQualifiedName }; section.Tools.Add(tool); } }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { // Using our Fluent Api you can add your module backend pages hierarchy in no time // Here is an example using resources to localize the title of the page and adding a dummy control // to the module page. //Guid groupPageId = new Guid("c092b53f-5835-4568-ad64-98f48fb9c401"); //Guid pageId = new Guid("a865c2eb-5a2e-46a5-9be9-367511b26bd0"); //initializer.Installer // .CreateModuleGroupPage(groupPageId, "FavIconHandler group page") // .PlaceUnder(SiteInitializer.SitefinityNodeId) // .SetOrdinal(100) // .LocalizeUsing<FavIconHandlerResources>() // .SetTitleLocalized("FavIconHandlerGroupPageTitle") // .SetUrlNameLocalized("FavIconHandlerGroupPageUrlName") // .SetDescriptionLocalized("FavIconHandlerGroupPageDescription") // .ShowInNavigation() // .AddChildPage(pageId, "FavIconHandler page") // .SetOrdinal(1) // .LocalizeUsing<FavIconHandlerResources>() // .SetTitleLocalized("FavIconHandlerPageTitle") // .SetHtmlTitleLocalized("FavIconHandlerPageTitle") // .SetUrlNameLocalized("FavIconHandlerPageUrlName") // .SetDescriptionLocalized("FavIconHandlerPageDescription") // .AddControl(new System.Web.UI.WebControls.Literal() // { // Text = "<h1 class=\"sfBreadCrumb\">FavIconHandler module Installed</h1>", // Mode = LiteralMode.PassThrough // }) // .ShowInNavigation() // .Done() // .Done(); }
/// <summary> /// Load plugin assemblies and build to AppDomain /// </summary> public static void RegisterPluginAssemblies() { var assemblies = EzCMSUtilities.GetEzReferencedAssemblies(); foreach (var assemblyName in assemblies) { Assembly.Load(assemblyName); } if (SiteInitializer.IsSetupFinish()) { var loadedPlugins = new List <Assembly>(); var pluginDllPaths = PluginHelper.LoadAllInstalledPluginDlls(); foreach (var pluginDllPath in pluginDllPaths) { try { loadedPlugins.Add(Assembly.LoadFile(pluginDllPath)); } catch (FileLoadException) { } catch (BadImageFormatException) { } } loadedPlugins.ForEach(BuildManager.AddReferencedAssembly); } }
/// <summary> /// Installs the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public override void Install(SiteInitializer initializer) { var pageMgr = initializer.PageManager; #region Install Admin Pages // install the module using Fluent API var module = initializer.Installer; // add page to installed module module.CreateModulePage(this.LandingPageId, EventLoggerModule.ModuleName). ShowInNavigation(). SetTitle(EventLoggerModule.ModuleName). SetHtmlTitle(EventLoggerModule.ModuleName). SetDescription(EventLoggerModule.ModuleName). SetUrlName(EventLoggerModule.ModuleName). PlaceUnder(CommonNode.System); #endregion #region Install Admin Controls // initialize user control using path var control = pageMgr.CreateControl <PageControl>("~/Modules/EventLogger/Admin/EventLoggerAdmin.ascx", "Content"); // get page node and add user control var node = pageMgr.GetPageNode(this.LandingPageId); node.Page.Controls.Add(control); #endregion }
/// <summary> /// Installs the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public static void Install(SiteInitializer initializer) { if (FrontendModuleInstaller.FrontendServiceExists()) { FrontendModuleInstaller.InitialUpgrade(initializer); } }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { // Using our Fluent Api you can add your module backend pages hierarchy in no time // Here is an example using resources to localize the title of the page and adding a dummy control // to the module page. //Guid groupPageId = new Guid("7008559d-a387-4742-b0e2-3dd4250366bc"); //Guid pageId = new Guid("cb7d5871-5c65-48b3-b664-9a442ac9fab7"); //initializer.Installer // .CreateModuleGroupPage(groupPageId, "BestPracticesSiteSetup group page") // .PlaceUnder(SiteInitializer.SitefinityNodeId) // .SetOrdinal(100) // .LocalizeUsing<BestPracticesSiteSetupResources>() // .SetTitleLocalized("BestPracticesSiteSetupGroupPageTitle") // .SetUrlNameLocalized("BestPracticesSiteSetupGroupPageUrlName") // .SetDescriptionLocalized("BestPracticesSiteSetupGroupPageDescription") // .ShowInNavigation() // .AddChildPage(pageId, "BestPracticesSiteSetup page") // .SetOrdinal(1) // .LocalizeUsing<BestPracticesSiteSetupResources>() // .SetTitleLocalized("BestPracticesSiteSetupPageTitle") // .SetHtmlTitleLocalized("BestPracticesSiteSetupPageTitle") // .SetUrlNameLocalized("BestPracticesSiteSetupPageUrlName") // .SetDescriptionLocalized("BestPracticesSiteSetupPageDescription") // .AddControl(new System.Web.UI.WebControls.Literal() // { // Text = "<h1 class=\"sfBreadCrumb\">BestPracticesSiteSetup module Installed</h1>", // Mode = LiteralMode.PassThrough // }) // .ShowInNavigation() // .Done() // .Done(); }
private void InstallAuthyProfileConfiguration(SiteInitializer initializer) { Type type = typeof(SitefinityProfile); List <DetailFormViewElement> detailFormViewElements = new List <DetailFormViewElement>(); foreach (ContentViewControlElement value in initializer.Context.GetConfig <ContentViewConfig>().ContentViewControls.Values) { if (value.ContentType != type) { continue; } detailFormViewElements.AddRange(CustomFieldsContext.GetViews(value.ViewsConfig.Values)); } foreach (DetailFormViewElement detailFormViewElement in detailFormViewElements) { ContentViewSectionElement contentViewSectionElement = detailFormViewElement.Sections.Values.First <ContentViewSectionElement>(); if (!contentViewSectionElement.Fields.ContainsKey("AuthyId")) { TextFieldDefinitionElement textFieldDefinitionElement = new TextFieldDefinitionElement(contentViewSectionElement.Fields) { ID = "authyIdField", FieldName = "AuthyId", DataFieldName = "AuthyId", DisplayMode = new FieldDisplayMode?(FieldDisplayMode.Write), Title = "AuthyId", WrapperTag = HtmlTextWriterTag.Li, ResourceClassId = typeof(TwoFactorAuthenticationResources).Name, Hidden = new bool?(false) }; contentViewSectionElement.Fields.Add(textFieldDefinitionElement); } } }
/// <summary> /// Get all plugins in Application /// </summary> /// <returns></returns> public static List <PluginInformationModel> GetPlugins() { var plugins = new List <PluginInformationModel>(); var pluginRegisters = new List <PluginInformationModel>(); // Get all plugins in the Application var pluginFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"); foreach (var plugin in Directory.GetDirectories(pluginFolder, "*", SearchOption.TopDirectoryOnly)) { var pluginInformationFile = Path.Combine(plugin, EzCMSContants.PluginInformationFileName); var setupInformation = ParseFromPath(pluginInformationFile); if (plugin != null) { pluginRegisters.Add(setupInformation); } } // Get installed plugins var installPlugins = SiteInitializer.GetConfiguration().Plugins; // Check plugin is installed or not foreach (var plugin in pluginRegisters) { if (installPlugins.Any(m => m.Name.Equals(plugin.Name))) { plugin.IsInstalled = true; plugin.ConnectionString = installPlugins.First(m => m.Name.Equals(plugin.Name)).ConnectionString; } plugins.Add(plugin); } return(plugins); }
/// <summary> /// Installs this module in Sitefinity system for the first time. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> public override void Install(SiteInitializer initializer) { this.InstallVirtualPaths(initializer); this.InstallPageWidgets(initializer); this.InstallUserProfileTypes(initializer); SystemManager.RestartApplication(OperationReason.KnownKeys.StaticModulesUpdate); }
/// <summary> /// Finish setup and restart AppDomain /// </summary> /// <returns></returns> public ResponseModel FinishSetup() { ResponseModel response; //Finish setup var siteConfig = SiteInitializer.GetConfiguration(); siteConfig.IsSetupFinish = true; SiteInitializer.SaveConfiguration(siteConfig); //Notify user of new setup site. var setupInfo = WorkContext.SetupInformation; var url = HttpContext.Current.Request.Url; if (setupInfo.InitialUser != null && setupInfo.SiteConfiguration != null) { var emailAccount = _emailAccountRepository.FetchFirst(e => e.IsDefault); if (emailAccount != null) { _emailLogRepository.Insert(new EmailLog { From = emailAccount.Email, FromName = emailAccount.DisplayName, EmailAccount = emailAccount, ToName = string.Format("{0} {1}", setupInfo.InitialUser.FirstName, setupInfo.InitialUser.LastName), To = setupInfo.InitialUser.Email, Subject = "Website setup", Body = string.Format("Hello {0},<br/> Your new site has been setup at <a href='{2}'>{1}</a>", setupInfo.InitialUser.FirstName, url.Host, url.IsDefaultPort ? string.Format("{0}://{1}/", url.Scheme, url.Host) : string.Format("{0}://{1}:{2}/", url.Scheme, url.Host, url.Port)) }); } } //Restart app domain try { WebUtilities.RestartAppDomain(); response = new ResponseModel { Success = true }; } catch (Exception exception) { response = new ResponseModel { Success = false, Message = exception.Message }; } return(response); }
public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { base.Upgrade(initializer, upgradeFrom); if (upgradeFrom < new Version("1.0.0.1")) { UpgradeHelloWorldModule(initializer); } }
/// <summary> /// Installs this module in Sitefinity system for the first time. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> public override void Install(SiteInitializer initializer) { base.Install(initializer); // register module ? IModule ProjectsModule; SystemManager.ApplicationModules.TryGetValue(ProjectsModule.ModuleName, out ProjectsModule); initializer.Context.SaveMetaData(true); }
/// <summary> /// Upgrades this module from the specified version. /// This method is called instead of the Install method when the module is already installed with a previous version. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> /// <param name="upgradeFrom">The version this module us upgrading from.</param> public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { // Here you can check which one is your prevous module version and execute some code if you need to // See the example bolow // //if (upgradeFrom < new Version("1.0.1.0")) //{ // some upgrade code that your new version requires //} }
/// <summary> /// Installs this module in Sitefinity system for the first time. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> public override void Install(SiteInitializer initializer) { base.Install(initializer); // register module ? IModule locationsModule; SystemManager.ApplicationModules.TryGetValue(LocationsModule.ModuleName, out locationsModule); initializer.Context.SaveMetaData(true); this.InstallCustomVirtualPaths(initializer); }
private void InstallCustomVirtualPaths(SiteInitializer initializer) { var virtualPathConfig = initializer.Context.GetConfig<VirtualPathSettingsConfig>(); ConfigManager.Executed += new EventHandler<ExecutedEventArgs>(ConfigManager_Executed); var locationsModuleVirtualPathConfig = new VirtualPathElement(virtualPathConfig.VirtualPaths) { VirtualPath = "~/LocationTemplates/*", ResolverName = "EmbeddedResourceResolver", ResourceLocation = "LocationsModule" }; if (!virtualPathConfig.VirtualPaths.ContainsKey("~/LocationTemplates/*")) virtualPathConfig.VirtualPaths.Add(locationsModuleVirtualPathConfig); }
private void InstallCustomVirtualPaths(SiteInitializer initialzer) { var virtualPathConfig = initialzer.Context.GetConfig<VirtualPathSettingsConfig>(); ConfigManager.Executed += new EventHandler<Telerik.Sitefinity.Data.ExecutedEventArgs>(this.ConfigManager_Executed); var TemplateImporterModuleVirtualPathConfig = new VirtualPathElement(virtualPathConfig.VirtualPaths) { VirtualPath = TemplateImporterModule.TemplateImporterVirtualPath + "*", ResolverName = "EmbeddedResourceResolver", ResourceLocation = "TemplateImporter" }; if (!virtualPathConfig.VirtualPaths.ContainsKey(TemplateImporterModule.TemplateImporterVirtualPath + "*")) virtualPathConfig.VirtualPaths.Add(TemplateImporterModuleVirtualPathConfig); }
/// <summary> /// Installs this module in Sitefinity system for the first time. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> public override void Install(SiteInitializer initializer) { App.WorkWith(). Module(BlogsImport.ModuleName, initializer.PageManager).Install() .CreateModulePage(Guid.NewGuid(), "BlogsImport") .SetOrdinal(1) .LocalizeUsing<BlogsImportResources>() .SetTitleLocalized("PageTitle") .SetHtmlTitleLocalized("PageHtmlTitle") .SetDescriptionLocalized("PageDescription") .SetUrlNameLocalized("PageUrlName") .AddControl(new Literal() { Text = "<h1 class=\"sfBreadCrumb\">Module BlogsImport Installed</h1>", Mode = LiteralMode.PassThrough }) .PlaceUnder(new Guid("f669d9a7-009d-4d83-ddaa-000000000004")) .ShowInNavigation(); }
private void InitialUpgrade(SiteInitializer initializer) { this.RemoveFrontendService(); this.RenameControllers(initializer); this.ClearToolboxItems(); }
/// <summary> /// Upgrades this module from the specified version. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> /// <param name="upgradeFrom">The version this module us upgrading from.</param> public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { base.Upgrade(initializer, upgradeFrom); if (upgradeFrom < new Version(1, 2, 140, 0)) { this.DeleteOldGridSection(); this.UpdateContentBlockTitle(); } if (upgradeFrom <= new Version(1, 2, 180, 1)) { this.RemoveMvcWidgetToolboxItems(); this.RenameDynamicContentMvcToolboxItems(); } if (upgradeFrom <= new Version(1, 2, 260, 1)) { this.RecategorizePageTemplates(); } if (upgradeFrom <= new Version(1, 2, 270, 1)) { this.UpdatePageTemplates(); } }
/// <summary> /// Installs the pages. /// </summary> /// <param name="initializer">The initializer.</param> protected override void InstallPages(SiteInitializer initializer) { // code to install admin page nodes and pages // get page manager var pageManager = initializer.PageManager; var modulesPageNode = pageManager.GetPageNode(SiteInitializer.ModulesNodeId); // Create PageNode if doesn't exist var ProjectsModulePageGroupNode = pageManager.GetPageNodes().Where(t => t.Id == ProjectsPageGroupID).SingleOrDefault(); if (ProjectsModulePageGroupNode == null) { // create page node under Modules node ProjectsModulePageGroupNode = initializer.CreatePageNode(ProjectsPageGroupID, modulesPageNode, Telerik.Sitefinity.Pages.Model.NodeType.Group); ProjectsModulePageGroupNode.Name = ProjectsModule.ModuleName; ProjectsModulePageGroupNode.ShowInNavigation = true; ProjectsModulePageGroupNode.Attributes["ModuleName"] = ProjectsModule.ModuleName; // hard-code names for now, will eventually be localized ProjectsModulePageGroupNode.Title = "Projects"; ProjectsModulePageGroupNode.UrlName = "Projects"; ProjectsModulePageGroupNode.Description = "Module for managing a list of Projects"; } // create Landing Page if doesn't exist var landingPage = pageManager.GetPageNodes().SingleOrDefault(p => p.Id == LandingPageId); if (landingPage == null) { // create page var pageInfo = new PageDataElement() { PageId = LandingPageId, IncludeScriptManager = true, ShowInNavigation = false, EnableViewState = false, TemplateName = SiteInitializer.BackendTemplateName, // hard-code names for now, will eventually be localized Name = ProjectsModule.ModuleName, MenuName = "Projects Module", UrlName = "Projects", Description = "Landing page for the Projects Module", HtmlTitle = "Projects Module" }; pageInfo.Parameters["ModuleName"] = ProjectsModule.ModuleName; // create control panel var backendView = new BackendContentView() { ModuleName = ProjectsModule.ModuleName, ControlDefinitionName = ProjectsDefinitions.BackendDefinitionName }; // add page initializer.CreatePageFromConfiguration(pageInfo, ProjectsModulePageGroupNode, backendView); } }
public override void Upgrade(SiteInitializer initializer, Version upgradeFrom) { }
/// <summary> /// Installs the form widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallFormWidgets(SiteInitializer initializer) { initializer.Installer .Toolbox(CommonToolbox.FormWidgets) .LoadOrAddSection("SuperForms") .SetTitle("SuperForms Controls") .SetDescription("SuperForms field controls") .LoadOrAddWidget<LogicalFormTextBox>("LogicalFormTextBox") .SetTitle("Super TextBox") .SetDescription("SuperForms TextBox field") .SetCssClass("sfTextboxIcn") .Done() .LoadOrAddWidget<LogicalFormMultipleChoice>("LogicalFormMultipleChoice") .SetTitle("Super MultipleChoice") .SetDescription("SuperForms MultipleChoice field") .SetCssClass("sfMultipleChoiceIcn") .Done() .LoadOrAddWidget<LogicalFormCheckboxes>("LogicalFormCheckboxes") .SetTitle("Super Checkboxes") .SetDescription("SuperForms Checkboxes field") .SetCssClass("sfCheckboxesIcn") .Done() .LoadOrAddWidget<LogicalFormParagraphTextBox>("LogicalFormParagraphTextBox") .SetTitle("Super ParagraphTextBox") .SetDescription("SuperForms ParagraphTextBox field") .SetCssClass("sfParagraphboxIcn") .Done() .LoadOrAddWidget<LogicalFormDropDownList>("LogicalFormDropDownList") .SetTitle("Super DropDownList") .SetDescription("SuperForms DropDownList field") .SetCssClass("sfDropdownIcn") .Done() .LoadOrAddWidget<LogicalFormSectionHeader>("LogicalFormSectionHeader") .SetTitle("Super SectionHeader") .SetDescription("SuperForms SectionHeader") .SetCssClass("sfSectionHeaderIcn") .Done() .LoadOrAddWidget<LogicalFormInstructionalText>("LogicalFormInstructionalText") .SetTitle("Super InstructionalText") .SetDescription("SuperForms InstructionalText") .SetCssClass("sfInstructionIcn") .Done() .Done() .Done(); }
/// <summary> /// Installs module virtual paths. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallVirtualPaths(SiteInitializer initializer) { var virtualPaths = initializer.Context.GetConfig<VirtualPathSettingsConfig>().VirtualPaths; var moduleVirtualPath = TwoFactorAuthenticationModule.ModuleVirtualPath + "*"; if (!virtualPaths.ContainsKey(moduleVirtualPath)) { virtualPaths.Add(new VirtualPathElement(virtualPaths) { VirtualPath = moduleVirtualPath, ResolverName = "EmbeddedResourceResolver", ResourceLocation = typeof(TwoFactorAuthenticationModule).Assembly.GetName().Name }); } }
public override void Install(SiteInitializer initializer) { this.InstallCustomVirtualPaths(initializer); this.InstallPages(initializer); }
protected void InstallPages(SiteInitializer initializer) { var pageManager = initializer.PageManager; var moduleNode = pageManager.GetPageNode(SiteInitializer.DesignNodeId); PageNode TemplateImporterNode = pageManager.GetPageNodes().Where(p => p.Id == TemplateImporterModule.TemplateImporterPageGroupID).SingleOrDefault(); if (TemplateImporterNode == null) { TemplateImporterNode = initializer.CreatePageNode(TemplateImporterModule.TemplateImporterPageGroupID, moduleNode, NodeType.Group); TemplateImporterNode.Name = TemplateImporterModule.ModuleName; TemplateImporterNode.ShowInNavigation = true; TemplateImporterNode.Attributes["ModuleName"] = TemplateImporterModule.ModuleName; TemplateImporterNode.Title = TemplateImporterModule.ModuleName; TemplateImporterNode.UrlName = TemplateImporterModule.ModuleName; TemplateImporterNode.Description = "Module for importing Template packages"; } var landingPage = pageManager.GetPageNodes().SingleOrDefault(p => p.Id == this.LandingPageId); if (landingPage == null) { var pageInfo = new PageDataElement() { PageId = this.LandingPageId, Name = "TemplateImporter", MenuName = "TemplateImporter Module", UrlName = "TemplateImporter", Description = "TemplateImporterLandingPageDescription", HtmlTitle = "Template Importer", //ResourceClassId = typeof(TemplateImporterResources).Name, IncludeScriptManager = true, ShowInNavigation = false, EnableViewState = false, TemplateName = SiteInitializer.BackendTemplateName, }; pageInfo.Parameters["ModuleName"] = TemplateImporterModule.ModuleName; TemplateImporterServerControl control = new TemplateImporterServerControl(); Control[] pageControls = new Control[] { control }; initializer.CreatePageFromConfiguration(pageInfo, TemplateImporterNode, pageControls); } }
private void InstallAuthyProfileConfiguration(SiteInitializer initializer) { Type type = typeof(SitefinityProfile); List<DetailFormViewElement> detailFormViewElements = new List<DetailFormViewElement>(); foreach (ContentViewControlElement value in initializer.Context.GetConfig<ContentViewConfig>().ContentViewControls.Values) { if (value.ContentType != type) { continue; } detailFormViewElements.AddRange(CustomFieldsContext.GetViews(value.ViewsConfig.Values)); } foreach (DetailFormViewElement detailFormViewElement in detailFormViewElements) { ContentViewSectionElement contentViewSectionElement = detailFormViewElement.Sections.Values.First<ContentViewSectionElement>(); if (!contentViewSectionElement.Fields.ContainsKey("AuthyId")) { TextFieldDefinitionElement textFieldDefinitionElement = new TextFieldDefinitionElement(contentViewSectionElement.Fields) { ID = "authyIdField", FieldName = "AuthyId", DataFieldName = "AuthyId", DisplayMode = new FieldDisplayMode?(FieldDisplayMode.Write), Title = "AuthyId", WrapperTag = HtmlTextWriterTag.Li, ResourceClassId = typeof(TwoFactorAuthenticationResources).Name, Hidden = new bool?(false) }; contentViewSectionElement.Fields.Add(textFieldDefinitionElement); } } }
/// <summary> /// Installs module's toolbox configuration. /// </summary> /// <param name="initializer">The initializer.</param> protected override void InstallConfiguration(SiteInitializer initializer) { // get section from toolbox var config = initializer.Context.GetConfig<ToolboxesConfig>(); var pageControls = config.Toolboxes["PageControls"]; var section = pageControls .Sections .Where<ToolboxSection>(e => e.Name == ToolboxesConfig.ContentToolboxSectionName) .FirstOrDefault(); // create it if it doesn't exist if (section == null) { section = new ToolboxSection(pageControls.Sections) { Name = ToolboxesConfig.ContentToolboxSectionName, Title = "ContentToolboxSectionTitle", Description = "ContentToolboxSectionDescription", ResourceClassId = typeof(PageResources).Name }; pageControls.Sections.Add(section); } // add Projects view if it doesn't exist if (!section.Tools.Any<ToolboxItem>(e => e.Name == "ProjectsView")) { var tool = new ToolboxItem(section.Tools) { Name = "ProjectsView", Title = "Projects View", Description = "Public control from the Projects module", ModuleName = ProjectsModule.ModuleName, CssClass = "sfProjectsViewIcn", ControlType = typeof(ProjectsView).AssemblyQualifiedName }; section.Tools.Add(tool); } }
private void RenameControllers(SiteInitializer initializer) { var manager = initializer.PageManager; var controllerNameProperties = manager.GetControls<ControlData>() .Where(c => c.ObjectType == "Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy" || c.ObjectType == "Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Controllers.MvcWidgetProxy, Telerik.Sitefinity.Frontend") .SelectMany(c => c.Properties.Where(p => p.Name == "ControllerName")); foreach (var property in controllerNameProperties) { if (property.Value == "News.Mvc.Controllers.NewsController") { property.Value = "Telerik.Sitefinity.Frontend.News.Mvc.Controllers.NewsController"; } else if (property.Value == "ContentBlock.Mvc.Controllers.ContentBlockController") { property.Value = "Telerik.Sitefinity.Frontend.ContentBlock.Mvc.Controllers.ContentBlockController"; } else if (property.Value == "Navigation.Mvc.Controllers.NavigationController") { property.Value = "Telerik.Sitefinity.Frontend.Navigation.Mvc.Controllers.NavigationController"; } else if (property.Value == "SocialShare.Mvc.Controllers.SocialShareController") { property.Value = "Telerik.Sitefinity.Frontend.SocialShare.Mvc.Controllers.SocialShareController"; } else if (property.Value == "DynamicContent.Mvc.Controllers.DynamicContentController") { property.Value = "Telerik.Sitefinity.Frontend.DynamicContent.Mvc.Controllers.DynamicContentController"; } } }
/// <summary> /// Installs the backend pages. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallBackendPages(SiteInitializer initializer) { }
/// <summary> /// Installs the profile type. /// </summary> private void InstallUserProfileTypes(SiteInitializer initializer) { MetadataManager managerInTransaction = initializer.GetManagerInTransaction<MetadataManager>(); MetaType metaType = managerInTransaction.GetMetaType(typeof(SitefinityProfile)); if (metaType != null) { MetaField fullName = ( from f in metaType.Fields where f.FieldName == "AuthyId" select f).FirstOrDefault<MetaField>(); if (fullName == null) { fullName = managerInTransaction.CreateMetafield("AuthyId"); fullName.Title = "AuthyId"; fullName.ClrType = typeof(string).FullName; fullName.ColumnName = "authy_id"; fullName.Required = false; fullName.Hidden = false; fullName.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = fullName.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.ShortText.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = fullName.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(fullName); } } this.InstallAuthyProfileConfiguration(initializer); }
/// <summary> /// Installs the focal point fields. /// </summary> private void InstallFocalPointFields(SiteInitializer initializer) { MetadataManager managerInTransaction = initializer.GetManagerInTransaction<MetadataManager>(); MetaType metaType = managerInTransaction.GetMetaType(typeof(Image)); if (metaType != null) { MetaField focalPointX = ( from f in metaType.Fields where f.FieldName == "FocalPointX" select f).FirstOrDefault<MetaField>(); if (focalPointX == null) { focalPointX = managerInTransaction.CreateMetafield("FocalPointX"); focalPointX.Title = "FocalPointX"; focalPointX.ClrType = typeof(int).FullName; focalPointX.ColumnName = "focal_point_x"; focalPointX.Required = false; focalPointX.Hidden = true; focalPointX.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = focalPointX.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.Integer.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = focalPointX.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(focalPointX); } MetaField focalPointY = ( from f in metaType.Fields where f.FieldName == "FocalPointY" select f).FirstOrDefault<MetaField>(); if (focalPointY == null) { focalPointY = managerInTransaction.CreateMetafield("FocalPointY"); focalPointY.Title = "FocalPointY"; focalPointY.ClrType = typeof(int).FullName; focalPointY.ColumnName = "focal_point_y"; focalPointY.Required = false; focalPointY.Hidden = true; focalPointY.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = focalPointY.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.Integer.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = focalPointY.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(focalPointY); } MetaField focalPointWidth = ( from f in metaType.Fields where f.FieldName == "FocalPointWidth" select f).FirstOrDefault<MetaField>(); if (focalPointWidth == null) { focalPointWidth = managerInTransaction.CreateMetafield("FocalPointWidth"); focalPointWidth.Title = "FocalPointWidth"; focalPointWidth.ClrType = typeof(int).FullName; focalPointWidth.ColumnName = "focal_point_width"; focalPointWidth.Required = false; focalPointWidth.Hidden = true; focalPointWidth.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = focalPointWidth.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.Integer.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = focalPointWidth.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(focalPointWidth); } MetaField focalPointHeight = ( from f in metaType.Fields where f.FieldName == "FocalPointHeight" select f).FirstOrDefault<MetaField>(); if (focalPointHeight == null) { focalPointHeight = managerInTransaction.CreateMetafield("FocalPointHeight"); focalPointHeight.Title = "FocalPointHeight"; focalPointHeight.ClrType = typeof(int).FullName; focalPointHeight.ColumnName = "focal_point_height"; focalPointHeight.Required = false; focalPointHeight.Hidden = true; focalPointHeight.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = focalPointHeight.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.Integer.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = focalPointHeight.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(focalPointHeight); } MetaField focalPointAnchor = ( from f in metaType.Fields where f.FieldName == "FocalPointAnchor" select f).FirstOrDefault<MetaField>(); if (focalPointAnchor == null) { focalPointAnchor = managerInTransaction.CreateMetafield("FocalPointAnchor"); focalPointAnchor.Title = "FocalPointAnchor"; focalPointAnchor.ClrType = typeof(int).FullName; focalPointAnchor.ColumnName = "focal_point_anchor"; focalPointAnchor.Required = false; focalPointAnchor.Hidden = true; focalPointAnchor.SetMinValue(0); IList<MetaFieldAttribute> metaAttributes = focalPointAnchor.MetaAttributes; MetaFieldAttribute metaFieldAttribute = new MetaFieldAttribute() { Name = "UserFriendlyDataType", Value = UserFriendlyDataType.Integer.ToString() }; metaAttributes.Add(metaFieldAttribute); IList<MetaFieldAttribute> metaFieldAttributes = focalPointAnchor.MetaAttributes; MetaFieldAttribute metaFieldAttribute1 = new MetaFieldAttribute() { Name = "IsCommonProperty", Value = "true" }; metaFieldAttributes.Add(metaFieldAttribute1); metaType.Fields.Add(focalPointAnchor); } } }
/// <summary> /// Installs module virtual paths. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallVirtualPaths(SiteInitializer initializer) { var virtualPathConfig = initializer.Context.GetConfig<VirtualPathSettingsConfig>(); var virtualPathElement = new VirtualPathElement(virtualPathConfig.VirtualPaths) { VirtualPath = "~/SuperForms/" + "*", ResolverName = "EmbeddedResourceResolver", ResourceLocation = "timw255.Sitefinity.SuperForms" }; if (!virtualPathConfig.VirtualPaths.ContainsKey("~/SuperForms/" + "*")) { virtualPathConfig.VirtualPaths.Add(virtualPathElement); Config.GetManager().SaveSection(virtualPathConfig); } }
public override void Install(SiteInitializer initializer) { }
/// <summary> /// Installs this module in Sitefinity system for the first time. /// </summary> /// <param name="initializer">The Site Initializer. A helper class for installing Sitefinity modules.</param> public override void Install(SiteInitializer initializer) { this.InstallVirtualPaths(initializer); this.InstallPageWidgets(initializer); this.InstallFormWidgets(initializer); }
/// <summary> /// Installs the page widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallPageWidgets(SiteInitializer initializer) { string modulePageWidgetSectionName = "TwoFactorAuthentication"; string modulePageWidgetSectionTitle = "Two Factor Authentication"; string modulePageWidgetSectionDescription = "Two Factor Authentication"; initializer.Installer .Toolbox(CommonToolbox.PageWidgets) .LoadOrAddSection(modulePageWidgetSectionName) .SetTitle(modulePageWidgetSectionTitle) .SetDescription(modulePageWidgetSectionDescription) .LoadOrAddWidget<TwoFactorLoginWidget>("TwoFactorLogin") .SetTitle("Two Factor Login") .SetDescription("Two Factor Login Widget") .LocalizeUsing<TwoFactorAuthenticationResources>() .SetCssClass("sfLoginIcn") .Done() .Done() .Done(); }
/// <summary> /// Registers the module data item type into the taxonomy system /// </summary> /// <param name="initializer">The initializer.</param> protected override void InstallTaxonomies(SiteInitializer initializer) { this.InstallTaxonomy(initializer, typeof(ProjectItem)); }
/// <summary> /// Installs the layout widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallLayoutWidgets(SiteInitializer initializer) { }
/// <summary> /// Installs the form widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallFormWidgets(SiteInitializer initializer) { }
/// <summary> /// Uninstalls the specified initializer. /// </summary> /// <param name="initializer">The initializer.</param> public override void Uninstall(SiteInitializer initializer) { base.Uninstall(initializer); }
/// <summary> /// Installs the page widgets. /// </summary> /// <param name="initializer">The initializer.</param> private void InstallPageWidgets(SiteInitializer initializer) { initializer.Installer .Toolbox(CommonToolbox.PageWidgets) .LoadOrAddSection("SuperForms") .SetTitle("SuperForms") .SetDescription("SuperForms") .LoadOrAddWidget<LogicalFormsControl>("LogicalFormsControl") .SetTitle("SuperForms Form") .SetDescription("SuperForms Form control") .SetCssClass("sfFormsIcn") .Done(); }