DNN 5.3 Skinning and headaches

In the 5.3 version of DotNetNuke, the Skin format hasn’t been changed from the 4.x versions except I think for enhancements, but the skin management has been drastically changed and what was very simple then is now complicated.

Create a personalized skin for DNN is easy if you know how to do it, it is difficult if you never did it before. There is documentation on the DNN site you can download, but the manual gives you many hints but not a real how to do it guide. What you can do to learn it without big troubles is go to one of the skin shops online, choose a skin you like, buy it, download it and install it, then take a look at the ascx files and the css files and try to edit a CSS class here and a Table there and see what happens.

But this is not a post on how to create a skin, it is a series of notes to help you survive the differences made in version 5.3 skin management.

With version 5.3 some fundamental things about skins are changed, and I found this devastating for my way of using DNN and skinning portals.

  1. Skins cannot be installed from the administrator user of a portal, they should be installed by the DNN host user.
  2. So if I sell portals on a single DNN, now my customers cannot skin their portals indipendently they have to ask me to install their skins.
    There is however a workaround to this prohibition, a skin or a container package can be installed on a portal as a subfolder on the portals\n\skins or portals\n\containers folders and they appear under the portal skins as it was before. I hope the DNN programmers won’t eliminate this possibility in the future.
  3. Skins now can’t be installed from the Skins management page because they are now DNN Extensions. (I presume that calling extension install functions from a page different from the extensions page is not possible).
  4. Skins are no more a zip file containing 2 zip files (one containing the skin and the other containing containers). The Skin is a zip file and the Containers is another zip file; besides the ASCX, CSS, and Image files, the zip files need to contain an XML file named SkinName.dnn that is the manifest file for the skin or container, it has a specific format and contains informations on the skin, or containers, on which files they contain and on who is the author of the skin or container.
  5. Skins and container should be installed separately as single extensions. On the documentation it is written that old skins work and can be installed. I wasn’t able to do so, installing a skin in the old format gave me error, but maybe it’s my fault.

If you already have portal skins installed and working, and you upload them through FTP as I said in point (2), you can build an extension from it using DNN. Being this operation not very clear I write it here (mainly for myself), to avoid loosing hours next time I need to do it:

  1. Login as Host of DNN.
  2. From Host menu open the Extensions page.
  3. On the Extensions page, from menu or from the link at the bottom select Create Extension.
  4. On the page appearing, you will be asked the following things:
    • Select Extension type – it is a combobox on top of page already set on the “Authentication System” option, I always forget to update it and because nothing is asked about it I press Next and cause damages. If you forget to set the combo on Skin or Container, you will find inexistent extensions installed, fortunately there is the Uninstall option. I think that if this combo was set on empty or “None” and a FogHorn Hoot played if it wasn’t set by us users when clicking on next step could have been helpful.
    • Name – here you have to set the full path of the skin in the format (Portals\10\Skins\Business04_org) and it is not written anywhere.
    • Friendly Name – just as written, a friendly name for your skin (Business04_org)
    • Description – The skin description
    • Version – the skin version, now you can version also skins.
  5. Click on next step and pay attention there is not a Back step so if you forget someting you are “fried” (:D)
  6. On the next page you will find many things:
  7. Click on the next step and you will simply find yourself again on the Extensions page, but if you did all well, on the Skins portion list, you find your skin with the Modify Icon but without the Uninstall icon, I don’t know why and I don’t ask :D.

Now that your skin (and repeating it also the container) is part of DNN as an extension, if you want you can create a package to install and export it. I write below how to do it because I needed 6 attempts to succeed.

  1. Log on as Host of DNN.
  2. From host menu open the Extensions page.
  3. On the Extensions page, go down to the skin section or filter to see only it, click on the Modify Icon of your skin (the pencil).
  4. In the skin page, at the bottom, appears the link option Create Package, click on the link to start wizard.
  5. First page shows you what you are about to create and shows two checkboxes, leave them as they are and click on the next step.
  6. If you are exporting the skin of a portal, this second page has already wrong data, if you look the first textbox that should contain your skin path, it contains something similar to this:
    Portals\_default\Skins\Portals\10\Skins\MyskinFolder
    it is clearly wrong, because it adds to your skin folder the Host skin folder.
  7. Update it cutting the initial portion:
    Portals\10\Skins\MyskinFolder 
    and click on Refresh File List link near the textbox.
  8. In the multiline textbox under the previous one, are loaded all files of your skin, verify the names and if there is a vti_conf folder delete the files in that folder, they are copies and produce errors creating the skin.
  9. Click on the next step link, the new page got a multiline textbox with the XML text of the manifest file of the new skin, you can leave it as is or modify descriptions, as a hint leave it as is and modify it after the skin file is created after downloading it.
  10. Click on the next step link, the page appearin has 2 textbox single line with the manifest file name and the archive file name, these two paths on my DNN have the following form:
    MyDnn_Portals\10\Skins\nomeskin.dnn
    MyDnn_Portals\10\Skins\Nomeskin_01.00.00_Install.zip
    They are fundamentally wrong, because there isn’t a folder with this name on my server, leaving them as written produces an error not a skin. It is necessary clear the initial part of the names making them as follows:
    nomeskin.dnn
    Nomeskin_01.00.00_Install.zip
  11. Click on the next step link and cross your fingers. If in the next page you see a green circle and the following message
    The Package was created and can be found in the www.MioSito.it/Install/Skin folder
    Going to the indicated folder through ftp or on local folder if you are working on the server, you will find the two files above with the skin and the manifest. and you can install the skin on another portal.
    I haven’t yet tried an install but looking at what is written on the manifest file, it is probably necessary to update the base path inside the manifest prior to install on a different portal using a _default to install the skin at Host level.

In the hope to have been able  help you avoiding Skinning headaches, good work.

Tags:

Print | posted on domenica 11 aprile 2010 11.59

Feedback

# re: DNN 5.3 Skinning and headaches

Left by SOPHIE32BUCK at 27/12/2011 5.02
Gravatar I had a desire to begin my commerce, however I didn't have got enough of cash to do it. Thank goodness my friend said to utilize the personal loans. So I took the small business loan and realized my old dream.

Your comment:





 
Please add 7 and 2 and type the answer here:

Copyright © Sabrina C.

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski