Example #1
0
        /// <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);
        }
Example #2
0
 /// <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";
                }
            }
        }
Example #5
0
        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());
        }
Example #6
0
        /// <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();
        }
Example #7
0
        /// <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
                });
            }
        }
Example #8
0
 /// <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();
        }
Example #12
0
        /// <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);
                }
            }
        }
Example #13
0
        /// <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();
        }
Example #15
0
 /// <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();
 }
Example #16
0
        /// <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);
        }
Example #18
0
        /// <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();
            }
        }
Example #19
0
        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();
        }
Example #21
0
        /// <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);
     }
 }
Example #24
0
        /// <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);
                }
            }
        }
Example #26
0
        /// <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);
        }
Example #28
0
        /// <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);
        }
Example #29
0
        public override void Upgrade(SiteInitializer initializer, Version upgradeFrom)
        {
            base.Upgrade(initializer, upgradeFrom);

            if (upgradeFrom < new Version("1.0.0.1"))
            {
                UpgradeHelloWorldModule(initializer);
            }
        }
Example #30
0
        /// <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();
 }
Example #36
0
 private void InitialUpgrade(SiteInitializer initializer)
 {
     this.RemoveFrontendService();
     this.RenameControllers(initializer);
     this.ClearToolboxItems();
 }
Example #37
0
        /// <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();
            }
        }
Example #38
0
 /// <summary>
 /// Installs the specified initializer.
 /// </summary>
 /// <param name="initializer">The initializer.</param>
 public override void Install(SiteInitializer initializer)
 {
     if (this.FrontendServiceExists())
     {
         this.InitialUpgrade(initializer);
     }
 }
Example #39
0
        /// <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 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); 
        }
Example #47
0
        /// <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);
            }
        }
Example #48
0
        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();
        }
Example #56
0
 /// <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();
 }