farbfinal home · jFinalizer · jFinalizer technotes

jFinalizer joomla plugin

documentation, how-to and support

jfinalizer logo

Releases & download: v1.0.11

for joomla 1.5.10+, PHP5

right click, copy URL and paste into joomla for installing by URL. Otherwise, just download the plugin and upload manually. See changelog. License: GPL, no registration required, free of charge. Component developers please see the tech notes.

Please bugreport to This e-mail address is being protected from spambots. You need JavaScript enabled to view it or feel free to leave bug reports and comments below

Warning: Do not install jFinalizer on PHP 4!

jFinalizer setup screencast

Overview

Use jFinalizer if you want to reduce HTTP requests to site, reduce traffic, speed up page loading or decrease HTML page size if you have big templates. On big templates, you can gain 10+ YSlow points, sometimes more than 20. There are many other libraries which do similar things, but we built and run jFinalizer because most of the templates we used would not work with other plugins.

Key Features:

  • compress & merge CSS files
  • compress & merge JS files
  • compact HTML output
  • gZip file ouput
  • fast
  • no database access

Do not use jFinalizer if you want the last bit of compression. Its designed for runtime performance, not for super-high compression.

Do not use jFinalizer if you have components, extensions or templates which generate dynamic CSS on the fly (no - you usually don't have that, even on complex templates).

Do not expect jFinalizer to work out of the box. Default settings are compatible for most sites, but tuning HTML output is a tricky task and highly depends on your template, CSS, Java Script, components, plugins and modules. Give yourself 10 minutes to get this plugin configured properly.

Demo

Simply right click and view the source of this page or view the source code of our corporate main site www.farbfinal.de to see what jFinalizer does. Actually, both use the same joomla! installation but different templates.

Description

The idea of jFinalizer is to replace tons of JS and CSS files with a single CSS and JS file. This is done by processing the final joomla output HTML. Additionally, you can compact & compress a few things and make your HTML look more compact.

jFinalizer uses another approach than most libraries we've found: It does not do anything to CSS, HTML and JS code except for stripping whitespaces and stuff which is not needed. The plugin merges all CSS and JS files used in a page into a single file, preventing the loading order of the html source. Note that only CSS and JS files within the region are processed. We've found that processing body CSS and JS usually harms on complex templates.

jFinalizer is designed for live performance. This requires a bit more tuning on the developer side, but reduces runtime CPU usage at runtime a lot. jFinalizer has its name not only because our company is called farbfinal, but also because its usually the last plugin in the system chain and finalizes your output. Your goal is to develop your site, then turn on jFinalizer and see what happens. If your code is clean, you're on the way to go.

Even though joomla! is a great CMS, it has a few drawbacks. Joomla's flexibility is awesome, but at the same time it introduces a lot of file I/O on the application server. jFinalizer can help a little to improve that. It does not check for updated CSS or JS files since the developer knows anyway when design is changed. Imagine you have a template with 9 CSS and 7 JavaScript file includes. Makes 16 all together. jFinalizer reduces it to 2 (see limitations). This reduces Server file I/O. Since jFinalizer does not check the modified date of the source files, 14 file system calls are saved.

Limitations

  • CSS and JS files outside the <head></head> section are ignored
  • files containing a questionmark after the extension are ignored (my.css?v=10)
  • inline CSS and JS is ignored
  • do not use external URLs (from another server) to load JS or CSS. If you need to do so, like loading the google analytics script, place it outside the <head> section
  • some features are not available on all platforms and server configurations (see Options)
  • HTML compression does no cleanup or fixing like tidy

Performance

In Production mode, the plugin performs quite well and does not consume a lot of CPU. For performance analysis and before / after comparison, please use external tools such as YSlow (FF Plugin). Since jFinalizer is a system plugin we want to keep it slim, there are only a very few analyis options build into plugin (see configuration).

Installation Workflow

1. install the plugin and set it to plugin order "last"
2. set plugin option Site Mode to development (your site becomes slow)
3. check your fontend pages for design breaks
4. tune jFinalizer options
5. reload site, make sure browser cache is cleared
6. repeat (4) and (5) until everthing works
7. turn Site mode into production

Tip: Whenever you change a CSS or JS file later or install new joomla! components / plugins, turn jFinalizer into Development Site Mode and check life site again.

Tip: While configuring, do one thing at a time. If you want HTML compression, start there and disable all CSS / JS processing. See HTML setup guide

Don't give up tuning to fast. Allow yourself 10 minutes to get it working properly. If there is no combination to get your template working, this plugin is probably not for you. Try a different approach like CssJsCompress or JACompress.

When installing a jFinalizer upgrade, simply install it. The plugin does not need to be uninstalled before.

Configuration Tips

If your site does not work properly, your goal is to turn jFinalizer off, see your HTML source code, then turn the plugin on, reload, see your source code again and compare. First steps for setup could include this procedure:

  1. Turn jFinalizer into Site Mode Development
  2. disable all options (no HTML processing, no JS processing, no CSS processing, all compacting to off, no gZip). If your site still breaks, something is wrong and this plugin is not for you. Otherwise, continue turning on step by step and reload after every step. Try this order:
  3. Turn on CSS processing
  4. Turn on CSS compacting (now your site gets slower)
  5. Turn on JavaScript processing
  6. Turn on JavaScript compacting (now your site gets slower)
  7. Turn on HTML processing, try all different modes
  8. if you have a working site now with some combination of the modes above, continue to configure gZipping, removing HTML comments etc. if you wish.

Tip: Any Compacting can break layout. If your server supports runtime gZip compression, thats probably not a big deal and you can turn it off

Tip: if your site uses many joomla components, make sure to also check the pages where they appear! For example, you could get a perfect layout and performance with HTML compression set to ultra, but some poorly coded component might break it or not work as expected.

Tip: If HTML compression is what you want most, work the other way around. Disable CSS and JS processing first, enable HTML processing and be sure to try all available modes! If you have the system.cache plugin enabled, disable it while tuning. Try to start with Safe Mode C. Read the HTML Setup Guide.

To see an example, right click and look at the source code of this page. Farbfinal.de is run against jFinalizer with HTML processing mode set to fast using moderate compression and check contitional exceptions, JS on and optimize, CSS on and optimize, remove comments and deliver using gzip htaccess.

Warning: do not use Tidy HTML compression mode on production sites. This option is available for your personal debugging / designing workflow only and will almost certainly break design, slow your site down and make it unusable.

Setup Guide: HTML compression

HTML processing is the most tricky part. Stick on this workflow to get it working. Be sure your browser reloads properly and dont try to get CSS / JS aggregation to work before HTML processing if you want both.

  1. install jFinalizer
  2. optional: temporary disable the system.cache plugin if you use it.
  3. in jFinalizer, disable CSS processing, JS processing, gZip delivery, HTML comment removal, generator Tag removal
  4. set process HTML to fast - builtin
  5. try all available compression levels, a good start is Save Mode C+
  6. save the settings, reload your front end, see what happens
  7. if design and / or functionality breaks, repeat steps 5-6
  8. once your design and functionality works, you may try to enable HTML comment removal and generator tag removal. Be sure to check front end again!
  9. optional: when you finished all jFinalizer configuration, enable system.cache again if you used it
Tip: for bypassing HTML processing for only a specific block of Text or content plugin, wrap it with My bypassed content goes here in the article editor.

Setup Guide: CSS / JS processing

If you dont want HTML output processing, try this workflow to setup CSS / JS processing properly. This may help to to get your site working a bit faster.

  1. install jFinalizer
  2. disable the system.cache plugin if you use it
  3. set jFinalizer to site mode: development
  4. in jFinalizer, disable HTML processing, CSS processing, JS processing, gZip delivery, HTML comment removal, generator Tag removal
  5. start with enabling CSS / JS processing, on switch at a time
  6. save the settings, reload your front end, see what happens
  7. if design and / or functionality breaks, repeat steps 5-6
  8. when everything works as expected, remember so set jFinalizer site mode into production
  9. optional: when you finished all jFinalizer configuration, enable system.cache again if you used it

Setup Guide: use both together

See instructions above. Be sure to first get HTML compression working properly at first, then start CSS / JS file processing - not the other way arround!

Options

the default configuration should work for most installations:

jFinalizer default settings

Site Mode

Your most important switch while tuning and developing. Controls how jFinalizer handles its internal cache. Yes, you want cache! The cache system on jFinalizer operates independent of all joomla! cache settings, because its always content independent. Caching in jFinalizer means that JS and CSS files are stored to disk and not re-processed on every page load. HTML output is never cached by jFinalizer. Using jFinalizer without cache does not make sense because you would decrease HTTP requests but at the same time increase execution.

While developing design (CSS) or functionality (JS) you want to turn Site mode into development. When your site is up, fixed, steady and running - go for production.

Note: development mode reduces performance big time - your site will slow down drastically.

Tip: while in designing layout in development mode, disable JavaScript & CSS compacting

  • production: live site mode, caching enabled
  • development: cache disabled, files are always re-created, cache cleared on every page load.

process HTML

Process joomla! output HTML and compact it. On an average Template, you save 5-30% Bytes. For Developers, there is a Tidy option included which beautifies output. Tidy breaks layout in many cases. Note that Tidy must be enabled on your server if you want that option.

The fast option uses quick built in routines and strips unused stuff with different compression levels. It does not take care of the last saved byte, but its very fast and recommended for live sites. See compression level for more info.

Tip: while tuning the plugin, turn on process HTML and then check different compression levels to see which ones work for your template. Please not that HTML compression might not work on all templates and can break design.

  • off: bypass HTML processing
  • fast: use built-in function and crunch html
  • tidy: beautify output (slow)

compression level

Sets the compression level of HTML output. Only active if process HTML is set to fast.

Depending on how clean your template is, you can reach different compression levels. Compression levels also affect CPU usage on the server side a bit. Please note that the most efficient and fastest mode is ultra, but unless your template is super-clean, ultra mode will probably break your layouts.

All modes try to remove as many white spaces as possible. Ultra also removes all line breaks. The difference in the operating modes is how deep the plugin digs and how much whitespace is removed. Some modes do additional checking to prevent design breaks. Please try and see which option works best for your template.

The different options are available because the idea if jFinalizer is to perform as fast as possible and do as few checks as possible at runtime.

  • simple: light compression, less checking
  • safe: almost equal to simple but with additional checking, different sublevels
  • moderate: compress a bit more, takes a bit more CPU
  • ultra: fastest and most CPU efficient mode. Remove all line breaks. Usually needs template tuning.

Tip: Published starting at jFinalizer 1.0.10, Safe mode C+ seems to be most compatible. Its also the current installation default setting jFinalizer.

HTML comments

Keep or remove HTML comments. It takes a bit CPU but usually is a good thing if you want to clean your output. Please note that multiline comments are always kept!

  • remove: remove HTML comments
  • keep: keep HTML comments

Pre Tag Support

Never touch <pre> tags. Don't remove linebreaks, whitespaces etc. This option is available on jFinalizer 1.0.11+. Useful for plugins like CodeCitation. If you know your site does not have any <pre> tags, turn it off for a tiny bit of extra performance.

  • Yes: support checking of <pre> tags
  • No: skip <pre> tag checking

Generator Tag

Keep or remove the joomla! generator meta tag. Can help a bit to not expose joomla. Note that there are other ways to do that but they require joomla ource code editing.

  • remove: remove generator meta tag
  • keep: keep generator meta tag

process JavaScript

Does what it says. Process all JavaScript tags, read the files, merge them into one and cache them. Note that having external url (from another server) javascript within your <head> tag will probably break the script.

All JavaScript files outside the header <head>...</head> tags are ignored.

  • Yes: process JavaScript
  • No: ignore JavaScript tags

compact JavaScript

remove whitespaces and other unused stuff from JS files. Usually saves a couple bytes. In some cases, compacting JS can break JavaSvript functionality. If thats the case, try disabling it.

Performance note: compacting JavaScript files is usually the most time consuming task of jFinalizer. While this is not a problem in production (cache) mode, you might want to turn JS compacting off when in development mode.

  • Yes: compact JS
  • No: leave JS untouched and simply merge the files into one

process CSS

same thing as as process JavaScript but for CSS files

compact CSS

same thing as compact JS but for CSS

check conditional Exceptions

Check it the template contains conditional <!--if... --> CSS includes for client browsers. If it does, they are ignored. The option is available because if YOU KNOW your template does not have any conditional includes, you can turn this option off and save some extra performance.

  • Yes: check for conditional includes (recommended)
  • No: bypass check

gZip output

compress cached JS and CSS files using gZip.

gZipping JS & CSS files can drastically reduce file size and download time. When run in .htaccess delivery mode, additional PHP calls are bypassed and runtime compression by the delivery server (eg. apache) is skipped. This can reduce overall load and File I/O on your server. Please note that .htaccess mode is not available on all platforms. If you run a dedicated server, this option is for you to tune the last bit. The modes explained for experts:

PHP delivery: the client browser calls a PHP file which delivers the JS / CSS file dynamically and adds necessary css headers. The files are already compressed, but PHP needs to be opened and a fopen() function is involved.

.htaccess delivery: a .htaccess file is placed into the delivery folder (usually /cache/assets). The web server checks if gZipped content is accepted by the client and rewrites the request file name to deliver the gzipped version. Fast, no additional PHP calls. On apache, mod_rewrite must be enabled and allow_overrides must be properly set for the cache path. If Apache is set to compress .js and / or .css files by default on the fly using DEFLATE, this will be bypassed for those files saving CPU time.

To customize the content of the .htaccess file depending on your server configuration, copy the file /plugins/jfinalizer/htaccess.default.php to htaccess.custom.php and edit this file. This way, your changes remain after you upgrade jFinalizer. Note: .htaccess configuratio requires jFinalizer 1.0.4+

Please note that apache knowledge is required when editing the .htaccess file contents. The goal of the .htaccess file is to check if the client accepts compressed data, and if thats the case redirect the request to the gzipped version of CSS / JS files.

  • off: no compression
  • gzip PHP delivery: compress & deliver files using PHP
  • gzip .htaccess delivery: compress & deliver files using .htaccess rewrite (recommended)

cache lifetime in s

As CSS and JS files dont change once you finished designing, cache lifetime is usually set to 0 meaning the files never expire. However, you have the option to enter an amount of seconds to force rebuilding the merged files after that period. Do not confuse "expired" here with http expiring / client cache lifetime: HTTP send Headers are not touched by jFinalizer.

  • 0: never expire (recommended)
  • (number): lifetime for merged files in seconds

debug

Append some debug info comments or show performance data

Debug mode help you to see what jFinalizer does and how it performs. In html comments mode, a html comment containing the name of the removed JS / CSS files is placed into placed into output HTML source code. This can be useful if you want to see what files were merged.

In full and performance mode, jFinalizer displays performance data such as total runtime of the plugin, number of merged files an HTML byte savings on top of your site. Full & performance breaks design and cookies. So don't use it on a live site - or if you do, turn it off quickly again. While tuning jFinalizer compression settings, don't run full and performance since you can't see compression design breaks.

  • off: no debug
  • html comments: write file information into output HTML as comments
  • full and performance: html comments + display runtime information

Advanced: Place Tags

where to place output file tags in HTML.

By default (auto), the first found tag (CSS / JS) in your source template is replaced by the merged output file. However, you can optimize tag placement by manually placing tags. For example, if you have a minimal template which has not a lot of JavaScript, you could move all JavaScript from the <head> to the bottom of your body. Anyways, manual template editing is necessary.

If you want to do so, call the loading event at the appropriate place within your template and then switch to manual . Usually this is the section which outputs head data. It does not matter if other CSS or JS files are loaded after manual placement. The parsing and collecting always comes later.

PHP Placement code CSS: $mainframe->triggerEvent('getCompressedCSS');
PHP Placement code JS: $mainframe->triggerEvent('getCompressedJS');

($mainframe refers to the joomla mainframe object).

  • auto: auto tag placement
  • manual: manual tag placement

Advanced: Delivery Path

delivery output path for CSS and JS files in client HTML

Now thats tricky. By changing the delivery path, you can tell the client to load the merged JS and CSS files from another source path. Its great for hiding the default joomla /cache/xxx directory.

Cached files are always stored physically on disk into the joomla cache directory, subfolder /assets. So, usually thats /cache/assets. You can't change that because thats the only way to clean jFinalizer cache using the joomla builtin cache manager.

Re-routing the delivery path works by placing a symlink to /cache/assets. You need shell access. Login to your server and create a softlink. For example on linux, if you want you delivery path to be example.com/inc, you would create the symlink using

bash># ln -s /my/absjoomlarootpath/cache/assets /my/absjoomlarootpath/inc

and then insert inc/ into the delivery Path field. Note that Apache might check symlink permissions. They need to be set correctly.

  • (empty): dont re-route include path
  • inc/ : re-route include path to example.com/inc

tips, tricks, troubleshooting

  • Inline JavaScript Code
    may break when using HTML output compression. In general, when optimizing a site, you want to avoid inline JS at all if possible. If you have out-commented inline JS and your site breaks, try to turn off HTML comment removal first. Be sure to then try all available HTML compression levels.
    As we figured out so far, 90% of broken functionality is caused by inline JavaScript Code when using HTML compression. A good starting point is compression level Safe Mode C, since this fixes a couple JS issues.
  • .htaccess gZip delivery
    is a strong feature but usually needs modification to your specific server needs to work properly on your server. While in development mode, the .htaccess file is always recreated so you can check your changes.
  • be patient on HTML compression
    If you want HTML output compression and it does not work out of the box, disable all other options and try different compression levels. See HTML setup guide. jFinalizer's HTML compression algorithms are not designed to be smart but fast. So they require testing on your specific site. Of course that takes time, but you gain performance as soon as it works.
  • Upgrade to the latest version
    To not break compatibility with sites already using jFinalizer, we will never change existing HTML compression algorithms once published, but rather add new ones. So you can safely upgrade jFinalizer.
  • use valid HTML
    Using valid HTML in your template is not really necessary for HTML compression, but makes it easier to figure out problems. If your site contains valid HTML and jFinalizer is setup properly, it will also output valid HTML. Keep in mind that jFinalizer does not do any fixing.
  • bug report
    Please help us to improve jFinalizer and bug report. We'll try to fix as soon as possible and get back on you. So far, we could get jFinalizer running with all of our self-made and third-party templates without modifying a single line of template code.
  • PHP Error: unexpected T_OBJECT_OPERATOR
    Your site is probably running PHP4. Don't use jFinalizer!
  • PHP Error: Warning: fopen(/some/path/somefile.css) [function.fopen]: failed to open stream:
    You run CSS / JS processing mode and your site actually misses a file! Check your error logs and you will probably see a 404. This can happen if a joomla! extension appends a CSS / JS file to HTML output which is physically not existing on your server. jFinalizer won't check for that. It assumes that the files needed to display the page are actually existing.
  • jFinalizer is active but seems to not do anything
    its possible that jFinalizer conflicts with the joomla build-in system.cache plugin. If you use system.cache, make sure you use jFinalizer Version 1.0.7+
  • WAMP compatibility on local windows development servers
    There seem to be some issues when trying to run jFinalizer on local Windows development machines. Currently, we do not plan to integrate dedicated WAMP support, since jFinalizer needs to be re-configured on the final live site anyway. Workarround: Design your site, upload it and install jFinalizer on your live server as the very last step of development.
  • bypass html processing
    Starting from jFinalizer 1.0.11+, you can bypass HTML processing by wrapping anything with my unprocessed content goes in here, for example in the joomla! article editor. This way you can bypass HTML processing for content plugins or specific text blocks. Note that anything can be bypassed, also inline JavaScript and inline CSS, as long as its not within the <head> tag.
  • process HTML only and use another CSS / JS plugin
    If for some reason you cannot get CSS / JS processing working but still want the HTML output compression functionality of jFinalizer, you can safely try other CSS / JS aggregation plugins like CssJsCompress or JaCompress. You will not drop performance: All CSS / JS aggregation functions of jFinalizer are only loaded dynamically into PHP if CSS / JS processing is active and files actually need to be aggregated. Make sure to disable all CSS / JS functionality when using other plugins.

known issues

  • CSS files beginning with @charset can cause invalid CSS - design is not affected
  • RokBox does not like HTML comment removal
  • CodeCitation joomla! plugin requires <pre> tag checking (jFinalizer v. 1.0.11+)
  • There seem to be issues with jFinalizer when working in PHP Safe mode on some server setups. We still investigate. If jFinalizer is not working for you and you know your server runs PHP in Safe mode, please drop us a bug report with your system info.

changelog

1.0.0
- initial release
1.0.1
- changed some descriptions
- switched internal File I/O to builtin class instead of JFile
1.0.2 - download archive plg-system-jfinalizer-1.0.2.zip
- fixed issue on files with "?" appended to CSS or JS URL
1.0.3
- some bugfixes
1.0.4 - download archive plg-system-jfinalizer-1.0.4.zip
- changed safe mode HTML processing algorithm for more compatibility
- add: another HTML processing mode (now Safe Mode A and Safe Mode B)
- add: option to remove Joomla! generator tag
- add: added support for custom .htaccess file contents
1.0.5 - download archive plg-system-jfinalizer-1.0.5.zip
- add: Simple Mode B html processing mode
- fix: German language file missing Tag
1.0.6
- fix: PHP deprecated Warning on some server setups
1.0.7
- fix: added compatibility for use with system.cache plugin
- add: added yet another HTML compression level (Safe Mode C)
- change: changed install default HTML compression level to Safe Mode C
1.0.8 - download archive plg-system-jfinalizer-1.0.8.zip
- fix: inline JavaScript Bug in Safe Mode C
1.0.9 - download archive plg-system-jfinalizer-1.0.9.zip
- change: set Tidy Developer mode to UTF-8 / XHTML output
1.0.10 - download archive plg-system-jfinalizer-1.0.10.zip
- add: added Safe Mode C+ HTML compression level, keep more spaces
1.0.11 - download archive plg-system-jfinalizer-1.0.11.zip
- add: added switch
- add: added <pre> tag support
- fix: fixed Warning: get_class() error on certain PHP5.3 installations

Comments & Bug Reports

When posting a bug report or problem, don't forget to post the jFinalizer version. If you use HTML compression, tell us what Mode you use.

 

Comments  

 
+3 # jFinalizer joomla! pluginReinaldo Deprera 2010-02-17 11:04
- Problems using gzip via htaccess
- Problems compress html. The plugin is putting js in a declared CDATA and not closing this parameter correctly. This causes the extensions that use js to stop work. In my case the plugin rokbox and a module for the LiveZilla

Even so, I stopped using CssJsCompress because JFinalizer is a little more sophisticated, it provides some features (which does not work) that does not provide CssJsCompress. As the compression of html.
To solve the problems I encountered, I deactivated compression html (which was what most excited me) and put to gzip using PHP instead of htccess: (

If you resolve the problems, the plugin will most wanted genre without a doubt.
My site is the site-desenvolvimento .com.br and my personal e-mail the rdeprera@gmail.com
Reply | Reply with quote | Quote
 
 
+2 # fixedstefan 2010-02-17 11:14
Thanks for the report. The current release 1.0.4 has some modified HTML compression algorithms. Maybe you can check them out and see if one of them works.
Also, as of release 1.0.4 we added the ability to have a custom .htaccess file for specific server configurations. I hope that can help you serving gZip using htaccess. Unfortunately, .htaccess delivery highly depends on server configuration and need almost expert apache knowledge to configure. Please see the gZip config section of this page for some more hints on how to implement.
Reply | Reply with quote | Quote
 
 
+3 # RE: jFinalizer joomla! pluginErin 2010-02-17 11:06
took me about 15 mins to configure and works like a charm. I was a bit disappointed first because it would not work right after installing, but I read the documentation and got it working.

So whoever wants to use it: Read what the developers say everywhere and consult the documentation!

Thanks for this plugin!
Reply | Reply with quote | Quote
 
 
+2 # RE: jFinalizer joomla! pluginHansen 2010-02-17 11:08
Hallo,

Ich vermisse die Möglichkeit bestimmte css und Jacscript auszuschließen.

Ich habe bei mir jomsocial und Cometchat am laufen, bei beiden werden danach die css und javascipt Dateien nicht richtig geladen.

lg
Reply | Reply with quote | Quote
 
 
+1 # RE: RE: jFinalizer joomla! pluginstefan 2010-02-23 15:52
leider haben wir keinen Zugriff auf jomsocial, um die Komponente prüfen zu können :(
Reply | Reply with quote | Quote
 
 
+3 # RE: jFinalizer joomla! pluginKai Schöning 2010-02-18 09:23
Richtig gut gemacht! Beide Daumen hoch! Funktioniert prächtig. Ergebnisse kann man zum Beispiel gut mit pingdom.com/tools messen!
Reply | Reply with quote | Quote
 
 
+2 # RE: jFinalizer joomla! pluginsascha 2010-02-18 23:22
hi,

one short question. in tidy mode the charset in source code is set to "us ascii" but i need UTF8. how can i change it to the right setting?

cheers
sascha
Reply | Reply with quote | Quote
 
 
+1 # fixedstefan 2010-02-19 09:21
fixed in v1.0.9 - set Tidy mode to UTF8 / XHTML
You cannot really change this by yourself since its hardcoded. But you are right, utf8 makes more sense. Unfortunately, Tidy does not recognize the input char encoding automatically. Thanks for the hint!
Please remember to not use Tidy on production sites since it will add lots of unnecessary bytes.
Reply | Reply with quote | Quote
 
 
+1 # Great Work !Silicon Farm Design 2010-02-20 15:24
Thanks a lot for this excellent plugin and documentation !! This plugin is on my must have list from now on !

Everything works really well. The only thing I had to limit was the html compression level due to a googlemap plugin (extensions.joomla.org/.../1147).
Only safe mode A worked, otherwise I believe that "if" & "else" statements in the javascript written without brackets { } break...
Reply | Reply with quote | Quote
 
 
0 # RE: Great Work !stefan 2010-02-20 17:37
thanks for the report. We´ll check out the maps plugin as soon as possible!
Reply | Reply with quote | Quote
 
 
0 # RE: Great Work !stefan 2010-02-21 09:52
We've checked the google maps plugin. At HTML compression level Safe Mode C+ it seems to work. Please note that Safe mode C+ is available only starting at jFinalizer 1.0.10+. You might try an jFinalizer upgrade and see if this works for you. Also Safe mode C+ is the new default compression mode when installing.

Safe mode C+ is almost identical to Safe Mode C but keeps a little bit more whitespaces. Its also a very efficient / fast algorithm.
Reply | Reply with quote | Quote
 
 
0 # googlemaps not workingFrederik 2010-03-07 19:47
Hello,
Fantastic pluging !!
But i have the same problem with google-maps.
I believe this due to the fetching of js from google-server and not from local filesystem ?

Would be great if this could somehow be considered and solved in upcomming release.

thx very much
Frederik
Reply | Reply with quote | Quote
 
 
0 # mrsarmeet 2010-02-22 09:34
no man ... i cant get it to work T_T
Warning: get_class() expects parameter 1 to be object, array given in C:\wamp\www\its mypik\plugins\s ystem\jfinalize r.php on line 152
for now i have disabled the plugin .
i cant get the firststep to work lol .
forget about goin to next once X_X
Reply | Reply with quote | Quote
 
 
0 # RE: mrstefan 2010-02-22 12:56
this is a bug of jFinalizer which seems to appear on sites running PHP version 5.3 with certain joomla versions. Will be fixed jFinalizer v. 1.0.11
Reply | Reply with quote | Quote
 
 
0 # Got some problem with register to site after installed Jfinalizer..?ssnobben 2010-02-23 12:48
Hello all !

Thanks for Jfinalizer. I have started to use it but got a problem that I think can have to do with Jfinalizer but not sure. I have a register page that work fine in Firefox but it doesnt work in IE 8.

travelmate.com/.../... Here is the reg form that doesnt work as it should in IE 8. Thanks!
Reply | Reply with quote | Quote
 
 
0 # RE: Got some problem with register to site after installed Jfinalizer..?stefan 2010-02-23 15:15
after some email communication, we have figured out that the site works in Safe Mode C+, but one component would not work. The component mentioned is com_hotspots. Unfortunately, we could not get the component installed and properly running in order to do any tests.
Reply | Reply with quote | Quote
 
 
+1 # DrLawrence Weathers, P 2010-02-24 02:25
Could HipHop be in future Jfinalizer versions.

developers.facebook.com/.../
Reply | Reply with quote | Quote
 
 
0 # RE: Drstefan 2010-02-24 07:12
The idea definitely sounds great for scaling up big sites and gain performance! We must evaluate carefully how many people could benefit from it. You need shell access and probably at least a dedicated server. As we can see, many system libraries needed by HipHop are not even installed or accessible on web hosting servers, see wiki.github.com/.../... .
Of course, the idea of having a "recompile joomla!" button in the backend sounds very charming :)
Reply | Reply with quote | Quote
 
 
0 # Implications if Already Using htaccessRich 2010-02-24 07:25
Hi Guys,

Great plug in! Was wondering if there were any implications with using the htaccess method if you are already using an htaccess file on a site.

Thanks again.
Reply | Reply with quote | Quote
 
 
0 # RE: Implications if Already Using htaccessstefan 2010-02-24 07:44
actually, it should not. Even better, you know your site works with .htaccess :)

But please note: make sure the jFinalizer .htaccess file is compatible with the settings of your own .htaccess file. Maybe you do path overrides that need to be included.

This is how jFinalizer .htaccess works: it copies a .htaccess file into /cache/assets. Only this directory is influenced by the jFinalizer .htaccess file. However, you can edit the jFinalizer .htaccess file to your personal server needs.

Please read the gZip documentation on htaccess very carefully (especially on how to copy the file)!
Reply | Reply with quote | Quote
 
 
0 # RE: RE: Implications if Already Using htaccessRich 2010-02-24 08:11
OK think I'm getting it, "allow_overrides " must be enabled in apache.

So am thinking that I would have to add

AllowOverride (Path to the plug in htaccess file.

That correct?
Reply | Reply with quote | Quote
 
 
0 # RE: RE: RE: Implications if Already Using htaccessstefan 2010-02-24 09:00
if you already use htaccess, that usually means that AllowOverride is already active. Apache's htaccess files always work downwards the path, so if any directive is active for your sites root (/) directory, its also active downwards until another htaccess files in a specific directory overrides a directive.

Did you try to use htaccess delivery already out of the box of jFinalizer? What happens? For example, if you use joomla SEF URLs with mod_rewrite, everything should be correct already.

If some of your htaccess files disallow htaccess files for the /cache directory or deeper by using AllowOverride None, then you might need to change it somewhere to AllowOverride All.

A simple check to see if htaccess files work in a specific subdirectory it to place a htaccess file in there which disables total access by asking for a valid User. But before doing that, make sure you can manually delete the file again using ftp / shell access! example .htaccess file:

RewriteEngine on
AuthType Basic
require valid-user

If everything works, Apache must give you an misconfiguratio n error when you try to access this directory since no password file is found. So if you get an ERROR, you know that htaccess files WORK :)
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginRich 2010-02-24 09:08
If I use it out of the box it just breaks the template.

Currently using mod rewrite with no problems. SEF urls and non www redirect as well

I'll have a look at what you're saying and let you know!
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-02-24 09:40
I assume that you already found your right settings for jFinalizer and your site works with gZip delivery disabled? If thats the case, you should be able to get it running. In any case, when using htaccess delivery, first thing to check is if the jFinalizer generated .htaccess file is located in /cache/assets.

If your template totally breaks (looking like there is no css file at all), you might have to adjust the htaccess file (see gzip notes above - again).

You can check if gZipped htaccess delivery works be using firefox with the firebug plugin: If you load your site, take a look at the Network tab, locate the /cache/assets/xxxxxxxxxxxxxx.css file and see if the headers say that its compressed (gzipped).

There are several issues on customizing the htaccess file. Take a look at htaccess.default.php and understand what it does. For example, if your server compresses CSS files by default and the disable deflate switch would not work as expected, your files get double-compressed and the client cannot open it anymore.

I'm sorry we cannot really help here. But as stated above, htaccess delivery highly depends on your very specific server setup and usually needs to be adjusted, which requires a bit apache rewrite knowledge.
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginRich 2010-02-24 11:51
Yes it works fine w/o gzip and also with php gzip.

Interestingly enough I have it on another domain (same server) where it works fine in htaccess.

I'll have to compare the two more closely!
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-02-24 14:24
yap, in this case chances are very good to get it working on the second domain too. Please let us know how you fixed it for your server!
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginarxe 2010-02-24 16:50
Hallo

Wenn ich habe "protsess CSS" und "check conditional exception" umgehängt, entstandene zwei Probleme:
-"Core Designe Login" Modul arbeitet nicht so korrekt - popup Fenster ist immer vordergründig.
-im Bauteil K2 ändert Größe und Stil von Einreise.

Ich benutze in meine Seite VirtueMart Software mit VM Junction, Blade Ausstattung. Wenn ich habe "fast - builting crunch"
umgehängt, dann tab arbeitet nicht im Seite Beschreibung von Produkt.
Reply | Reply with quote | Quote
 
 
0 # www.people4you.itcamulatz 2010-02-24 19:52
Hi,

joomla 1.5.14 - WIMP - jfinalizer last version

I have problem with process CSS: yes and gzip: PHP

jslow says me new css is

www.people4you.it/.../

but nothing in assets, the url is not correct and the file i see in jslow is like this:

[removed]
Reply | Reply with quote | Quote
 
 
0 # RE: www.people4you.itstefan 2010-02-25 08:10
That seems very strange. No matter what delivery mode you use, there must be .css and .js files in /cache/assets. If you use php delivery, there must also be 2 php files in that directory.

If no files are in the /cache/assets directory, it might be possible that the directory is not writeable by joomla. Could that be the case?

The URL you posted is missing slashed. They seem to be URL encoded. jFinalizer does not do that, it always uses the joomla DS constant for adding directory separators.
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginJonathan 2010-02-24 22:16
Hello there,

The plugin works on HTML and CSS but cant seem to work on IE when I enable javascript processing. From what i understand from my IE developer debugger, it seems unable to load the mootools library because it keeps on saying that the addEvent method of window doesnt exist...

solving this would really help alot.

Thanks for the plugin anyway! ;)
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-02-25 08:01
1. make sure to disable JS cmpacting
2. turn off CSS and HTML processing totally, just enable JS processing
3. If the error you mentioned still happens, give us another feedback.

