Fork CMS 3.2.4 released

Today we released Fork 3.2.4. You can also follow Fork on GitHub.

Minifier

The most important change in this version is the replacement of the existing CSS & JS minifiers in frontend & backend.

The minifier is located in /library/minifier.php and can be used standalone, but has been seamlessly integrated into both the frontend & backend of Fork CMS. When debug mode is disabled, your CSS & JS files will automatically be minified.

CSS

The CSS minifier will perform 5 steps to minify your CSS file:

  • Combine import statements when you use an @import statement in your CSS file, the contents of this imported file will be automatically packed within your source-CSS to reduce HTTP requests to these import-files.
  • Strip comments
  • Strip redundant whitespace
  • Shorten hex color codes (e.g. #FF0000 -> #F00)
  • Import referenced files to data-URIs when you use url(XYZ) to include files, these files will be imported into your CSS file (http://en.wikipedia.org/wiki/Data_URI_scheme#CSS) to reduce HTTP requests to these referenced files.

Benefits

Due to these changes, there is no more need to create complex, maintenance-heavy sprites to reduce HTTP requests, since all referenced resources will be compacted in one CSS file. For browsers that support woff fonts, there is also no more flash of unstyled text.

Important notes

In order for the merging to work, you should use relative paths in your CSS to references other resources. This is true both for import statements and url()-referenced resources. Resources with absolute paths will not be automatically imported.

Resources that will be embedded in your CSS file are filtered by file extension. Files that end in .jp(e)g, .gif, .svg, .png and .woff will be embedded into your main CSS file. Resources with different extensions are not automatically embedded. If you purposely do not want an external resource to be embedded, simply add a hash-tag (#) at the end of the url, like so: url(../images/icon.png#noinline).

Examples that will be imported:

  • url(../images/icon.png)
  • url(../images/photo.jpg)
  • url(../images/icon.svg)
  • url(../fonts/fontname.woff)

Examples that will not be imported:

  • url(http://website.com/path/to/images/icon.png)
  • url(/path/to/images/icon.png)
  • url(../images/photo.jpg#noinline)
  • url(../images/photo.jpg2000)

JS

The JS minifier is more basic, and will only:

  • Strip comments
  • Strip redundant whitespace

Changelog

Improvements

  • Core: integrated new CSS minifier (combine imports, import images to inline data URIs, shorten hex colors, strip whitespace, strip comments)
  • Core: integrated new JS minifier (strip whitespace, strip comments)
  • Core: replaced both different frontend & backend minifiers, by this new minifier.
  • Share: Twitter now uses title instead of description + language attribute added
  • Core: When a user doesn't have sufficient rights to access a page, he will now be redirected with the proper error code (307).
  • Extensions: Modules with warnings will now be greyed out so they can be spotted easily.

Bugfixes

  • Location: fixed a javascript error with jquery.
  • Location: fix vertical scrollbar inside info window.
  • CSS: fixed Safari bug for DataGrid in Tabs #212
  • Pages: subpages in the footer are now visible in the backend.
  • Pages: default template wasn't used when adding a page.