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:
- TD, TH, TABLE, BODY, IMG, BASE, HEAD, LINK, SCRIPT, BLOCKQUOTE, A, Q, OBJECT, AREA, INPUT, IFRAME, FRAME, XML, EMBED, BGSOUND
- Support for PARAM's: Not all permutations are supported, but enough for FLASH for now:
- PARAM NAME= MOVIE, SRC, BASE
- 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.