So far, mootools loaded fine on all sites we've tried on. Maybe we need a bit more information on your issue...
Reply | Reply with quote | Quote
 
 
0 # RE: RE: RE: jFinalizer joomla! pluginJonathan 2010-02-25 08:52
I have tried that too... disabling the other settings and just enabled JS processing... still same problem... am thinking of disabling the javascripts one at a time to see which script might be causing this... but its strange that everything works fine having the scripts all separated and not when they are combined...
Reply | Reply with quote | Quote
 
 
0 # RE: RE: RE: RE: jFinalizer joomla! pluginstefan 2010-02-25 13:48
it could be about the loading order. You might have to check if there is line JavaScript between the JS files by disabling JS processing. Not nice, but possible. Also, please note that jFinalizer has no built-in jQuery / MooTools conflict resolver (just in case you use both).
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginsascha again 2010-02-25 15:21
one question again: i'm using jomsocial and there are prolems with the generated rss feeds on profiles and so one. these problems are caused by jfinalizer. tried every possible combination. only solution is to disable jFinalizer :,( maybe someone has the same problems... or an solution :)

to the developer: VERY GOOD JOB!
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-02-25 21:15
hi Sascha,

We will try to get a hold on the developers of jomsocial and see if we can grab a developer copy. Its an important component to joomla, we understand that. We really need to do tests, but as you can imagine, we just cannot buy comercial components for testing :(

We will get back on you, but it will probably take a couple days...
Reply | Reply with quote | Quote
 
 
0 # RE: RE: RE: jFinalizer joomla! pluginsascha 2010-02-26 10:05
yeah i understand that. i didn't try if it works with joomla created rss feeds. but i think so. keep on the very good work :)
Reply | Reply with quote | Quote
 
 
-4 # RE: jFinalizer joomla! plugincamulatz 2010-02-26 16:40
please remove now

thank you
Reply | Reply with quote | Quote
 
 
0 # SuggestionsMikeyB 2010-03-01 16:40
First of all. Great job on this plugin it works almost flawlessy. A couple of things I would like to see added that can be found in competing offerings is the ability to filter out certain scripts that you don't want processed, as well as the addition of a JSQuery/Mootools conflict resolver. These two things would make this a must-have plugin for any joomla installation.

The only two problems I have run into so far is the issue with Googlemaps (HTML compression Safe A fixes that), and highslide.js seems to break as well.

Not bad for a plugin that does so much. Thanks again and keep working on it :)
Reply | Reply with quote | Quote
 
 
0 # RE: Suggestionsstefan 2010-03-02 18:15
We currently work on the Google Maps issue. Unfortunately, we could not reproduce the error yet. Our test cases all worked with safe mode C+. But we will figure that out.

