Is there an existing issue for this?
Description of problem
Need more control of the skin, current this is done with a httpmodule or skinsrc cookie/url. Preferably a more secure and flexible method should be used.
Description of solution
Technical Requirements: Module-Controlled Skin Override via Manifest <moduleControl>
Objective
Enable dynamic skin override by adding a <skinOverride> element to each <moduleControl> in the DNN manifest, allowing the HttpModuleRocket to read the configuration at runtime.
Proposed Manifest Schema
Add a <skinOverride> element to each <moduleControl> that requires a specific skin:
<moduleControl>
<controlKey>Edit</controlKey>
<controlSrc>DotNetNuke.Web.MvcPipeline.ModuleControl.WebForms.WrapperModule, DotNetNuke.Web.MvcPipeline</controlSrc>
<mvcControlClass>RocketContentRazor.Controls.EditControl, RocketContentRazor</mvcControlClass>
<supportsPartialRendering>True</supportsPartialRendering>
<controlTitle>Edit Rocket Content</controlTitle>
<controlType>Edit</controlType>
<skinOverride>/rocketedit</skinOverride>
<iconFile />
<helpUrl/>
<supportsPopUps>True</supportsPopUps>
<viewOrder>0</viewOrder>
</moduleControl>
Implementation Changes Required
Database Storage
The <skinOverride> value would be stored in DNN's ModuleControls table (new column) or as an extended property, parsed during module installation.
Benefits
- Module-specific: Each module controls its own skin overrides
- Declarative: No code changes needed per module
- Backward compatible: Modules without
<skinOverride> use default behavior
- Clear mapping: Skin directly associated with the control that uses it
This approach embeds skin configuration directly in the control definition, making it self-documenting and module-specific.
Description of alternatives considered
No response
Anything else?
No response
Do you plan to contribute code for this enhancement?
Would you be interested in sponsoring this enhancement?
Code of Conduct
Is there an existing issue for this?
Description of problem
Need more control of the skin, current this is done with a httpmodule or skinsrc cookie/url. Preferably a more secure and flexible method should be used.
Description of solution
Technical Requirements: Module-Controlled Skin Override via Manifest
<moduleControl>Objective
Enable dynamic skin override by adding a
<skinOverride>element to each<moduleControl>in the DNN manifest, allowing theHttpModuleRocketto read the configuration at runtime.Proposed Manifest Schema
Add a
<skinOverride>element to each<moduleControl>that requires a specific skin:Implementation Changes Required
Database Storage
The
<skinOverride>value would be stored in DNN'sModuleControlstable (new column) or as an extended property, parsed during module installation.Benefits
<skinOverride>use default behaviorThis approach embeds skin configuration directly in the control definition, making it self-documenting and module-specific.
Description of alternatives considered
No response
Anything else?
No response
Do you plan to contribute code for this enhancement?
Would you be interested in sponsoring this enhancement?
Code of Conduct