DNN MultiSite with multiple layouts and skins - dotnetnuke

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:
DNN doesnt seem to support MVC (this is more of annoyance than anything else but I can work around this issue)
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.

I think DNN is a perfect choice :-)
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.
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.

Related

Seeing calls to analytics.tiktok.com in our DNN site

We have a DNN site and I noticed on our home page that the dev tools show an error with an events.js file that is trying to call "analytics.tiktok.com". It is being blocked. I don't know if this is purposeful and I've searched our DNN modules code but haven't found an such reference.
The other devs can confirm they haven't added such code. I've searched the code folders for a file named events.js but haven't found one. I'm aware that DNN has large portions of it that are data driven but I don't know what tables to query to see if there's code that has that URL.
Is anyone aware if DNN or kendo controls has an references to tiktok?
It is definitely not part of DNN.
Another place to look for these calls are the skin (theme) controls in use, or the default.aspx. Anyway, if no one is aware of this stuff, I would check if you have a security hole (old Telerik libraries, unsafe passwords in FTP accounts...)
I would start by looking at the location in which that is embedded into the source of your webpage. Depending on where it is, that might help you track down "where" it is coming from.
It could be coming from inside source for a module, in the content of a module, in module settings, in a container, in a skin/theme, etc.

custom module positions per user in dnn

I have experience with drupal but not DNN.
I am interested in seeing if DNN has a module or the ability to have a page that each individual user with an account on my dnn site can arrange the modules on their home page. Sort of like a widget system where users can drag modules around or hide them if they choose. However, as the admin, i'd like to limit which modules they can have access to and move.
In drupal, there is a module called "homebox" that allows for this.
To the best of my knowledge the answer is not out of the box.
That said it would be possible to develop something and there may be something available at store.dnnsoftware.com that would do this for you.
not a lot of help but it may save you some time looking for stuff hat is not there.

Themeing for Different Capabilities and Devices

Looking for advice on this - please give your opinion on which is best and the pros and cons.
I've got a site I'm working on that will be catering to basically three types of devices. Desktop/Laptop, Tablet, Phone. It is a responsive site so it looks great on all three.
BUT!
For the tablet and the phone there are a couple of features we will be including that will not be available for Desktop. There are links that will be included just for these and there will be a whole new menu that will sit snugly along the bottom of the site.
AND!
For the phone there will be even more features that will be in that bottom menu (like a "phone" icon to quick call from any page - not on the tablet).
We've got a WURFL setup telling us the device capabilities (is_smartphone, is_tablet, neither) - just want to know what you think is the best way to implement this?
a) set theme based on capability?
b) show/hide certain menus in the CSS based on capability?
c) something else?
Since you are using server side detection you can deliver specific sets of css and html depending on what type of hardware is creating the httpd request. The benefit of this over using media queries is you are able to decrease load times. The issue of doing display none is they are still getting loaded and not displayed. I would recommend to use the RESS technique.

How much work to convert a normal site into a WAP enabled site?

I have made responsive sites before (plenty of times), but this time, I am being asked to make a WAP enabled version of the site as well.
I have done some research, but only have a vague idea of what this means: is it simply just another responsive version (a separate view written in WML vs. HTML), or is it something larger, like an entirely different copy of the site?

Translate Front-End Site Interface in Drupal 7

I am working on a multi-lingual website in Drupal 7. I installed the i18n module to translate the content on the website. However, I also have other site interface elements on the front-end part of the website like button texts, navigation links, etc that I would like to translate.
Is it really necessary to develop different themes per language? Or is there a more elegant solution to do this?
Thanks!
"Is it really necessary to develop different themes per language?"
No, it isn't. Every visual text can be translated, via the Translate interface-entry in the admin menu. If you write your own modules, templates and stuff, use the t-function to make the terms available in Translate interface or write your own po-files.
There is one issue of course: if the length of the terms in language A is too different to language B you can get in trouble with your layout. So test everything in depth and load different css styles if necessary.

Resources