Packaging Skins and Containers?
Last Post 06/09/2006 4:33 AM by Lee Sykes. 8 Replies.
Author Messages
M R
Nuke Newbie
Nuke Newbie
Posts:8


--
05/31/2006 11:03 AM  

Hello, I have created a new skin and container for my DNN site.  I have zipped the skin folder and the container folder with their respective files and uploaded them via the "upload skin" option in the admin site settings.  However, when i look to apply my skin/container they are not available to choose from.  The files are viewable thru the file manager, and when they uploaded all seemed to parse well.  Any help would be appreciated.

David Young
Nuke Ace
Nuke Ace
Posts:50


--
05/31/2006 11:53 AM  
I have found internal DNN uploads a bit dodgy at best. I use 4.03.

Follow Lee's video on how to package a skin and container file and upload them to your DNN install. I think you'll find that your problems will go away. I've followed his advice on that and have had no problems.

Lee can post the correct vid to view.

I could answer that question but watching the video on it will lend comprehension to what I would type.

********************************
If someone is reading this post, not necc the poster, that hasn't watched the full vids on skins/containers available here, or have been reluctant to pay the money, you'll waste enough time Googling the answers to pay for the information 10X over.
Lee Sykes
DNN Creative Staff
Nuke Master VI
Nuke Master VI
Posts:4945


--
05/31/2006 12:21 PM  
Wow thanks for the feedback Youngboy glad to hear the videos have been so useful. - The videos mentioned can be viewed in this tutorial:
http://www.dnncreative.com/Howtocre...fault.aspx

In particular video 3 of this tutorial.

Things to check are:

Do you have a folder within the zip file? You just need the actual skin files within the skin installation zip file.

If you have uploaded it via admin, when you look to apply the skin have you looked under the portal radio button rather than the host radio button?

Thanks,
Lee Sykes
Site Administrator
Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

Twitter: www.twitter.com/DNNCreative

Lee Sykes's Facebook Profile
M R
Nuke Newbie
Nuke Newbie
Posts:8


--
06/07/2006 12:20 PM  
Thanks for the replies. I was missing the skin.xml file, just didn't want to work without it. Also, are there any predifined css classes for the token font attributes, or must I define my own? If so should I define those values in my skin.css or the skin.xml?
Lee Sykes
DNN Creative Staff
Nuke Master VI
Nuke Master VI
Posts:4945


--
06/07/2006 1:09 PM  
Hello,

Do you mean you want to change the default font that is used in your skins?

If so, you style this using the .normal class and you can find this in the skin.css file.

You may find the latest free resource that I have put together useful: DotNetNuke Skinning Toolkit

It will also be worth your time having a read of these articles so that you understand how the CSS files affect the styling of your skins:

Introduction to CSS and inheritance in DotNetNuke skins

Reducing the DotNetNuke CSS file sizes

Let me know if this helps, thanks,
Lee Sykes
Site Administrator
Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

Twitter: www.twitter.com/DNNCreative

Lee Sykes's Facebook Profile
M R
Nuke Newbie
Nuke Newbie
Posts:8


--
06/07/2006 4:35 PM  
Thanks agian Lee, your skinning toolkit is GREAT! However, more specifically my problems are with the CSS attributes for the links "A.SkinObject:" No links, such as the Breadcrum, register and login, search, etc.. will follow any of the CSS instructions. Is there a conflict with the skin.xml? Is that possible? What is the purpose of the skin.xml? I have the general idea behind the skin.xml, but Im lacking a concise explanation as to its benefits.
Lee Sykes
DNN Creative Staff
Nuke Master VI
Nuke Master VI
Posts:4945


--
06/08/2006 5:16 AM  
Hello,

The skin.xml file is used when you are creating a skin using the skin.htm method. When you upload your skin, DNN takes these two files and combines them together to create a skin.ascx file.

So, if you are working with a skin.ascx file you do not need to create a skin.xml file.

Ok, that's the overview - The actual skin.xml file:

Within this you setup each of your tokens that you want to use in your skin.

If for instance I use the code at the bottom of this page within my skin.XML file, you can see that under the LOGIN token you specify the CssClass - Here it is called: SkinItem.

So, to style the [LOGIN] token you will need to add to your skin.css file:

.SkinItem {
font-size: 20px;
}

etc. - If you refer to the skinning toolkit you will see that I have specified a different class name for DNN - this is the default class name that DNN uses.
http://www.skinningtoolkit.com/tabi...fault.aspx

.SkinObject {
    font-weight: bold;
    font-size: 15pt;
    color: orange;
    font-family: Tahoma, Arial, Helvetica;
    text-decoration: none;
}

So for this to work with the settings we have specified in our own skin.xml file we would use:

.SkinItem {
    font-weight: bold;
    font-size: 15pt;
    color: orange;
    font-family: Tahoma, Arial, Helvetica;
    text-decoration: none;
}

A.SkinItem:link {
    text-decoration: none;
    color: red;
}

A.SkinItemvisited  {
    text-decoration:    none;
    color: purple;
}

A.SkinItem:hover    {
    text-decoration: none;
    color: blue;
}

A.SkinItem:active   {
    text-decoration: none;
    color: green;
}

If you look at the Skin.XML file you will see that each token can have its own css class, in the example I have set all of the tokens to use a class named SkinItem - you can name each one to a different css class if you wish and specify the details in your skin.css file.

Hope this makes it clearer, thanks,

Lee


** Example Skin.XML File **