The jQuery conflict resolver might become an option at one of the following releases.
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginJoe 2010-03-02 16:58
if zip code html, this compression does not affect search engines in terms of optimization?
Reply | Reply with quote | Quote
 
 
+3 # RE: RE: jFinalizer joomla! pluginstefan 2010-03-02 18:11
jFinalizer does not zip HTML. It removes unnecessary white space.

Zipping is a different approach. By removing whitespace, the file gets more compact, its size decreases. When simply zipping a file, the client browser (or search engine) unzippes all data and the size is the same as before.

Some search engines rate a file-size-to-readable-content ratio. In this case, optimization might help a bit!

Also, most web servers gzip output anyway. So when you use jFinalizer, your compacted HTML gets gzipped before delivery. This way, you get smallest possible document size using both methods together.
Reply | Reply with quote | Quote
 
 
0 # RE: RE: RE: jFinalizer joomla! pluginJoe 2010-03-02 20:21
Thanks Stefan
Reply | Reply with quote | Quote
 
 
0 # css processing problemmazhar840 2010-03-03 06:51
erroe comes while css processing
fFinalizer Error: cannot write to file jFinalizer
Reply | Reply with quote | Quote
 
 
0 # Mr.Jonathan 2010-03-07 12:35
Had JFinalizer working smoothly a few days back, till we had to launch or facebook application on our site... apparently, we are stuck on a dynamically generated javascript file (hosted by facebook : .../en_US ) which we have no control over... any work-around on this guys? you can check out the site www.financeroll.com
Reply | Reply with quote | Quote
 
 
0 # RE: Mr.stefan 2010-03-07 12:49
Unfortunately, your site is not working at the moment - I assume you work on it. If you have the chance, first thing you could to try is to move the dynamic JavaScript from the html Head into the document body. jFinalizer will ignore that.
Reply | Reply with quote | Quote
 
 
0 # RE: RE: Mr.Jonathan 2010-03-07 13:27
yup, was just working on it, but is back now and you can check... moving the script to the html body is the last resort we would like to go into because it would definitely do alot of modification to the logic flow... but anyway, a work around on this matter would be really worth the next version for JFinalizer :D Thanks for this great plugin anyways!
Reply | Reply with quote | Quote
 
 
0 # WEBO Softwaresunnybear 2010-03-07 23:10
Well, good initiative. Maybe it will live for a longer time than PHP Speedy one.

