protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (!Enabled)
            {
                return;
            }

            int[] hideTabs = new int[1] {
                TabId
            };
            if (!string.IsNullOrEmpty(HideOnTabIds))
            {
                try
                {
                    hideTabs = HideOnTabIds.Split(',', ' ', ';').Select(s => int.Parse(s)).ToArray();
                }
                catch (Exception)
                {
                }
            }
            var activeTab = PortalSettings.ActiveTab;

            if (hideTabs.Contains(activeTab.TabID))
            {
                return;
            }
            if (!ShowOnAdminTabs && activeTab.ParentId == PortalSettings.AdminTabId)
            {
                return;
            }
            if (!ShowOnHostTabs && activeTab.IsSuperTab)
            {
                return;
            }

            ModuleController mc     = new ModuleController();
            ModuleInfo       module = null;

            if (!string.IsNullOrEmpty(ModuleTitle))
            {
                var modules = DnnUtils.GetDnnOpenContentModules(PortalSettings.PortalId);
                module = modules.FirstOrDefault(m => m.ViewModule?.ModuleInfo?.ModuleTitle == ModuleTitle)?.ViewModule.ModuleInfo;
                if (module == null)
                {
                    DotNetNuke.UI.Skins.Skin.AddPageMessage(Page, "OpenContent RenderModule SkinObject", $"No module exist for ModuleTitle {ModuleTitle}", DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                    return;
                }
            }
            else
            {
                module = mc.GetModule(ModuleId, TabId, false);
                if (module == null)
                {
                    DotNetNuke.UI.Skins.Skin.AddPageMessage(Page, "OpenContent RenderModule SkinObject", $"No module exist for TabId {TabId} and ModuleId {ModuleId} ", DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                    return;
                }
            }
            if (!string.IsNullOrEmpty(Template))
            {
                var moduleClone = new ModuleInfo();
                foreach (System.Collections.DictionaryEntry item in module.ModuleSettings)
                {
                    moduleClone.ModuleSettings.Add(item.Key, item.Value);
                }
                moduleClone.ModuleID    = module.ModuleID;
                moduleClone.TabID       = module.TabID;
                moduleClone.TabModuleID = module.TabModuleID;
                moduleClone.PortalID    = module.PortalID;
                moduleClone.ModuleSettings["template"] = Template;
                module = moduleClone;
            }
            var engine = new RenderEngine(OpenContentModuleConfig.Create(module, PortalSettings));

            try
            {
                engine.Render(Page);
            }
            catch (TemplateException ex)
            {
                RenderTemplateException(ex, module);
            }
            catch (InvalidJsonFileException ex)
            {
                RenderJsonException(ex, module);
            }
            catch (Exception ex)
            {
                LoggingUtils.ProcessModuleLoadException(this, module, ex);
            }
            if (engine.Info.Template != null && !string.IsNullOrEmpty(engine.Info.OutputString))
            {
                //Rendering was succesful.
                var lit = new LiteralControl(Server.HtmlDecode(engine.Info.OutputString));
                Controls.Add(lit);
                try
                {
                    engine.IncludeResourses(Page, this);
                }
                catch (Exception ex)
                {
                    DotNetNuke.UI.Skins.Skin.AddPageMessage(Page, "OpenContent RenderModule SkinObject", ex.Message, DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                }
            }
            if (App.Services.CreateGlobalSettingsRepository(activeTab.PortalID).GetCompositeCss())
            {
                //var absUrl = Utils.GetFullUrl(Request, Page.ResolveUrl($"~/DesktopModules/OpenContent/API/Resource/Css?tabid={activeTab.TabID}&portalid={activeTab.PortalID}"));
                var absUrl = Utils.GetFullUrl(Request, Page.ResolveUrl($"~/API/OpenContent/Resource/Css?tabid={activeTab.TabID}&portalid={activeTab.PortalID}"));
                App.Services.ClientResourceManager.RegisterStyleSheet(Page, absUrl);
            }
        }
Beispiel #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            int[] hideTabs = new int[1] {
                TabId
            };
            if (string.IsNullOrEmpty(HideOnTabIds))
            {
                try
                {
                    hideTabs = HideOnTabIds.Split(',', ' ', ';').Select(s => int.Parse(s)).ToArray();
                }
                catch (Exception)
                {
                }
            }
            var activeTab = PortalSettings.ActiveTab;

            if (hideTabs.Contains(activeTab.TabID))
            {
                return;
            }
            if (!ShowOnAdminTabs && activeTab.ParentId == PortalSettings.AdminTabId)
            {
                return;
            }
            if (!ShowOnHostTabs && activeTab.IsSuperTab)
            {
                return;
            }

            ModuleController mc = new ModuleController();
            var module          = mc.GetModule(ModuleId, TabId, false);

            if (module == null)
            {
                DotNetNuke.UI.Skins.Skin.AddPageMessage(Page, "OpenContent RenderModule SkinObject", $"No module exist for TabId {TabId} and ModuleId {ModuleId} ", DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                return;
            }
            if (!string.IsNullOrEmpty(Template))
            {
                var moduleClone = new ModuleInfo();
                foreach (System.Collections.DictionaryEntry item in module.ModuleSettings)
                {
                    moduleClone.ModuleSettings.Add(item.Key, item.Value);
                }
                moduleClone.ModuleID    = module.ModuleID;
                moduleClone.TabID       = module.TabID;
                moduleClone.TabModuleID = module.TabModuleID;
                moduleClone.PortalID    = module.PortalID;
                moduleClone.ModuleSettings["template"] = Template;
                module = moduleClone;
            }
            var engine = new RenderEngine(module);

            try
            {
                engine.Render(Page);
            }
            catch (TemplateException ex)
            {
                RenderTemplateException(ex, module);
            }
            catch (InvalidJsonFileException ex)
            {
                RenderJsonException(ex, module);
            }
            catch (Exception ex)
            {
                LoggingUtils.ProcessModuleLoadException(this, module, ex);
            }
            if (engine.Info.Template != null && !string.IsNullOrEmpty(engine.Info.OutputString))
            {
                //Rendering was succesful.
                var lit = new LiteralControl(Server.HtmlDecode(engine.Info.OutputString));
                Controls.Add(lit);
                try
                {
                    engine.IncludeResourses(Page, this);
                }
                catch (Exception ex)
                {
                    DotNetNuke.UI.Skins.Skin.AddPageMessage(Page, "OpenContent RenderModule SkinObject", ex.Message, DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                }
            }
        }