コード例 #1
0
ファイル: View.ascx.cs プロジェクト: skamphuis/OpenContent
 protected override void OnPreRender(EventArgs e)
 {
     //base.OnPreRender(e);
     //pHelp.Visible = false;
     try
     {
         engine.Render(Page);
     }
     catch (TemplateException ex)
     {
         RenderTemplateException(ex);
     }
     catch (InvalidJsonFileException ex)
     {
         RenderJsonException(ex);
     }
     catch (Exception ex)
     {
         LoggingUtils.ProcessModuleLoadException(this, ex);
     }
     GenerateAndRenderDemoData();
     if (_renderinfo.Template != null && !string.IsNullOrEmpty(_renderinfo.OutputString))
     {
         //Rendering was succesful.
         var lit = new LiteralControl(Server.HtmlDecode(_renderinfo.OutputString));
         Controls.Add(lit);
         var  mst = _renderinfo.Template.Manifest;
         bool editWitoutPostback = mst != null && mst.EditWitoutPostback;
         if (ModuleContext.PortalSettings.EnablePopUps && ModuleContext.IsEditable && editWitoutPostback)
         {
             AJAX.WrapUpdatePanelControl(lit, true);
         }
         try
         {
             engine.IncludeResourses(Page, this);
         }
         catch (Exception ex)
         {
             DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, ex.Message, DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
         }
         //if (DemoData) pDemo.Visible = true;
     }
     if (LogContext.IsLogActive && !Debugger.IsAttached)
     {
         ClientResourceManager.RegisterScript(Page, Page.ResolveUrl("~/DesktopModules/OpenContent/js/opencontent.js"), FileOrder.Js.DefaultPriority);
         StringBuilder logScript = new StringBuilder();
         logScript.AppendLine("<script type=\"text/javascript\"> ");
         logScript.AppendLine("$(document).ready(function () { ");
         logScript.AppendLine("var logs = " + JsonConvert.SerializeObject(LogContext.Current.ModuleLogs(ModuleContext.ModuleId)) + "; ");
         logScript.AppendLine("$.fn.openContent.printLogs('Module " + ModuleContext.ModuleId + " - " + ModuleContext.Configuration.ModuleTitle + "', logs);");
         logScript.AppendLine("});");
         logScript.AppendLine("</script>");
         Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "logScript" + ModuleContext.ModuleId, logScript.ToString());
     }
 }
コード例 #2
0
ファイル: View.ascx.cs プロジェクト: mvanlaar/OpenContent
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     _engine.QueryString = Page.Request.QueryString;
     if (Page.Request.QueryString["id"] != null)
     {
         _engine.ItemId = Page.Request.QueryString["id"];
     }
     _engine.LocalResourceFile = LocalResourceFile;
     _engine.ModuleContext     = ModuleContext;
     if (!Page.IsPostBack)
     {
         AddEditorRole();
         AutoEditMode();
     }
     try
     {
         _engine.Render(Page);
     }
     catch (TemplateException ex)
     {
         RenderTemplateException(ex);
     }
     catch (InvalidJsonFileException ex)
     {
         RenderJsonException(ex);
     }
     catch (NotAuthorizedException ex)
     {
         if (ModuleContext.Configuration.HasEditRightsOnModule())
         {
             RenderHttpException(ex);
         }
         else
         {
             throw ex;
         }
     }
     catch (Exception ex)
     {
         LoggingUtils.ProcessModuleLoadException(this, ex);
     }
     if (_renderinfo.Template != null && !string.IsNullOrEmpty(_renderinfo.OutputString))
     {
         try
         {
             _engine.IncludeResourses(Page, this);
         }
         catch (Exception ex)
         {
             DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, ex.Message, DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
         }
     }
 }
コード例 #3
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);


            if (!Page.IsPostBack)
            {
                AddEditorRole();
                //AutoEditMode();
            }
            try
            {
                _engine.Render(Page);
            }
            catch (TemplateException ex)
            {
                RenderTemplateException(ex);
            }
            catch (InvalidJsonFileException ex)
            {
                RenderJsonException(ex);
            }
            catch (NotAuthorizedException ex)
            {
                if (_engine.ModuleConfig.ViewModule.HasEditRightsOnModule())
                {
                    RenderHttpException(ex);
                }
                else
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                LoggingUtils.ProcessModuleLoadException(this, ex);
            }
            if (_renderinfo.Template != null && !string.IsNullOrEmpty(_renderinfo.OutputString))
            {
                try
                {
                    _engine.IncludeResourses(Page, this);
                }
                catch (Exception ex)
                {
                    DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, ex.Message, DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                }
            }
            if (App.Services.CreateGlobalSettingsRepository(ModuleContext.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={ModuleContext.TabId}&portalid={ModuleContext.PortalId}"));
                //App.Services.ClientResourceManager.RegisterStyleSheet(Page, absUrl);

                //var cssControl = Page.Header.FindControl("OpenContentCss");
                //if (cssControl == null)
                //{
                //    System.Web.UI.HtmlControls.HtmlLink css = new System.Web.UI.HtmlControls.HtmlLink();
                //    css.Href = Page.ResolveUrl($"~/API/OpenContent/Resource/Css?tabid={ModuleContext.TabId}&portalid={ModuleContext.PortalId}&cdv={ModuleContext.PortalSettings.CdfVersion}");
                //    css.Attributes["rel"] = "stylesheet";
                //    css.Attributes["type"] = "text/css";
                //    css.ID = "OpenContentCss";
                //    Page.Header.Controls.Add(css);
                //}
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
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);
                }
            }
        }