I have been looking into Umbraco for some time now to grasp all its possibilities in order to migrate my current DNN sites towards Umbraco.
I have seen enough reasons to actually do so but I am looking into some final detailed topics and one of them is 'skinning' ...
As far as I understand, Umbraco only supports 'skins' for its starter packages ... is there any reason why there is no built-in support for newly build sites ?
I hear you saying that I am free to define my own markup, CSS etc ... which is nice and much better then in DNN ... but in DNN I have the possibility to attach different 'skins' to parts of my site ...
I am not sure how I would achieve that in Umbraco without having to duplicate document types ( not a good thing ) Having CSS on document templates works ofc but a skin applies to the whole site so for example my navigation menu, backgrounds, etc are all changed depending on where a visitor is in the site ...
I guess another way would be some kind of dynamic programming switching via a user control ...
But that all sounds rather complicated for something which seems already partially available in Umbraco (starter packages ) ?
In essence the 'skinning' in Umbraco just edits values in the CSS files, or edits the CSS file, or edits a template.
I've not used DNN, but I guess you are talking more about 'theming' rather than skinning.
There is no reason to duplicate document types, you can achieve what you need by using 'Templates' each content node can have any number of templates, each template can use different CSS / mark up / anything.
Yes I guess you can call it 'theming' then ... basically in DNN a 'skin' combines the container markup and/or CSS stuff and can be applied to a whole page or partial content ...
You are right I could define multiple templates for the same document type ... that at least removes the 'burden' of duplicate document types ...
The only problem I still see is that I want the theme to be applied to the whole site structure (thus page) and not only to specific content ... so basically if one clicks on level 1 menu item A you will get theme 'A' for the whole page ( including menu, main background, etc ) ( and potentially for all its subpages ) ; if you click on level 1 menu item B you will get theme 'B' etc ...
Still not sure how you would achieve that in Umbraco ... In DNN one basically assigns the skin to the page and all children ( being content or subpages ) automatically inherit that setting ...
Having just reread my posting ... that got me thinking ...
Would I manage by simply adding a recursive attribute to my master document type which holds the name of the CSS stylesheet and reference that field in the master template ?
So basically my main template holds the standard theme CSS and all subpages inherit ... when I want a different theme I change it in the page ...
Would that make sense ? Could I make it a media picker type and point it to CSS style files in my media library ?
For sites that changed the colour scheme in the way you are describing, I wrote a simple XSLT macro that output the top level "urlName" property, and called this to add a class to a div in the master template. So the template output looked like:
<body> <div class="wrapper" id="news"> .. the rest of the HTML .. </div> </body>
The style sheet can then adjust the styling by using the id of this outer DIV.
To skin or not to skin ...
Hi folks,
I have been looking into Umbraco for some time now to grasp all its possibilities in order to migrate my current DNN sites towards Umbraco.
I have seen enough reasons to actually do so but I am looking into some final detailed topics and one of them is 'skinning' ...
As far as I understand, Umbraco only supports 'skins' for its starter packages ... is there any reason why there is no built-in support for newly build sites ?
I hear you saying that I am free to define my own markup, CSS etc ... which is nice and much better then in DNN ... but in DNN I have the possibility to attach different 'skins' to parts of my site ...
I am not sure how I would achieve that in Umbraco without having to duplicate document types ( not a good thing ) Having CSS on document templates works ofc but a skin applies to the whole site so for example my navigation menu, backgrounds, etc are all changed depending on where a visitor is in the site ...
I guess another way would be some kind of dynamic programming switching via a user control ...
But that all sounds rather complicated for something which seems already partially available in Umbraco (starter packages ) ?
Thanks for any suggestions,
Steven
Hi Steven,
In essence the 'skinning' in Umbraco just edits values in the CSS files, or edits the CSS file, or edits a template.
I've not used DNN, but I guess you are talking more about 'theming' rather than skinning.
There is no reason to duplicate document types, you can achieve what you need by using 'Templates' each content node can have any number of templates, each template can use different CSS / mark up / anything.
Hope this makes sense.
Rich
Hi Rich,
Thanks for your feedback ... much appreciated :-)
Yes I guess you can call it 'theming' then ... basically in DNN a 'skin' combines the container markup and/or CSS stuff and can be applied to a whole page or partial content ...
You are right I could define multiple templates for the same document type ... that at least removes the 'burden' of duplicate document types ...
The only problem I still see is that I want the theme to be applied to the whole site structure (thus page) and not only to specific content ... so basically if one clicks on level 1 menu item A you will get theme 'A' for the whole page ( including menu, main background, etc ) ( and potentially for all its subpages ) ; if you click on level 1 menu item B you will get theme 'B' etc ...
Still not sure how you would achieve that in Umbraco ... In DNN one basically assigns the skin to the page and all children ( being content or subpages ) automatically inherit that setting ...
Regards,
Steven
Hi,
Having just reread my posting ... that got me thinking ...
Would I manage by simply adding a recursive attribute to my master document type which holds the name of the CSS stylesheet and reference that field in the master template ?
So basically my main template holds the standard theme CSS and all subpages inherit ... when I want a different theme I change it in the page ...
Would that make sense ? Could I make it a media picker type and point it to CSS style files in my media library ?
Regards,
Steven
For sites that changed the colour scheme in the way you are describing, I wrote a simple XSLT macro that output the top level "urlName" property, and called this to add a class to a div in the master template. So the template output looked like:
The style sheet can then adjust the styling by using the id of this outer DIV.
Richard
Hi Steven,
I did reply but somehow the post got lost.
Your thinking is correct and certainly the way I'd go about it. If you're theming by DocType, Richard's suggestion above will work too .
Different way of thinking in Umbraco but always plenty of nice solutions :)
Rich
Cool thx guys ...
Yeah it is sometimes a bit different thinking ... more from a developer then from an administrator point of view ...
Regards,
Steven
is working on a reply...