/// <summary> /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> private bool CreateModuleDefinition() { try { if (PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == GetClassName()) == null) { var controlName = Null.NullString; //Create module folder CreateModuleFolder(); //Create module control controlName = CreateModuleControl(); if (controlName != "") { //Create package var objPackage = new PackageInfo(); objPackage.Name = GetClassName(); objPackage.FriendlyName = txtModule.Text; objPackage.Description = txtDescription.Text; objPackage.Version = new Version(1, 0, 0); objPackage.PackageType = "Module"; objPackage.License = ""; objPackage.Owner = txtOwner.Text; objPackage.Organization = txtOwner.Text; objPackage.FolderName = "DesktopModules/" + GetFolderName(); objPackage.License = "The license for this package is not currently included within the installation file, please check with the vendor for full license details."; objPackage.ReleaseNotes = "This package has no Release Notes."; PackageController.Instance.SaveExtensionPackage(objPackage); //Create desktopmodule var objDesktopModules = new DesktopModuleController(); var objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = GetClassName(); objDesktopModule.FolderName = GetFolderName(); objDesktopModule.FriendlyName = txtModule.Text; objDesktopModule.Description = txtDescription.Text; objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = "01.00.00"; objDesktopModule.BusinessControllerClass = ""; objDesktopModule.CompatibleVersions = ""; objDesktopModule.Dependencies = ""; objDesktopModule.Permissions = ""; objDesktopModule.PackageID = objPackage.PackageID; objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); objDesktopModule = objDesktopModules.GetDesktopModule(objDesktopModule.DesktopModuleID); //Add OwnerName to the DesktopModule taxonomy and associate it with this module var vocabularyId = -1; var termId = -1; var objTermController = DotNetNuke.Entities.Content.Common.Util.GetTermController(); var objTerms = objTermController.GetTermsByVocabulary("Module_Categories"); foreach (Term term in objTerms) { vocabularyId = term.VocabularyId; if (term.Name == txtOwner.Text) { termId = term.TermId; } } if (termId == -1) { termId = objTermController.AddTerm(new Term(vocabularyId) { Name = txtOwner.Text }); } var objTerm = objTermController.GetTerm(termId); var objContentController = DotNetNuke.Entities.Content.Common.Util.GetContentController(); var objContent = objContentController.GetContentItem(objDesktopModule.ContentItemId); objTermController.AddTermToContent(objTerm, objContent); //Add desktopmodule to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Create module definition var objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; // need core enhancement to have a unique DefinitionName objModuleDefinition.FriendlyName = GetClassName(); //objModuleDefinition.FriendlyName = txtModule.Text; //objModuleDefinition.DefinitionName = GetClassName(); objModuleDefinition.DefaultCacheTime = 0; objModuleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(objModuleDefinition, false, true); //Create modulecontrol var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = "DesktopModules/" + GetFolderName() + "/" + controlName; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; objModuleControl.SupportsPopUps = false; ModuleControlController.AddModuleControl(objModuleControl); //Update current module to reference new moduledefinition var objModules = new ModuleController(); var objModule = objModules.GetModule(ModuleId, TabId, false); objModule.ModuleDefID = objModuleDefinition.ModuleDefID; objModule.ModuleTitle = txtModule.Text; //HACK - need core enhancement to be able to update ModuleDefID DotNetNuke.Data.DataProvider.Instance().ExecuteSQL("Update dbo.Modules set ModuleDefID = " + objModule.ModuleDefID.ToString() + " where ModuleID = " + ModuleId.ToString()); objModules.UpdateModule(objModule); return(true); } else { DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("TemplateProblem.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.YellowWarning); return(false); } } else { DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AlreadyExists.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.YellowWarning); return(false); } } catch (Exception exc) { Exceptions.LogException(exc); DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, exc.ToString(), ModuleMessage.ModuleMessageType.RedError); return(false); } }
/// <summary> /// </summary> /// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> /// <history> /// </history> private ModuleDefinitionInfo ImportControl(string controlSrc) { ModuleDefinitionInfo moduleDefinition = null; try { string folder = PathUtils.Instance.RemoveTrailingSlash(GetSourceFolder()); string friendlyName = txtName.Text; string name = GetClassName(); string moduleControl = "DesktopModules/" + folder + "/" + controlSrc; var package = new PackageInfo(); package.Name = name; package.FriendlyName = friendlyName; package.Description = txtDescription.Text; package.Version = new Version(1, 0, 0); package.PackageType = "Module"; package.License = Util.PACKAGE_NoLicense; //Save Package PackageController.SavePackage(package); var objDesktopModules = new DesktopModuleController(); var objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = name; objDesktopModule.FolderName = folder; objDesktopModule.FriendlyName = friendlyName; objDesktopModule.Description = txtDescription.Text; objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = "01.00.00"; objDesktopModule.BusinessControllerClass = ""; objDesktopModule.CompatibleVersions = ""; objDesktopModule.Dependencies = ""; objDesktopModule.Permissions = ""; objDesktopModule.PackageID = package.PackageID; #pragma warning disable 612,618 objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); #pragma warning restore 612,618 //Add module to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Save module definition moduleDefinition = new ModuleDefinitionInfo(); moduleDefinition.ModuleDefID = Null.NullInteger; moduleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; moduleDefinition.FriendlyName = friendlyName; moduleDefinition.DefaultCacheTime = 0; moduleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(moduleDefinition, false, true); //Save module control var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = moduleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = moduleControl; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; ModuleControlController.AddModuleControl(objModuleControl); } catch (Exception exc) { Exceptions.LogException(exc); UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ImportControl.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } return(moduleDefinition); }
/// <summary> /// cmdUpdate_Click runs when the Update Button is clicked /// </summary> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void cmdUpdate_Click(object sender, EventArgs e) { try { if (Page.IsValid) { DesktopModuleInfo objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = DesktopModuleId; objDesktopModule.ModuleName = txtModuleName.Text; objDesktopModule.FolderName = txtFolderName.Text; objDesktopModule.FriendlyName = txtFriendlyName.Text; if (objDesktopModule.FolderName == "") { objDesktopModule.FolderName = objDesktopModule.ModuleName; } objDesktopModule.Description = txtDescription.Text; objDesktopModule.IsPremium = chkPremium.Checked; objDesktopModule.IsAdmin = false; if (!String.IsNullOrEmpty(txtVersion.Text)) { objDesktopModule.Version = txtVersion.Text; } else { objDesktopModule.Version = Null.NullString; } if (!String.IsNullOrEmpty(txtBusinessClass.Text)) { objDesktopModule.BusinessControllerClass = txtBusinessClass.Text; } else { objDesktopModule.BusinessControllerClass = Null.NullString; } if (!String.IsNullOrEmpty(txtCompatibleVersions.Text)) { objDesktopModule.CompatibleVersions = txtCompatibleVersions.Text; } else { objDesktopModule.CompatibleVersions = Null.NullString; } DesktopModuleController objDesktopModules = new DesktopModuleController(); if (Null.IsNull(DesktopModuleId)) { try { objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); } catch { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AddModule.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError); return; } } else { objDesktopModules.UpdateDesktopModule(objDesktopModule); } // delete old portal module assignments objDesktopModules.DeletePortalDesktopModules(Null.NullInteger, objDesktopModule.DesktopModuleID); // add new portal module assignments if (objDesktopModule.IsPremium) { foreach (ListItem objListItem in ctlPortals.Assigned) { objDesktopModules.AddPortalDesktopModule(int.Parse(objListItem.Value), objDesktopModule.DesktopModuleID); } } // update interfaces UpdateModuleInterfaces(objDesktopModule.BusinessControllerClass); Response.Redirect(EditUrl("desktopmoduleid", objDesktopModule.DesktopModuleID.ToString()), true); } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
protected virtual void RegisterModules(PaFolder Folder, ArrayList Modules, ArrayList Controls) { InstallerInfo.Log.StartJob(REGISTER_Module); DesktopModuleController objDesktopModules = new DesktopModuleController(); // check if desktop module exists DesktopModuleInfo objDesktopModule = GetDesktopModule(Folder); if (objDesktopModule == null) { objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; } objDesktopModule = GetDesktopModuleSettings(objDesktopModule, Folder); if (Null.IsNull(objDesktopModule.DesktopModuleID)) { // new desktop module objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); } else { // existing desktop module objDesktopModules.UpdateDesktopModule(objDesktopModule); } InstallerInfo.Log.AddInfo(REGISTER_Definition); ModuleDefinitionController objModuleDefinitons = new ModuleDefinitionController(); foreach (ModuleDefinitionInfo objModuleDefinition in Modules) { // check if definition exists ModuleDefinitionInfo objModuleDefinition2 = objModuleDefinitons.GetModuleDefinitionByName(objDesktopModule.DesktopModuleID, objModuleDefinition.FriendlyName); if (objModuleDefinition2 == null) { // add new definition objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.ModuleDefID = objModuleDefinitons.AddModuleDefinition(objModuleDefinition); } else { // update existing definition objModuleDefinition.ModuleDefID = objModuleDefinition2.ModuleDefID; objModuleDefinitons.UpdateModuleDefinition(objModuleDefinition); } } InstallerInfo.Log.AddInfo(REGISTER_Controls); ModuleControlController objModuleControls = new ModuleControlController(); foreach (ModuleControlInfo objModuleControl in Controls) { // get the real ModuleDefID from the associated Module objModuleControl.ModuleDefID = GetModDefID(objModuleControl.ModuleDefID, Modules); // check if control exists ModuleControlInfo objModuleControl2 = objModuleControls.GetModuleControlByKeyAndSrc(objModuleControl.ModuleDefID, objModuleControl.ControlKey, objModuleControl.ControlSrc); if (objModuleControl2 == null) { // add new control objModuleControls.AddModuleControl(objModuleControl); } else { // update existing control objModuleControl.ModuleControlID = objModuleControl2.ModuleControlID; objModuleControls.UpdateModuleControl(objModuleControl); } } InstallerInfo.Log.EndJob(REGISTER_End); UpgradeModule(objDesktopModule); }
/// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> private void InstallManifest(string strManifest) { XmlDocument doc = new XmlDocument(); try { doc.Load(strManifest); XmlNode dnnRoot = doc.DocumentElement; foreach (XmlElement FolderElement in dnnRoot.SelectNodes("folders/folder")) { DesktopModuleController objDesktopModules = new DesktopModuleController(); DesktopModuleInfo objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = XmlUtils.GetNodeValue(FolderElement, "modulename", ""); objDesktopModule.FolderName = XmlUtils.GetNodeValue(FolderElement, "foldername", ""); objDesktopModule.FriendlyName = XmlUtils.GetNodeValue(FolderElement, "friendlyname", ""); if (objDesktopModule.FolderName == "") { objDesktopModule.FolderName = objDesktopModule.ModuleName; } objDesktopModule.Description = XmlUtils.GetNodeValue(FolderElement, "description", ""); objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = XmlUtils.GetNodeValue(FolderElement, "version", ""); objDesktopModule.BusinessControllerClass = XmlUtils.GetNodeValue(FolderElement, "businesscontrollerclass", ""); objDesktopModule.CompatibleVersions = XmlUtils.GetNodeValue(FolderElement, "compatibleversions", ""); objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); foreach (XmlElement ModuleElement in FolderElement.SelectNodes("modules/module")) { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.FriendlyName = XmlUtils.GetNodeValue(ModuleElement, "friendlyname", ""); objModuleDefinition.DefaultCacheTime = XmlUtils.GetNodeValueInt(ModuleElement, "cachetime", 0); objModuleDefinition.ModuleDefID = objModuleDefinitions.AddModuleDefinition(objModuleDefinition); foreach (XmlElement ControlElement in ModuleElement.SelectNodes("controls/control")) { ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = XmlUtils.GetNodeValue(ControlElement, "key", ""); objModuleControl.ControlSrc = XmlUtils.GetNodeValue(ControlElement, "src", ""); objModuleControl.ControlTitle = XmlUtils.GetNodeValue(ControlElement, "title", ""); switch (XmlUtils.GetNodeValue(ControlElement, "type", "")) { case "Anonymous": objModuleControl.ControlType = SecurityAccessLevel.Anonymous; break; case "View": objModuleControl.ControlType = SecurityAccessLevel.View; break; case "Edit": objModuleControl.ControlType = SecurityAccessLevel.Edit; break; case "Admin": objModuleControl.ControlType = SecurityAccessLevel.Admin; break; case "Host": objModuleControl.ControlType = SecurityAccessLevel.Host; break; } objModuleControl.HelpURL = XmlUtils.GetNodeValue(ControlElement, "helpurl", ""); objModuleControl.IconFile = XmlUtils.GetNodeValue(ControlElement, "iconfile", ""); objModuleControl.ViewOrder = XmlUtils.GetNodeValueInt(ControlElement, "vieworder", 0); objModuleControls.AddModuleControl(objModuleControl); } } // update interfaces UpdateModuleInterfaces(objDesktopModule.BusinessControllerClass); } Response.Redirect(Globals.NavigateURL(), true); } catch { // can not open manifest UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallManifest.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError); } }