DotNetNuke Platform, which is also known as DNN Community Edition, is a cost-free, open-source content management system that is created on the .NET framework. The DNN Platform is intended to be user-friendly, even without advanced programming skills. It offers design skins that facilitate the effortless modification of a website's appearance and permits the integration of third-party modules to incorporate additional functionalities. With support for Multi-tenancy, the CMS allows for multiple sites to be built on the same architecture.
DotNetNuke (DNN), also known as Evoq as the Paied version, is a powerful content management system that can provide a significant boost to your web presence. Whether you are a web developer or a company seeking to enhance your UX, UI, and marketing efforts, DNN is a highly recommended solution. With DNN, you can efficiently build and maintain websites, making it an ideal platform for developers, clients, users, and customers. DNN's flexibility and potential make it a favored platform over others in the industry.
DNN is famous for simple content editing and creation, unmatched security, advanced features like schedulers, workflow, and membership with permissions, ultimate platform flexibility, based on portals and modular structure, website speed and configurations, well-supported with ecosystems, great for applications or intranets, reduced cost, proven and established.
What are DotNetNuke Settings
The customizable parameters that can be set for a module instance on a particular page are referred to as settings in the DotNetNuke module. The module creator can provide these settings, which can vary for each instance of the module on various pages.
DotNetNuke modules have two different sorts of settings: Tab-Module settings and Module settings.
Whereas Tab-Module settings are only connected with one instance of a module, module settings are associated with all instances of a module across several pages (on a single page). While Tab-Module settings are dedicated to a specific instance of the module on a certain page, Module settings are often used to establish generic configuration parameters for the module.
The global configuration options that apply to every instance of the module, such as the default values for input fields, email notifications, or connection strings, are examples of module settings. Settings for a particular instance of the module on a page, such as a page size, display style, or sorting order, are examples of tab-module settings.
In DotNetNuke, settings are normally controlled via a settings user control that may be found on the main settings page for the module. The settings for the module are saved when the user hits "Update" using the ModuleController object in C# or Visual Basic .NET. The UpdateModuleSetting() or UpdateTabModuleSetting() methods can be used by developers to save Module or Tab-Module settings, respectively, and the Settings[] property can be used to obtain the current settings.
Why DNN Settings?
DotNetNuke settings are necessary because they let users and administrators alter how modules and pages behave and look on a DotNetNuke website. Without substantial coding or programming skills, settings allow website owners to customize the operation of a module or page to their unique needs and preferences.
For instance, a module may have parameters to regulate the number of things shown, the sequence of the display, or the content's aesthetic. Without needing changes to the module's underlying code, these parameters can be changed by the administrator or end-user of the module.
Similarly to this, page settings give website owners the ability to alter the design and operation of certain pages. For example, page settings allow for the customization of a page's title, SEO settings, and caching options.
DotNetNuke settings offer a flexible and user-friendly approach to altering a website's behavior and design, making it simpler for website owners to build and maintain a site that satisfies their unique requirements and objectives.
DotNetNuke Types of Settings
In DotNetNuke, different types of settings can be associated with a module. Here are some of the most common module settings:
Module Settings: All module instances across various pages are connected by the module settings. Module titles, module permissions, and module caching are a few examples of popular module settings.
Tab Module Settings: Only one instance of a module on a single page is associated with a tab module's settings. Module visibility, module width, and module alignment are frequently used options for tab modules.
User Settings: User settings are saved in the user's profile and are unique to that user. Personal choices, such as text size or color scheme, can be saved in user settings.
Host Settings: Global settings called hosts are used throughout the whole DotNetNuke installation. SMTP email settings and security policies are two examples of system-wide settings that can be configured using these settings.
Portal Settings: Settings for a given website or portal are unique to that one. Portal name, portal alias, default language, and administrator email are a few typical portal options.
Skin Object Settings: A specific skin object, which is a piece of code that gives a skin extra functionality, has options that go along with it. The number of items to display in a menu or the number of articles to display in a news feed are two popular skin object options.
ScheduleItem Settings: ScheduleItemSettings in DotNetNuke is a module setting that enables website administrators to schedule and configure the recurrence of a module's content. It allows for the definition of a start and end date, a recurrence pattern, specific days of the week or month, and a time range for content display. This setting works in tandem with the DotNetNuke Scheduler service, which automatically displays or hides the module's content based on the defined schedule.
To manage the various types of settings tables, the DotNetNuke framework employs a retrieval, saving, and updating mechanism. It is crucial for a DNN developer to have an understanding of which settings to use and how to rely on the DNN framework library to select the appropriate class instance.
Essence
TabModule Settings: To ensure that your module retains configuration specific to a particular instance, such as settings that only apply to the instance dropped on a tab (page), the TabModuleSettings must be utilized.
var modules = new ModuleController();modules.UpdateModuleSetting(ModuleId, "ShowCompletedTasks", ShowCompletedTasksSelector.SelectedValue);
Module Settings: If you need to maintain settings that apply to all instances of the module, meaning these settings will be consistent regardless of which tab the module is used in, you should use module settings. I mean these settings will be the same if the module is used in different tabs.
var modules = new ModuleController();modules.UpdateModuleSetting(ModuleId, "ShowCompletedTasks", ShowCompletedTasksSelector.SelectedValue);
Portal Settings: When you have to keep settings value through a portal, like keeping license details for the portal. By passing portalid from a different module, settings can be retrieved or saved.
PortalController.UpdatePortalSetting(PortalId, "SettingName", "SettingValue");
Host Settings When you want to keep configurations through all the portals, store settings at the HostSettings Table
DotNetNuke.Entities.Controllers.HostController.Instance.GetSettingsDictionary().TryGetValue("FileExtensions", out allowedExtensions)
These are but a few illustrations of the various module options that DotNetNuke offers. Other options can be generated as necessary depending on the particular requirements of a website or module.
Module settings vs Tab-Module settings
If you are creating a custom DotNetNuke (DNN) module, it is important to understand the difference between Module settings and Tab-Module settings. Module settings are associated with all instances of the module on multiple pages, while Tab-Module settings are only associated with one instance on a single page. It is generally recommended to use Module settings.
When you copy a module instance to a new page, only the Module settings are available on the new page. Therefore, if you want the settings to be available after the module has been copied, use Module settings, not Tab-Module settings. When exporting module content, only Module settings are easily accessible through the module controller.
To save a Module setting, use objModules.UpdateModuleSetting(ModuleId, "CssFile", txtCssFile.Text); while objModules.UpdateTabModuleSetting(TabModuleId, "CssFile", txtCssFile.Text); should be used to save a Tab-Module setting. The Settings user control is initialized using its LoadSettings() method, and the ModuleSettingsBase Settings[] property provides access to the current settings.
To implement Export Content, the module controller must implement IPortable and have an ExportContent() method that can retrieve the Module settings with objModules.GetModuleSettings(ModuleID).
It is important to transfer any existing Tab-Module settings to Module settings when converting, as Tab-Module settings are limited to a single page. A "SettingsInModule" module setting set to "done" can be used to indicate that the settings have been transferred.
It is recommended to use Module settings since they are associated with all instances of the module on multiple pages. When copying a module instance to a new page, only the Module settings will be available. To save a setting, use objModules.UpdateModuleSetting() for Module settings and objModules.UpdateTabModuleSetting() for Tab-Module settings. The LoadSettings() method initializes the Settings user control, and the ModuleSettingsBase Settings[] property provides access to current settings. To implement Export Content, the module controller must implement IPortable and have an ExportContent() method. It is important to transfer any existing Tab-Module settings to Module settings when converting.
DNN Portal Settings:
https://docs.dnncommunity.org/api/DotNetNuke.Entities.Portals.PortalSettings.html
In DotNetNuke, PortalSettings is an object that provides access to the settings of the current portal or website. It contains a wide range of properties that can be accessed programmatically, including portal name, portal alias, default language, administrator email, and more.
Developers can use the PortalSettings object to retrieve and modify portal settings, which can be useful in custom module development. For example, developers can use the PortalSettings object to access the current portal's SMTP settings to send emails from their custom module.
The PortalSettings object can be accessed through the PortalController object, which provides methods for retrieving portal settings based on a specific portal ID or portal alias.
using DotNetNuke.Entities.Portals;
//get the current portal settings
PortalInfo portalInfo = PortalController.Instance.GetPortal(PortalId);
//overwrite a specific setting
portalInfo.PortalName = "My New Portal Name";
//save the new portal settings
PortalController portalController = new PortalController();
portalController.UpdatePortalInfo(portalInfo);
You may need to clear the cache for the new settings to take effect.
DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(PortalId, false);
At DNNDevelopers, we have over a decade of experience in handling a variety of DNN-specific tasks, and we possess a deep understanding of which tools to use for different business requirements. Our years of practice have made us experts in consistently producing accurate and desired results. Whether you require custom DotNetNuke module development or maintenance, we are eager to assist you with any challenging requirements you may have. Take advantage of our complimentary consultation services to begin exploring potential solution options.