Randy
Randy

Reputation: 81

DNN MultiSite with multiple layouts and skins

I have 100+ sites I need to create in a CMS. I'm researching different CMSs and have spent some time looking into DNN. It looks pretty promising, however I see two issues:

  1. DNN doesnt seem to support MVC (this is more of annoyance than anything else but I can work around this issue)
  2. DNN development looks like it is expecting 1 skin/layout per VS project

My goal is to have 1 single instance (for now) of DNN running all 100 sites. I know DNN supports multitenancy so that shouldnt be an issue. Each site should be customizable based on layout and css. What I'm not seeing how to do is be able to select different layouts and skins per site. So for example, Site A would have Skin A and Layout A. Site B -> Skin B / Layout B, etc.

How would I go about doing this? Also, is it possible to create all skins/layouts in a single VS project - it seems like I should be able to do this.

Upvotes: 0

Views: 199

Answers (1)

Michael Tobisch
Michael Tobisch

Reputation: 1098

I think DNN is a perfect choice :-)

  1. DNN supports MVC. Even if it runs under web forms, there is a control called MVC Panel that allows modules that use this pattern. The routing is a bit different, but it works. See MVC Module Development for more information.
  2. A skin/theme can be applied to any page (even if that does not make too much sense in my eyes). There are three layers: Host (System), Portal (site) and Page (aka Tab), if a skin is not applied to the page, the portal skin is used, if this is not applied, the host skin is used.

To apply a skin to a portal, just set the skin at the portal level (Manage :: Themes). On the page level, you may change that in the page settings (Advanced :: Appearance). The host skin is always the default skin delivered with DNN (called "Xcillion" atm).

You don't need a VS project to create a skin, a good editor is all you need, most people I know who do skinning use Notepad++ or VS Code. For further information read Creating Themes.

Same for Containers (which are the "skin" for the modules placed on a page). Here you have one more layer, you can define the container in the module settings. If not, the one from the page settings is used etc.

I would recommend to have a look at the source code of the Xcillion skin to understand the mechanisms. And maybe download one of the more advanced free stuff and have a look at this code (eg DNN Bootster V2). A first step is always to copy a skin you like and changing the code as you need it.

Upvotes: 1

Related Questions