Esempio n. 1
0
        //this has an overload of whether or not to create a cloned module
        private void DoAddExistingModule(int moduleId, int tabId, string paneName, int position, string align, bool cloneModule)
        {
            var        moduleCtrl = new ModuleController();
            ModuleInfo moduleInfo = moduleCtrl.GetModule(moduleId, tabId, false);

            int userID = -1;

            if (Request.IsAuthenticated)
            {
                UserInfo user = UserController.GetCurrentUserInfo();
                if (((user != null)))
                {
                    userID = user.UserID;
                }
            }

            if ((moduleInfo != null))
            {
                // clone the module object ( to avoid creating an object reference to the data cache )
                ModuleInfo newModule = moduleInfo.Clone();

                newModule.UniqueId = Guid.NewGuid();                 // Cloned Module requires a different uniqueID

                newModule.TabID       = PortalSettings.Current.ActiveTab.TabID;
                newModule.ModuleOrder = position;
                newModule.PaneName    = paneName;
                newModule.Alignment   = align;

                if ((cloneModule))
                {
                    newModule.ModuleID = Null.NullInteger;
                    //reset the module id
                    newModule.ModuleID = moduleCtrl.AddModule(newModule);

                    if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass))
                    {
                        object objObject = Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass);
                        if (objObject is IPortable)
                        {
                            string content = Convert.ToString(((IPortable)objObject).ExportModule(moduleId));
                            if (!string.IsNullOrEmpty(content))
                            {
                                ((IPortable)objObject).ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, userID);
                            }
                        }
                    }
                }
                else
                {
                    moduleCtrl.AddModule(newModule);
                }

                //Add Event Log
                var objEventLog = new EventLogController();
                objEventLog.AddLog(newModule, PortalSettings.Current, userID, "", EventLogController.EventLogType.MODULE_CREATED);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Adds the referenced module to page.
        /// </summary>
        /// <param name="moduleToCopy">The module to copy.</param>
        /// <param name="destinationTabID">The destination tab ID.</param>
        private static void AddReferencedModuleToPage(ModuleInfo moduleToCopy, int destinationTabID)
        {
            // duplicate the module and assign it the new page
            ModuleInfo newModule = moduleToCopy.Clone();

            newModule.TabID = destinationTabID;

            // add it to the system - this takes care of adding the
            // module and the tab module
            newModule.ModuleID = new ModuleController().AddModule(newModule);
        }
 public object Clone()
 {
     return(new RoleModuleRel
     {
         Id = Id,
         RoleId = RoleId,
         ModuleId = ModuleId,
         ModuleInfo = ModuleInfo == null ? null : ModuleInfo.Clone() as SystemModule,
         StartTime = StartTime,
         ExpireTime = ExpireTime,
         CreateTime = CreateTime,
         CreatedBy = CreatedBy,
         LastUpdateTime = LastUpdateTime,
         LastUpdatedBy = LastUpdatedBy
     });
 }
Esempio n. 4
0
        internal static ModuleInfo GetSlaveModule(int moduleId, string key, int tabId)
        {
            HttpRequest request = HttpContext.Current.Request;

            var        moduleController = new ModuleController();
            ModuleInfo slaveModule      = null;

            if (moduleId != -1)
            {
                ModuleInfo module = moduleController.GetModule(moduleId, tabId, false);
                if (module != null)
                {
                    slaveModule = module.Clone();
                }
            }

            if (slaveModule == null)
            {
                slaveModule = (new ModuleInfo {
                    ModuleID = moduleId, ModuleDefID = -1, TabID = tabId, InheritViewPermissions = true
                });
            }

            if (request.QueryString["moduleid"] != null && (key.ToLower() == "module" || key.ToLower() == "help"))
            {
                slaveModule.ModuleDefID = -1;
            }

            if (request.QueryString["dnnprintmode"] != "true")
            {
                slaveModule.ModuleTitle = "";
            }

            slaveModule.Header           = "";
            slaveModule.Footer           = "";
            slaveModule.StartDate        = DateTime.MinValue;
            slaveModule.EndDate          = DateTime.MaxValue;
            slaveModule.Visibility       = VisibilityState.None;
            slaveModule.Color            = "";
            slaveModule.Border           = "";
            slaveModule.DisplayTitle     = true;
            slaveModule.DisplayPrint     = false;
            slaveModule.DisplaySyndicate = false;

            return(slaveModule);
        }
