New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

No Rest For the Wicked

Well, once again it is release morning.  I can count the hours of sleep I've gotten on 2 1/2 fingers *grin*.  And details have suffered in my blogging for the beta as of late.  My apologies.  I'll do a fulll review of last weeks chat tomorrow and then Monday's on Monday evening.

Why have I been so busy?  I picked up work on the skinning engine... which (if I do say so myself) is getting pretty wicked.  Here's what it can do (now):

  • Handle named instances of tokens: So, if you wanted two instances of the links control in your skin, you could do that by specifying them as follows: [LINKS:Top] & [LINKS:Side].  The controls id's will be generated as dnnLINKSTop & dnnLINKSSide.
  • Handle attributes for named instances: So, if you want your two instances to be formatted differently you can just specify different attributes in the XML file.  In fact, you have to if you want to assign attributes because they will be keyed exactly as the token names e.g. [LINKS:Top].
  • Support Skin or File level attribute files: Attribute files are optional.  But you can specify one to be used for all transforms in the skin package (skins.xml) and/or one for each file to be processed (where there is filename.htm and filename.xml).  The filename level file will override the skin package level file if it is present.
  • Complete support for HTML tags which use URI's:  So just about any tag that you can think of which uses a file reference will resolve correctly.  I don't have a complete list handy, but:
  • Support for PARAM's: Not all permutations are supported, but enough for FLASH for now:
  • CSS Support for url attributes: In CSS, the url attribute is handled relative to the location of the CSS file itself... but not for NN 4.x.  In the spirit of supporting multiple browsers, paths are corrected for url attributes in CSS files too.
  • Absolute paths are ignored:  So any file reference mentioned above that uses HTTP://, HTTPS://, \\ (share names), or \ (root relative) will not be translated.  Likewise “javascript:“ references that hide inside HREF attributes are also accounted for and won't cause any problems.
  • Detailed processing log is displayed: Now you can see exactly what the install process is doing.  A pretty detailed response is generated to a skin upload which should aid non-technical skin devleopers in testing to see how they do.  Anything that is an “error“ will show up in red.

It's also pretty fast... and pretty flexible.  It can be extended for additional substitutions pretty easily... IF (and it's a big if) you are comforable with regular expressions.  The skinning engine is now a pretty good lab for dealing with regex as that is how all the token and path manipulation is done.  If you are interested in dealing more with regex, I HIGHLY recommend The Regulator.  The skinning engine would still be in progress without it.  Thanks to Roy Osherove and the Regulator team for a terrific project.

That's all for now... so much to do and so little time... and, about 2 hours before release of BII there is... no rest for the wicked.

# re: No Rest For The Wicked 3/25/2004 12:41 AM Vladan Strigo

hi mrswoop,

I have one q, I've posted it on the forums but noone replied.... can you explain to me please the diffrence between admin and portal selected skin ? (when is which used)

as I see it, portal skin is used for all view pages + edit pages of the admin tabs, and admin skin is only used for edit pages of the modules... if this is true, can you please tell me why did the core team decide to take such a path ? it sounds more logical (and lots more flexible for designers) if the portal skin is only used for all the portal view pages, and admin skin is used for ALL edit pages (so admin, host tabs and edit pages and options for modules)

as far as for the rest of the skinning solution, it's great and provides us (the DNN community) allot more options when it comes to building portals...

re: No Rest For The Wicked 3/27/2004 7:11 AM Vladan Strigo

mrswoop ?

re: No Rest For The Wicked 3/27/2004 8:41 AM Scott


Honestly... I'm not sure. My efforts revolved around the file conversion functions. But I am inquiring on your behalf as your question makes sense to me. Please don't be frustrated... with a project of this size the tasks often get broken down with a little more granularity and so you have to track back to the individual who was coordinating the particular effort (in this case Shaun). I'll post an answer when I have one.


re: No Rest For The Wicked 3/28/2004 7:50 AM Vladan Strigo

hi Mrswoop,

thx allot for doing that "extra" mile for me :), I hope that my question will also make some sense to Shaun...:)

ok, nuff said, hope to hear you soon,

re:No Rest For The Wicked 4/10/2005 6:43 AM 料位开关

^_^,Pretty Good!


Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Davies (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out