SmartOptimizer
What is SmartOptimizer?
This extra is a MODX version of SmartOptimizer by Ali Farhadi :
"SmartOptimizer (previously named JSmart) is a PHP library that enhances your website performance by optimizing the front end using techniques such as minifying, compression, caching, concatenation and embedding. All the work is done on the fly on demand."
To know more about SmartOptimizer : http://farhadi.ir/works/smartoptimizer.
Requirements
- MODX Revolution 2.0.x or later
- PHP5 or later
Public Releases
Version | Date | Author | Product |
---|---|---|---|
1.0.0-pl | April 19, 2012 | ben_omycode | Revolution |
1.0.0-beta2 | January 10, 2012 | ben_omycode | Revolution |
1.0.0-beta1 | December 20, 2011 | ben_omycode | Revolution |
Download
It can be downloaded from within the MODX Revolution manager via Package Management, or from the MODX Extras Repository, here: http://modx.com/extras/package/smartoptimizer
Support, Comments, Development and Bug Reporting
Github : https://github.com/benjamin-vauchel/smartoptimizer Support/Comments : http://forums.modx.com/thread/72679/support-comments-for-smartoptimizer
Usage: the snippet way
If you can't edit your .htaccess or if you want to ponctually use SmartOptimizer.
Properties
Name | Description |
---|---|
files | path to your CSS or JS files |
Examples
Before (without SmartOptimizer
<!-- Your CSS files -->
<link rel="stylesheet" href="assets/css/file1.css"/>
<link rel="stylesheet" href="assets/css/file2.css"/>
<!-- Your JS files -->
<script src="assets/js/file.js"></script>
After (with SmartOptimizer)
<!-- Your CSS files -->
<link rel="stylesheet" href="[[SmartOptimizer? &files=`assets/css/file1.css,file2.css`]]"/>
<!-- Your JS files -->
<script src="[[SmartOptimizer? &files=`assets/js/file.js`]]"></script>
Usage: the output filter way
If you can't edit your .htaccess or if you want to ponctually use SmartOptimizer.
Examples
Before (without SmartOptimizer)
<!-- Your CSS files -->
<link rel="stylesheet" href="[[+link_to_css]]"/>
<!-- Your JS files -->
<script src="[[+link_to_js]]"></script>
After (with SmartOptimizer)
<!-- Your CSS files -->
<link rel="stylesheet" href="[[+link_to_css:smartoptimizer]]"/>
<!-- Your JS files -->
<script src="[[+link_to_js:smartoptimizer]]"></script>
Usage: the .htaccess way
Use this method if you want all your css and js files processed by SmartOptimizer
Add this at the end of your .htaccess :
<IfModule mod_expires.c>
<FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$">
ExpiresActive On
ExpiresDefault "access plus 10 years"
</FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\.(js|css))$ assets/components/smartoptimizer/connector.php?$1
<IfModule mod_expires.c>
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*\.(js|css|html?|xml|txt))$ assets/components/smartoptimizer/connector.php?$1
</IfModule>
<IfModule !mod_expires.c>
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico))$ assets/components/smartoptimizer/connector.php?$1
</IfModule>
</IfModule>
<FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$">
FileETag none
</FilesMatch>
If you enabled friendly URLs, add also :
RewriteCond %{REQUEST_FILENAME} !(\.css)$
RewriteCond %{REQUEST_FILENAME} !(\.js)$
Before :
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Finally, call your stylesheets and scripts this way :
<link rel="stylesheet" href="assets/css/file1.css,file2.css"/>
<link rel="stylesheet" href="assets/css/file1.css,file2.css"/>