Esempio n. 5
0
        /// <summary>
        /// Copies the module to page.
        /// </summary>
        /// <param name="moduleToCopy">The module to copy.</param>
        /// <param name="destinationTabID">The destination tab ID.</param>
        private static void CopyModuleToPage(ModuleInfo moduleToCopy, int destinationTabID)
        {
            var moduleController = new ModuleController();

            // duplicate the module and assign it the new page
            ModuleInfo newModule = moduleToCopy.Clone();

            newModule.ModuleID = -1;
            newModule.TabID    = destinationTabID;

            // add it to the system - this takes care of adding the
            // module and the tab module
            newModule.ModuleID = moduleController.AddModule(newModule);

            // duplicate the settings for the module
            DuplicateModuleSettings(moduleToCopy, newModule.ModuleID);

            // duplicate the settings for the tabmodule
            moduleController.CopyTabModuleSettings(moduleToCopy, newModule);
        }
Esempio n. 6
0
        private void CloneOrDeleteTabModules(List <int> tabslist, ModuleController objmodules, TabController objTabs, int ftabId, int fmoduleId, StringBuilder actionBuilder)
        {
            foreach (RadTreeNode n in ctlPages.GetAllNodes())
            {
                // if this is the root node, don't make action
                int nval = Convert.ToInt32(n.Value);
                if (nval > 0)
                {
                    //Check if checked has changed
                    int    ttabId = Convert.ToInt32(n.Value);
                    string pname  = n.Text;

                    //The value in DB
                    bool dbcheck = getbchk(tabslist, ttabId);

                    //The value in the Tree
                    bool nodecheck = n.Checked;

                    //if changed Add or Delete the clone
                    if (dbcheck != nodecheck)
                    {
                        //Add case
                        if (!dbcheck && nodecheck)
                        {
                            #region OLD CODE COMMENTED V1
                            //We have a new localiezd version GUID when use the CopyModule(as Display On All Pages) V1
                            //(bug with new localized GUID instead of copy original one like Add existing Module (clone) from new dashboard
                            // BUG ? in DNN Platform\Library\Entities\Modules\ModuleController.cs  l
                            // l1022             destinationModule.LocalizedVersionGuid = Guid.NewGuid();

                            //Add V1 (use CopyModule)
                            //ModuleInfo fmi = objmodules.GetModule(fmoduleId, ftabId);
                            //ModuleInfo tmi = objmodules.GetModule(fmoduleId, ttabId);
                            //TabInfo tti = objTabs.GetTab(ttabId, PortalId, true);
                            ////Does detination module exist ?
                            ////NO
                            //if (tmi == null)
                            //{
                            //    objmodules.CopyModule(fmi, tti, "", Convert.ToBoolean(rbSettings.SelectedValue));
                            //    Action += "Clone Module " + fmoduleId + " on the page : " + pname + "(" + ttabId + ") <br />";
                            //}
                            //else
                            //{
                            //    if (tmi.IsDeleted)
                            //    {
                            //        objmodules.RestoreModule(tmi);
                            //        Action += "Restore Module " + fmoduleId + " on the page : " + pname + "(" + ttabId + ") <br />";
                            //    }
                            //}
                            //end V1
                            #endregion

                            //V2 (inspired from ControlBarController.cs DoAddExistingModule line 589)
                            ModuleInfo fmi       = objmodules.GetModule(fmoduleId, ftabId);
                            ModuleInfo newModule = fmi.Clone();

                            newModule.UniqueId = Guid.NewGuid(); // Cloned Module requires a different uniqueID
                            newModule.TabID    = ttabId;
                            objmodules.AddModule(newModule);

                            actionBuilder.AppendFormat("<div class=\"logLine addModule\">Clone or restore Module {0} ({1}) on the page : {2} ({3}) </div>", newModule.ModuleTitle, fmoduleId, pname, ttabId);

                            //Add Event Log
                            //var objEventLog = new EventLogController();
                            //objEventLog.AddLog(newModule, PortalSettings.Current, userID, "", EventLogController.EventLogType.MODULE_CREATED);
                        }
                        //Delete case
                        if (dbcheck && !nodecheck)
                        {
                            //Delete
                            bool       softDelete = Convert.ToBoolean(rbDelete.SelectedValue);
                            TabInfo    ti         = objTabs.GetTab(ttabId, PortalId, true);
                            ModuleInfo mi         = objmodules.GetModule(fmoduleId, ttabId);
                            objmodules.DeleteTabModule(ttabId, fmoduleId, softDelete);

                            actionBuilder.AppendFormat("<div class=\"logLine delModule\">{0} Module {1} ({2}) of the page : {3} ({4}) </div>",
                                                       (softDelete ? "Send to recycle bin":"Delete"),
                                                       mi.ModuleTitle,
                                                       fmoduleId,
                                                       pname,
                                                       ttabId);
                        }
                    }
                }
            }
            //            Response.Redirect(Request.RawUrl);
            actionBuilder.Append("</div>");
        }
        private void DoAddExistingModule(int moduleId, int tabId, string paneName, int position, string align, bool cloneModule)
        {
            ModuleInfo moduleInfo = ModuleController.Instance.GetModule(moduleId, tabId, false);

            int userID = -1;

            if (this.Request.IsAuthenticated)
            {
                UserInfo user = UserController.Instance.GetCurrentUserInfo();
                if (user != null)
                {
                    userID = user.UserID;
                }
            }

            if (moduleInfo != null)
            {
                // Is this from a site other than our own? (i.e., is the user requesting "module sharing"?)
                var remote = moduleInfo.PortalID != PortalSettings.Current.PortalId;
                if (remote)
                {
                    switch (moduleInfo.DesktopModule.Shareable)
                    {
                    case ModuleSharing.Unsupported:
                        // Should never happen since the module should not be listed in the first place.
                        throw new ApplicationException(string.Format(
                                                           "Module '{0}' does not support Shareable and should not be listed in Add Existing Module from a different source site",
                                                           moduleInfo.DesktopModule.FriendlyName));

                    case ModuleSharing.Supported:
                        break;

                    default:
                    case ModuleSharing.Unknown:
                        break;
                    }
                }

                // clone the module object ( to avoid creating an object reference to the data cache )
                ModuleInfo newModule = moduleInfo.Clone();

                newModule.UniqueId    = Guid.NewGuid(); // Cloned Module requires a different uniqueID
                newModule.TabModuleID = Null.NullInteger;
                newModule.TabID       = PortalSettings.Current.ActiveTab.TabID;
                newModule.ModuleOrder = position;
                newModule.PaneName    = paneName;
                newModule.Alignment   = align;

                if (cloneModule)
                {
                    newModule.ModuleID = Null.NullInteger;

                    // copy module settings and tab module settings
                    newModule.ModuleSettings.Clear();
                    foreach (var key in moduleInfo.ModuleSettings.Keys)
                    {
                        newModule.ModuleSettings.Add(key, moduleInfo.ModuleSettings[key]);
                    }

                    newModule.TabModuleSettings.Clear();
                    foreach (var key in moduleInfo.TabModuleSettings.Keys)
                    {
                        newModule.TabModuleSettings.Add(key, moduleInfo.TabModuleSettings[key]);
                    }

                    // reset the module id
                    newModule.ModuleID = ModuleController.Instance.AddModule(newModule);

                    if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass))
                    {
                        object objObject = Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass);
                        if (objObject is IPortable)
                        {
                            try
                            {
                                SetCloneModuleContext(true);
                                string content = Convert.ToString(((IPortable)objObject).ExportModule(moduleId));
                                if (!string.IsNullOrEmpty(content))
                                {
                                    ((IPortable)objObject).ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, userID);
                                }
                            }
                            finally
                            {
                                SetCloneModuleContext(false);
                            }
                        }
                    }
                }
                else
                {
                    // copy tab module settings
                    newModule.TabModuleSettings.Clear();
                    foreach (var key in moduleInfo.TabModuleSettings.Keys)
                    {
                        newModule.TabModuleSettings.Add(key, moduleInfo.TabModuleSettings[key]);
                    }

                    ModuleController.Instance.AddModule(newModule);
                }

                if (remote)
                {
                    // Ensure the Portal Admin has View rights
                    var       permissionController           = new PermissionController();
                    ArrayList arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
                    AddModulePermission(
                        newModule,
                        (PermissionInfo)arrSystemModuleViewPermissions[0],
                        PortalSettings.Current.AdministratorRoleId,
                        Null.NullInteger,
                        true);

                    // Set PortalID correctly
                    newModule.OwnerPortalID = newModule.PortalID;
                    newModule.PortalID      = PortalSettings.Current.PortalId;
                    ModulePermissionController.SaveModulePermissions(newModule);
                }

                // Add Event Log
                EventLogController.Instance.AddLog(newModule, PortalSettings.Current, userID, string.Empty, EventLogController.EventLogType.MODULE_CREATED);
            }
        }
        private int DoAddExistingModule(int moduleId, int tabId, string paneName, int position, string align, bool cloneModule)
        {
            ModuleInfo moduleInfo = ModuleController.Instance.GetModule(moduleId, tabId, false);

            int userID = -1;

            UserInfo user = UserController.Instance.GetCurrentUserInfo();

            if (user != null)
            {
                userID = user.UserID;
            }


            if ((moduleInfo != null))
            {
                // Is this from a site other than our own? (i.e., is the user requesting "module sharing"?)
                var remote = moduleInfo.PortalID != PortalSettings.Current.PortalId;
                if (remote)
                {
                    switch (moduleInfo.DesktopModule.Shareable)
                    {
                    case ModuleSharing.Unsupported:
                        // Should never happen since the module should not be listed in the first place.
                        throw new ApplicationException(string.Format("Module '{0}' does not support Shareable and should not be listed in Add Existing Module from a different source site",
                                                                     moduleInfo.DesktopModule.FriendlyName));

                    case ModuleSharing.Supported:
                        break;

                    case ModuleSharing.Unknown:
                        break;
                    }
                }

                // clone the module object ( to avoid creating an object reference to the data cache )
                ModuleInfo newModule = moduleInfo.Clone();

                newModule.UniqueId = Guid.NewGuid(); // Cloned Module requires a different uniqueID

                newModule.TabID       = PortalSettings.Current.ActiveTab.TabID;
                newModule.ModuleOrder = position;
                newModule.PaneName    = paneName;
                newModule.Alignment   = align;

                if ((cloneModule))
                {
                    newModule.ModuleID = Null.NullInteger;
                    //reset the module id
                    newModule.ModuleID = ModuleController.Instance.AddModule(newModule);

                    if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass))
                    {
                        object objObject = DotNetNuke.Framework.Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass);
                        if (objObject is IPortable)
                        {
                            string content = Convert.ToString(((IPortable)objObject).ExportModule(moduleId));
                            if (!string.IsNullOrEmpty(content))
                            {
                                ((IPortable)objObject).ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, userID);
                            }
                        }
                    }
                }
                else
                {
                    ModuleController.Instance.AddModule(newModule);
                }

                //if the tab of original module has custom stylesheet defined, then also copy the stylesheet
                //to the destination tab if its custom stylesheet is empty.
                var originalTab = TabController.Instance.GetTab(moduleInfo.TabID, moduleInfo.PortalID);
                var targetTab   = PortalSettings.Current.ActiveTab;
                if (originalTab != null &&
                    originalTab.TabSettings.ContainsKey("CustomStylesheet") &&
                    !string.IsNullOrEmpty(originalTab.TabSettings["CustomStylesheet"].ToString()) &&
                    (!targetTab.TabSettings.ContainsKey("CustomStylesheet") ||
                     string.IsNullOrEmpty(targetTab.TabSettings["CustomStylesheet"].ToString())))
                {
                    TabController.Instance.UpdateTabSetting(targetTab.TabID, "CustomStylesheet", originalTab.TabSettings["CustomStylesheet"].ToString());
                }

                if (remote)
                {
                    //Ensure the Portal Admin has View rights
                    var       permissionController           = new PermissionController();
                    ArrayList arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
                    AddModulePermission(newModule,
                                        (PermissionInfo)arrSystemModuleViewPermissions[0],
                                        PortalSettings.Current.AdministratorRoleId,
                                        Null.NullInteger,
                                        true);

                    //Set PortalID correctly
                    newModule.OwnerPortalID = newModule.PortalID;
                    newModule.PortalID      = PortalSettings.Current.PortalId;
                    ModulePermissionController.SaveModulePermissions(newModule);
                }

                //Add Event Log
                EventLogController.Instance.AddLog(newModule, PortalSettings.Current, userID, "", EventLogController.EventLogType.MODULE_CREATED);

                return(newModule.ModuleID);
            }

            return(-1);
        }
