rev 1687 -- huge commit, splitting the changelog into three for your convenience!
(22 files +6-2, 39kb)
Cache changes:
+ After I decided to add version numbers to the CSS file URLs, I realized that in production, the number of variations was much higher than I expected, making for hundreds of files quite quickly. As retaliation, I decided to split the CSS files into multiple folders, and one thing led to another... Reverted /cache/data to /cache, and created new cache folders /css and /js. This is helpful in several ways: first of all, it saves a couple of bytes off each page header, it prevents users from seeing a URL with the name 'cache' in the HTML source, and it allows for better dispersion of files. The css folder, notably, can have sub-folders, allowing for nearly unlimited skins to be added. Also moved $cachedir validity tests directly to Settings.php. (cache/*, css/*, js/*, Subs-Cache.php, index.php, SSI.php, install.php, QueryString.php, Subs-BBC.php)
@ I don't know if $cssdir and $jsdir are really needed because I'm hardly going to have a matching $cssurl/$jsurl system, so I might as well force them to be at the root...?
! Cache folders weren't allowing index.php to be executed, causing their redirect code to be worthless... (cache/.htaccess)
Wess changes:
* Renamed WeCSS to Wess. What do you know, I wrote it, I can do whatever I want with it, ah ah. Next week I'll rename it to LlamaBurp, and next year it'll be TheCssPreprocessorFormerlyKnownAsDidYouHideMyRemote?IncludingTheQuestionMark. (Subs-Cache.php, Class-CSS.php, editor.css)
@ Rewrote clean_cache() function to support recursive calls (e.g. cleaning up all CSS sub-folders), and cleaning up by last modified date. (Subs-Cache.php, ManageServer.php)
+ In addition to 'mixin: mixin-name', you can now mix any selector into another, just like extending it would do. Please try and keep these selectors simple though, it could get messy otherwise. Now the only difference between using plain selectors and @mixin declarations is that the latter allows you to specify parameters, unlike classes and so on. Well, until I get to support them with a 'params' keyword or something...? Anyway -- just keep it low for now, I'm only doing this to easily mix .inline-block into media queries. What a mess. (Subs-Cache.php, Class-CSS.php, sections.css)
+ Added support for new keyword, 'mixes'. Which, guess what, behaves exactly for 'mixin:' as 'extends' does for 'base:'. Have fun. (Class-CSS.php)
+ Added new @is() function. The first parameter should be a browser, browser with version or quoted comma-separated list of browsers, the second parameter (usually between quotes) has the resulting content if the user is using that browser (or another function like RTL etc), and the third parameter has the content for failed matches, quite obviously. Also features of my most amusing regexes of recent times. So, basically, @is() is just like {}, except you're not limited to mixin and variable declarations. It's very likely that I'll remove the {} hack in the future. (Class-CSS.php)
! Fixed bug where the extends or unextends keywords could be ignored when inserted at the end of a file. (Class-CSS.php)
* Simplified smiley CSS files to only include something extra in the filename if the browser (i.e. IE < 8) doesn't support base64 encoding. (Subs-Cache.php, Class-Editor.php)
* Rewrote {%dynamic_function:paramlist%} to be cleaner. You should now use @dynamic dynamic_function(paramlist) instead. And you don't have to mess with $match in your params again if your dynamic function doesn't need parameters. (Class-CSS.php, admenu.css, index.css)
* Renamed ifnull() to @ifnull() because it's a conditional, like a media query. (Class-CSS.php, index.css)
Other changes:
* Replaced button bevel with a more convenient box shadow. (index.css, bevel.png)
* And generally rewrote buttons to use box shadows instead of gradients. Which has the added benefit of working in IE9. (index.css)
* Replaced hardcoded inline-block emulation for media queries with a mixin call to the .inline-block class... This is a smart way of emulating extends when within a media query that, by definition, doesn't accept any external influence and thus doesn't accept the 'extends/base' keyword. (sections.css)
* Opera 12.50 was renamed to 12.10, so updated Wess to reflect that. (Class-CSS.php, editor.js, index.css)
! [Semi SMF-bug] Fixed regression from revision 941 which made Settings.php stop executing before the end. That was due to a friggin' exit call at the end of a line that's still present in SMF 2.1, FWIW. Hence the tag. (Please push it to the next line to avoid any discomfort.) (Settings.php, ...)
! Some fixes for Wuthering. More fixes coming later -- the recent rewrites have again added more glitches to sub-skins. (Wuthering/extra.css, Wuthering/extra.ie[-9].css)
- Removed that nice little average() function call for IE9 menus... Now that it's using box shadows, it's no longer needed, and no longer used in Wedge, but I will always insist on keeping that function available to themers. (index.css)