Anyway there are a lot of things to implement - correct client side caching for assets, correct (CPU efficient!) HTML minify / comments striping, dynamic files handling. And so on. Good luck :)
Reply | Reply with quote | Quote
 
 
0 # RE: WEBO Softwarestefan 2010-03-08 09:05
Thanks for the comment! Since the features you mention are implemented but don't seem to work for you, it would be nice to have a bug report. Please remember that we don't sell commercial products, so we need feedback from users :)
Reply | Reply with quote | Quote
 
 
0 # Premature end of data in tag html line 1ssnobben 2010-03-08 08:48
I got this error coming from Wc3 validator validator.w3.org/check validator.w3.org/

Line 355: Premature end of data in tag html line 1

…r) {}
Reply | Reply with quote | Quote
 
 
0 # Some code missing abovessnobben 2010-03-08 08:50
Some code above is missing pls email me to get it bcs here it is stripped out rgds {}
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginJohn Smith 2010-03-09 04:48
I hope you fix the compatibility with Yoologin and Joomslide (highslide)...

Both are not working :

tools.yootheme.com/.../...

extensions.joomla.org/.../...
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-03-09 07:20
Thank you for the report! We will check this on the next release.
Reply | Reply with quote | Quote
 
 
0 # RE: jFinalizer joomla! pluginJohn Smith 2010-03-09 05:00
Basically, what this plugin needs is an exclusion list. It would really help !

Thank you for your hard and excellent work.
Reply | Reply with quote | Quote
 
 
0 # RE: RE: jFinalizer joomla! pluginstefan 2010-03-09 07:23
Our goal was to actually get things to work without an exclusion list. But since we've got more than one request for this feature, we will evaluate the pros and cons again.

Can you tell us what was specifically not working for you?
Reply | Reply with quote | Quote
 

Add comment


Security code
Refresh

(c) FARBFINAL 2010. JFINALIZER IS LICENCED GPL - HOME