Esempio n. 9
0
        /// <summary>
        /// The GetPortalSettings method builds the site Settings
        /// </summary>
        /// <remarks>
        /// </remarks>
        ///	<param name="TabId">The current tabs id</param>
        ///	<param name="objPortalAliasInfo">The Portal Alias object</param>
        private void GetPortalSettings(int TabId, PortalAliasInfo objPortalAliasInfo)
        {
            PortalController objPortals = new PortalController();
            PortalInfo       objPortal  = null;
            TabController    objTabs    = new TabController();
            ModuleController objModules = new ModuleController();
            ModuleInfo       objModule  = null;
            SkinInfo         objSkin    = null;

            PortalId = objPortalAliasInfo.PortalID;

            // get portal settings
            objPortal = objPortals.GetPortal(PortalId);
            if (objPortal != null)
            {
                this.PortalAlias           = objPortalAliasInfo;
                this.PortalId              = objPortal.PortalID;
                this.PortalName            = objPortal.PortalName;
                this.LogoFile              = objPortal.LogoFile;
                this.FooterText            = objPortal.FooterText;
                this.ExpiryDate            = objPortal.ExpiryDate;
                this.UserRegistration      = objPortal.UserRegistration;
                this.BannerAdvertising     = objPortal.BannerAdvertising;
                this.Currency              = objPortal.Currency;
                this.AdministratorId       = objPortal.AdministratorId;
                this.Email                 = objPortal.Email;
                this.HostFee               = objPortal.HostFee;
                this.HostSpace             = objPortal.HostSpace;
                this.PageQuota             = objPortal.PageQuota;
                this.UserQuota             = objPortal.UserQuota;
                this.AdministratorRoleId   = objPortal.AdministratorRoleId;
                this.AdministratorRoleName = objPortal.AdministratorRoleName;
                this.RegisteredRoleId      = objPortal.RegisteredRoleId;
                this.RegisteredRoleName    = objPortal.RegisteredRoleName;
                this.Description           = objPortal.Description;
                this.KeyWords              = objPortal.KeyWords;
                this.BackgroundFile        = objPortal.BackgroundFile;
                this.GUID            = objPortal.GUID;
                this.SiteLogHistory  = objPortal.SiteLogHistory;
                this.AdminTabId      = objPortal.AdminTabId;
                this.SuperTabId      = objPortal.SuperTabId;
                this.SplashTabId     = objPortal.SplashTabId;
                this.HomeTabId       = objPortal.HomeTabId;
                this.LoginTabId      = objPortal.LoginTabId;
                this.UserTabId       = objPortal.UserTabId;
                this.DefaultLanguage = objPortal.DefaultLanguage;
                this.TimeZoneOffset  = objPortal.TimeZoneOffset;
                this.HomeDirectory   = objPortal.HomeDirectory;
                this.Version         = objPortal.Version;
                this.AdminSkin       = SkinController.GetSkin(SkinInfo.RootSkin, PortalId, SkinType.Admin);
                this.PortalSkin      = SkinController.GetSkin(SkinInfo.RootSkin, PortalId, SkinType.Portal);
                this.AdminContainer  = SkinController.GetSkin(SkinInfo.RootContainer, PortalId, SkinType.Admin);
                this.PortalContainer = SkinController.GetSkin(SkinInfo.RootContainer, PortalId, SkinType.Portal);
                this.Pages           = objPortal.Pages;
                this.Users           = objPortal.Users;

                // set custom properties
                if (Null.IsNull(this.HostSpace))
                {
                    this.HostSpace = 0;
                }
                if (Null.IsNull(this.DefaultLanguage))
                {
                    this.DefaultLanguage = Localization.SystemLocale;
                }
                if (Null.IsNull(this.TimeZoneOffset))
                {
                    this.TimeZoneOffset = Localization.SystemTimeZoneOffset;
                }
                this.HomeDirectory = Globals.ApplicationPath + "/" + objPortal.HomeDirectory + "/";

                // get application version
                Array arrVersion = Globals.glbAppVersion.Split(Convert.ToChar("."));
                int   intMajor   = Convert.ToInt32(arrVersion.GetValue((0)));
                int   intMinor   = Convert.ToInt32(arrVersion.GetValue((1)));
                int   intBuild   = Convert.ToInt32(arrVersion.GetValue((2)));
                this.Version = string.Format("{0}.{1}.{2}", intMajor, intMinor, intBuild);
            }

            //Add each portal Tab to DekstopTabs
            TabInfo objPortalTab = null;

            foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(this.PortalId))
            {
                // clone the tab object ( to avoid creating an object reference to the data cache )
                objPortalTab = tabPair.Value.Clone();

                // set custom properties
                if (objPortalTab.TabOrder == 0)
                {
                    objPortalTab.TabOrder = 999;
                }
                if (Null.IsNull(objPortalTab.StartDate))
                {
                    objPortalTab.StartDate = DateTime.MinValue;
                }
                if (Null.IsNull(objPortalTab.EndDate))
                {
                    objPortalTab.EndDate = DateTime.MaxValue;
                }
                objPortalTab.IsSuperTab = false;

                this.DesktopTabs.Add(objPortalTab);
            }

            //Add each host Tab to DesktopTabs
            TabInfo objHostTab = null;

            foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(Null.NullInteger))
            {
                // clone the tab object ( to avoid creating an object reference to the data cache )
                objHostTab            = tabPair.Value.Clone();
                objHostTab.PortalID   = this.PortalId;
                objHostTab.StartDate  = DateTime.MinValue;
                objHostTab.EndDate    = DateTime.MaxValue;
                objHostTab.IsSuperTab = true;

                this.DesktopTabs.Add(objHostTab);
            }

            //At this point the DesktopTabs Collection contains all the Tabs for the current portal
            //verify tab for portal. This assigns the Active Tab based on the Tab Id/PortalId
            if (VerifyPortalTab(PortalId, TabId))
            {
                if (this.ActiveTab != null)
                {
                    // skin
                    if (this.ActiveTab.SkinSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            objSkin = this.AdminSkin;
                        }
                        else
                        {
                            objSkin = this.PortalSkin;
                        }
                        if (objSkin != null)
                        {
                            this.ActiveTab.SkinSrc = objSkin.SkinSrc;
                        }
                    }
                    if (this.ActiveTab.SkinSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            this.ActiveTab.SkinSrc = "[G]" + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultAdminSkin;
                        }
                        else
                        {
                            this.ActiveTab.SkinSrc = "[G]" + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultSkin;
                        }
                    }
                    this.ActiveTab.SkinSrc  = SkinController.FormatSkinSrc(this.ActiveTab.SkinSrc, this);
                    this.ActiveTab.SkinPath = SkinController.FormatSkinPath(this.ActiveTab.SkinSrc);
                    // container
                    if (this.ActiveTab.ContainerSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            objSkin = this.AdminContainer;
                        }
                        else
                        {
                            objSkin = this.PortalContainer;
                        }
                        if (objSkin != null)
                        {
                            this.ActiveTab.ContainerSrc = objSkin.SkinSrc;
                        }
                    }
                    if (this.ActiveTab.ContainerSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            this.ActiveTab.ContainerSrc = "[G]" + SkinInfo.RootContainer + Globals.glbDefaultContainerFolder + Globals.glbDefaultAdminContainer;
                        }
                        else
                        {
                            this.ActiveTab.ContainerSrc = "[G]" + SkinInfo.RootContainer + Globals.glbDefaultContainerFolder + Globals.glbDefaultContainer;
                        }
                    }
                    this.ActiveTab.ContainerSrc  = SkinController.FormatSkinSrc(this.ActiveTab.ContainerSrc, this);
                    this.ActiveTab.ContainerPath = SkinController.FormatSkinPath(this.ActiveTab.ContainerSrc);

                    // initialize collections
                    this.ActiveTab.BreadCrumbs = new ArrayList();
                    this.ActiveTab.Panes       = new ArrayList();
                    this.ActiveTab.Modules     = new ArrayList();

                    // get breadcrumbs for current tab
                    GetBreadCrumbsRecursively(this.ActiveTab.BreadCrumbs, this.ActiveTab.TabID);
                }
            }

            Hashtable objPaneModules = new Hashtable();

            // get current tab modules
            foreach (KeyValuePair <int, ModuleInfo> kvp in objModules.GetTabModules(this.ActiveTab.TabID))
            {
                objModule = kvp.Value;

                // clone the module object ( to avoid creating an object reference to the data cache )
                ModuleInfo cloneModule = objModule.Clone();

                // set custom properties
                if (Null.IsNull(cloneModule.StartDate))
                {
                    cloneModule.StartDate = DateTime.MinValue;
                }
                if (Null.IsNull(cloneModule.EndDate))
                {
                    cloneModule.EndDate = DateTime.MaxValue;
                }
                // container
                if (cloneModule.ContainerSrc == "")
                {
                    cloneModule.ContainerSrc = this.ActiveTab.ContainerSrc;
                }
                cloneModule.ContainerSrc  = SkinController.FormatSkinSrc(cloneModule.ContainerSrc, this);
                cloneModule.ContainerPath = SkinController.FormatSkinPath(cloneModule.ContainerSrc);

                // process tab panes
                if (objPaneModules.ContainsKey(cloneModule.PaneName) == false)
                {
                    objPaneModules.Add(cloneModule.PaneName, 0);
                }
                cloneModule.PaneModuleCount = 0;
                if (!cloneModule.IsDeleted)
                {
                    objPaneModules[cloneModule.PaneName] = Convert.ToInt32(objPaneModules[cloneModule.PaneName]) + 1;
                    cloneModule.PaneModuleIndex          = Convert.ToInt32(objPaneModules[cloneModule.PaneName]) - 1;
                }

                this.ActiveTab.Modules.Add(cloneModule);
            }

            // set pane module count
            foreach (ModuleInfo objModuleWithinLoop in this.ActiveTab.Modules)
            {
                objModule = objModuleWithinLoop;
                objModuleWithinLoop.PaneModuleCount = Convert.ToInt32(objPaneModules[objModuleWithinLoop.PaneName]);
            }
        }