<Object>
        <Token>[LOGIN]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
            <Setting>
                <Name>Text</Name>
                <Value>Login</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[BANNER]</Token>
        <Settings>
            <Setting>
                <Name>BorderWidth</Name>
                <Value>0</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[BREADCRUMB]</Token>
        <Settings>
            <Setting>
                <Name>Separator</Name>
                <Value> ... </Value>
            </Setting>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
            <Setting>
                <Name>RootLevel</Name>
                <Value>0</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[COPYRIGHT]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[CURRENTDATE]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
            <Setting>
                <Name>DateFormat</Name>
                <Value>MMMM dd, yyyy</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[DOTNETNUKE]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>Normal</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[HELP]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[HOSTNAME]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[LINKS]</Token>
        <Settings>
            <Setting>
                <Name>CssClass</Name>
                <Value>CommandButton</Value>
            </Setting>
            <Setting>
                <Name>Separator</Name>
                <Value> | </Value>
            </Setting>
            <Setting>
                <Name>Alignment</Name>
                <Value>Horizontal</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[LOGO]</Token>
        <Settings>
            <Setting>
                <Name>BorderWidth</Name>
                <Value>0</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[PRIVACY]</Token>
        <Settings>
            <Setting>
                <Name>Text</Name>
                <Value>Privacy Statement</Value>
            </Setting>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[SIGNIN]</Token>
    </Object>
    <Object>
        <Token>[TERMS]</Token>
        <Settings>
            <Setting>
                <Name>Text</Name>
                <Value>Terms of Use</Value>
            </Setting>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
    <Object>
        <Token>[USER]</Token>
        <Settings>
            <Setting>
                <Name>Text</Name>
                <Value>Register</Value>
            </Setting>
            <Setting>
                <Name>CssClass</Name>
                <Value>SkinItem</Value>
            </Setting>
        </Settings>
    </Object>
  <Object>
    <Token>[SEARCH]</Token>
    <Settings>
      <Setting>
        <Name>Submit</Name>
        <Value>Search</Value>
      </Setting>
      <Setting>
        <Name>CssClass</Name>
        <Value>SkinItem</Value>
      </Setting>
    </Settings>
  </Object>
</Objects>
Lee Sykes
Site Administrator
Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

Twitter: www.twitter.com/DNNCreative

Lee Sykes's Facebook Profile
M R
Nuke Newbie
Nuke Newbie
Posts:8


--
06/08/2006 5:23 PM  
Thanks for the clarification Lee. As you said, the ascx inherited the seperate CSS from the skin.xml, in short I was trying to style the wrong class. Again, the Skinning Toolkit is a great guide, especially usefull to a novice like myself. Your instructions to create another "toppane" for SE purposes seem simple, effective and wise to implement, given the amount of output that each page consists of. Also, here is an interesting table structure I use to keep my important content toward the top of the page, too.

<table width="777" cellspacing="0" cellpadding="0" border="0" align="center">
    <br />
    <tbody>
        <tr>
            <br />
            <td width="145" valign="top" height="1">&nbsp;</td>
            <br />
            <td width="632" valign="top" rowspan="2"><br />
            <table width="100%" cellspacing="0" cellpadding="0" border="0">
                <br />
                <tbody>
                    <tr>
                        <br />
                        <td valign="top" align="center" runat="server" id="ContentPane" class="contentpane">  CENTERPANE  </td>
                        <br />
                        <td valign="top" align="center" runat="server" id="RightPane" class="rightpane">  RIGHTPANE  </td>
                        <br />
                    </tr>
                    <br />
                </tbody>
            </table>
            <br />                                </td>
            <br />
        </tr>
        <br />
        <tr>
            <br />
            <td width="145" valign="top" height="900" align="center" runat="server" id="LeftPane" class="leftpane">  LEFTPANE  </td>
            <br />
        </tr>
        <br />
    </tbody>
</table>

Tweak the width as you see fit, the height of the last td (id="leftpane") needs to be defined to hold the table open. This works well to keep the important content, typically whats in the middle toward the top. The leftpane is usually links and banner/ads that should come last since its least relevant. The rowspan makes the magic happen. Have you seen this structure before?
My skin is now complete, and Im on to the containers.
Lee Sykes
DNN Creative Staff
Nuke Master VI
Nuke Master VI
Posts:4945


--
06/09/2006 4:33 AM  
Hello,

Glad you managed to get it sorted. Yes playing around with the order of the source code is something I do as well to ensure the main content is as high in the source code as possible for the search engines and the least important - ie. banners is at the end of the source code.

- For anyone else reading this, you can download a free tutorial here:
http://www.dnncreative.com/Tabletri...fault.aspx

Which looks at different table structures you can use.

I personally prefer using CSS to create skins as it's much easier and reliable for changing the order of the source code.

If you look at the structure of http://www.skinningtoolkit.com">www.skinningtoolkit.com

you can see that the order of the source code is:

Logo / search
Main Content
Menu Links
Right Banner
Footer content (not used)
Footer (Copyright, Terms etc.)
Login Links
Top Banner
Admin Control Panel

So the main content is as high in the source code as possible and the less important content is placed underneath.

- In my own skins you will also see that I place the control panel at the bottom of the skin so that when I am viewing the skin in preview mode it looks like the actual site rather than still having the admin control panel appearing at the top.

- It's worth experimenting with CSS layouts as it can really help to improve search engine rankings (I've just noticed today that Google has already indexed 75pages of the skinning toolkit within a week of Google being notified that the site exists!).

Happy skinning!

Thanks,
Lee Sykes
Site Administrator
Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

Twitter: www.twitter.com/DNNCreative

Lee Sykes's Facebook Profile


---