Esempio n. 10
0
        private bool ProcessSlaveModule()
        {
            ModuleController objModules  = new ModuleController();
            ModuleInfo       objModule   = null;
            ModuleInfo       slaveModule = null;
            int    moduleId = -1;
            string key      = "";
            bool   bSuccess = true;

            if (Request.QueryString["mid"] != null)
            {
                Int32.TryParse(Request.QueryString["mid"], out moduleId);
            }
            if (Request.QueryString["ctl"] != null)
            {
                key = Request.QueryString["ctl"];
            }
            if (Request.QueryString["moduleid"] != null && (key.ToLower() == "module" || key.ToLower() == "help"))
            {
                Int32.TryParse(Request.QueryString["moduleid"], out moduleId);
            }
            if (moduleId != -1)
            {
                objModule = objModules.GetModule(moduleId, PortalSettings.ActiveTab.TabID, false);
                if (objModule != null)
                {
                    slaveModule = objModule.Clone();
                }
            }
            if (slaveModule == null)
            {
                slaveModule             = new ModuleInfo();
                slaveModule.ModuleID    = moduleId;
                slaveModule.ModuleDefID = -1;
                slaveModule.TabID       = PortalSettings.ActiveTab.TabID;
            }
            if (Request.QueryString["moduleid"] != null && (key.ToLower() == "module" || key.ToLower() == "help"))
            {
                slaveModule.ModuleDefID = -1;
            }
            if (Request.QueryString["dnnprintmode"] != "true")
            {
                slaveModule.ModuleTitle = "";
            }
            slaveModule.Header           = "";
            slaveModule.Footer           = "";
            slaveModule.StartDate        = DateTime.MinValue;
            slaveModule.EndDate          = DateTime.MaxValue;
            slaveModule.PaneName         = Common.Globals.glbDefaultPane;
            slaveModule.Visibility       = VisibilityState.None;
            slaveModule.Color            = "";
            slaveModule.Border           = "";
            slaveModule.DisplayTitle     = true;
            slaveModule.DisplayPrint     = false;
            slaveModule.DisplaySyndicate = false;
            slaveModule.ContainerSrc     = PortalSettings.ActiveTab.ContainerSrc;
            if (string.IsNullOrEmpty(slaveModule.ContainerSrc))
            {
                slaveModule.ContainerSrc = PortalSettings.DefaultPortalContainer;
            }
            slaveModule.ContainerSrc  = SkinController.FormatSkinSrc(slaveModule.ContainerSrc, PortalSettings);
            slaveModule.ContainerPath = SkinController.FormatSkinPath(slaveModule.ContainerSrc);
            Pane pane   = null;
            bool bFound = Panes.TryGetValue(Common.Globals.glbDefaultPane.ToLowerInvariant(), out pane);
            ModuleControlInfo objModuleControl = ModuleControlController.GetModuleControlByControlKey(key, slaveModule.ModuleDefID);

            if (objModuleControl != null)
            {
                slaveModule.ModuleControlId = objModuleControl.ModuleControlID;
                slaveModule.IconFile        = objModuleControl.IconFile;
                if (ModulePermissionController.HasModuleAccess(slaveModule.ModuleControl.ControlType, Null.NullString, slaveModule))
                {
                    bSuccess = InjectModule(pane, slaveModule);
                }
                else
                {
                    Response.Redirect(Common.Globals.AccessDeniedURL(MODULEACCESS_ERROR), true);
                }
            }
            return(bSuccess);
        }