Diglin_UIOptimization - Version 1.3.0

Version Notes

- Version 1.3.0: improve canonical url generation, improve some configuration parameters, remove the option JS Packer because incompatible with Magento
- Version 1.2.0: improve compatibility with compilation feature of Magento, add a js/css flush button directly in the configuration page
- Version 1.1.0: rewrite some classes of the minify libraries to respect PHP 5 and prevent some errors, change the module name, make it compatible with compilation feature of Magento, add canonical url feature for SEO
- Version 1.0.10: fix type for css files stored in /js/ folder
- Version 1.0.9: make correct package for Magento prior to 1.5
- Version 1.0.8: make it compatible with 1.5 and some improvements.
- Version 1.0.2: add cron task to allow to update compressed/minified js/css files periodically
- Version 1.0.1: fix a missing config element class, this class seems to exists only since 1.4.1 or more

Download this release

Release Info

Developer Magento Core Team
Extension Diglin_UIOptimization
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.0 to 1.3.0

Files changed (34) hide show
  1. app/code/community/Diglin/UIOptimization/Block/Adminhtml/Config/Source/Heading.php +18 -0
  2. app/code/community/Diglin/UIOptimization/Block/Adminhtml/Config/Source/Hint.php +2 -10
  3. app/code/community/Diglin/UIOptimization/Block/Optimize/Head.php +264 -252
  4. app/code/community/Diglin/UIOptimization/Block/W3Ccssvalidator.php +48 -54
  5. app/code/community/Diglin/UIOptimization/Block/W3Chtmlvalidator.php +48 -54
  6. app/code/community/Diglin/UIOptimization/Helper/Data.php +108 -99
  7. app/code/community/Diglin/UIOptimization/Model/Config/Source/Caseproperties.php +5 -15
  8. app/code/community/Diglin/UIOptimization/Model/Config/Source/Charset.php +5 -14
  9. app/code/community/Diglin/UIOptimization/Model/Config/Source/Csslevel.php +5 -15
  10. app/code/community/Diglin/UIOptimization/Model/Config/Source/Csstypeminify.php +7 -16
  11. app/code/community/Diglin/UIOptimization/Model/Config/Source/Doctype.php +28 -38
  12. app/code/community/Diglin/UIOptimization/Model/Config/Source/Jstypeminify.php +7 -16
  13. app/code/community/Diglin/UIOptimization/Model/Config/Source/Language.php +9 -19
  14. app/code/community/Diglin/UIOptimization/Model/Config/Source/Mergeselectors.php +5 -15
  15. app/code/community/Diglin/UIOptimization/Model/Config/Source/Optishorthand.php +5 -15
  16. app/code/community/Diglin/UIOptimization/Model/Config/Source/Profile.php +13 -23
  17. app/code/community/Diglin/UIOptimization/Model/Config/Source/Template.php +7 -17
  18. app/code/community/Diglin/UIOptimization/Model/Config/Source/Usermedium.php +13 -23
  19. app/code/community/Diglin/UIOptimization/Model/Config/Source/Warning.php +6 -16
  20. app/code/community/Diglin/UIOptimization/Model/Observer.php +12 -28
  21. app/code/community/Diglin/UIOptimization/Model/Overwrite/Design/Package.php +10 -18
  22. app/code/community/Diglin/UIOptimization/etc/adminhtml.xml +22 -22
  23. app/code/community/Diglin/UIOptimization/etc/config.xml +94 -91
  24. app/code/community/Diglin/UIOptimization/etc/system.xml +536 -509
  25. app/design/frontend/default/default/layout/uioptimization.xml +3 -73
  26. app/design/frontend/default/default/template/uioptimization/canonicalurl.phtml +24 -0
  27. app/design/frontend/default/default/template/uioptimization/canonicalurl/head-blog.phtml +0 -27
  28. app/design/frontend/default/default/template/uioptimization/canonicalurl/head-home.phtml +0 -27
  29. app/design/frontend/default/default/template/uioptimization/canonicalurl/head-product.phtml +0 -27
  30. app/design/frontend/default/default/template/uioptimization/canonicalurl/head.phtml +0 -27
  31. app/design/frontend/default/default/template/uioptimization/w3ccssvalidator.phtml +2 -10
  32. app/design/frontend/default/default/template/uioptimization/w3chtmlvalidator.phtml +3 -12
  33. lib/Diglin/Csstidy/Core.php +0 -1
  34. package.xml +7 -6
app/code/community/Diglin/UIOptimization/Block/Adminhtml/Config/Source/Heading.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_UIOptimization_Block_Adminhtml_Config_Source_Heading
3
+ extends Mage_Adminhtml_Block_Abstract implements Varien_Data_Form_Element_Renderer_Interface
4
+ {
5
+ /**
6
+ * Render element html
7
+ *
8
+ * @param Varien_Data_Form_Element_Abstract $element
9
+ * @return string
10
+ */
11
+ public function render(Varien_Data_Form_Element_Abstract $element)
12
+ {
13
+ $useContainerId = $element->getData('use_container_id');
14
+ return sprintf('<tr class="system-fieldset-sub-head" id="row_%s"><td colspan="5"><h4>%s</h4></td></tr>',
15
+ $element->getHtmlId(), $element->getLabel()
16
+ );
17
+ }
18
+ }
app/code/community/Diglin/UIOptimization/Block/Adminhtml/Config/Source/Hint.php CHANGED
@@ -8,19 +8,11 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Block_Adminhtml_Config_Source_Hint
@@ -48,4 +40,4 @@ class Diglin_UIOptimization_Block_Adminhtml_Config_Source_Hint
48
  <p><strong>Diglin_UIOptimization Version: '.$version.'</strong></p><p>' . $block->toHtml() .' ('. $this->__('You will be redirected to the Cache Management page with a successful message') .')</p>';
49
 
50
  }
51
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Block_Adminhtml_Config_Source_Hint
40
  <p><strong>Diglin_UIOptimization Version: '.$version.'</strong></p><p>' . $block->toHtml() .' ('. $this->__('You will be redirected to the Cache Management page with a successful message') .')</p>';
41
 
42
  }
43
+ }
app/code/community/Diglin/UIOptimization/Block/Optimize/Head.php CHANGED
@@ -8,24 +8,16 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Block_Optimize_Head extends Mage_Page_Block_Html_Head {
27
-
28
- /**
29
  * Merge static and skin files of the same format into a set of HEAD directives or even into a directive
30
  *
31
  * Will attempt to merge into 1 directive, if merging callback is provided. In this case it will generate
@@ -50,27 +42,27 @@ class Diglin_UIOptimization_Block_Optimize_Head extends Mage_Page_Block_Html_Hea
50
  // get static files from the js folder, no need in lookups
51
  foreach ($staticItems as $params => $rows) {
52
  foreach ($rows as $name) {
53
- if(strpos($name, '.css') !== false && Mage::getStoreConfigFlag('uioptimization/csscompression/enabled')){
54
- $items[$params][] = $this->_prepareCssCompression($name, $mergeCallback, true);
55
- }else if(strpos($name, '.js') !== false && Mage::getStoreConfigFlag('uioptimization/jscompression/enabled')){
56
- $items[$params][] = $this->_prepareJsCompression($name, $mergeCallback, true);
57
- }else{
58
- $items[$params][] = $mergeCallback ? Mage::getBaseDir() . DS . 'js' . DS . $name : $baseJsUrl . $name;
59
- }
60
  }
61
  }
62
 
63
  // lookup each file basing on current theme configuration
64
  foreach ($skinItems as $params => $rows) {
65
  foreach ($rows as $name) {
66
- if(strpos($name, '.css') !== false && Mage::getStoreConfigFlag('uioptimization/csscompression/enabled')){
67
- $items[$params][] = $this->_prepareCssCompression($name, $mergeCallback);
68
- }else if(strpos($name, '.js') !== false && Mage::getStoreConfigFlag('uioptimization/jscompression/enabled')){
69
- $items[$params][] = $this->_prepareJsCompression($name, $mergeCallback);
70
- }else{
71
- $items[$params][] = $mergeCallback ? $designPackage->getFilename($name, array('_type' => 'skin'))
72
- : $designPackage->getSkinUrl($name, array());
73
- }
74
  }
75
  }
76
 
@@ -95,263 +87,283 @@ class Diglin_UIOptimization_Block_Optimize_Head extends Mage_Page_Block_Html_Hea
95
  return $html;
96
  }
97
 
98
- /**
99
- * Compress CSS files and write them to media/css folders
100
- *
101
- * @param string $name
102
- * @param string|array $mergeCallback
103
- * @param bool $static
104
- * @return string
105
- */
106
- protected function _prepareCssCompression($name, $mergeCallback = null, $static = false){
107
-
108
- $designPackage = Mage::getDesign ();
109
- $config = Mage::getStoreConfig('uioptimization/csscompression');
110
- $uiHelper = Mage::helper('uioptimization');
111
- $options = array();
112
-
113
- if($config['type'] == 'yuicompressor'){//YUI Compressor
114
- $minifier = 'Diglin_Minify_YUICompressor';
115
- $method = 'minifyCss';
116
- // init Minify class with YUI Compressor
117
- Diglin_Minify_YUICompressor::$jarFile = Mage::getBaseDir('lib') . DS . 'Diglin' . DS . 'yuicompressor-2.4.6' . DS . 'build' . DS . 'yuicompressor-2.4.6.jar' ;
118
- Diglin_Minify_YUICompressor::$tempDir = Mage::getBaseDir('tmp');
119
- if(strlen($config['java_path']) > 0){
120
- Diglin_Minify_YUICompressor::$javaExecutable = $config['java_path'];
121
- }
122
- }elseif($config['type'] == 'googleminify'){// Google Minify
123
- $minifier = 'Diglin_Minify_CSS';
124
- $method = 'minify';
125
- $options = array('minifierOptions' => array(Diglin_Minify::TYPE_CSS => array('preserveComments' => $config['preserve_comments'])));
126
- }else{// CSS Tidy
127
- $css = new Diglin_Csstidy_Core();
128
-
129
- switch($config['template']){
130
- case 'custom':
131
- $css->load_template ( $config['custom_template'] );
132
- break;
133
- case 'low_compression':
134
- case 'default':
135
- case 'high_compression':
136
- case 'highest_compression':
137
- default:
138
- $css->load_template ( $config['template'] );
139
- break;
140
- }
141
-
142
- $css->set_cfg ( 'remove_last_;', $config['remove_last_semicolon'] );
143
- $css->set_cfg ( 'remove_bslash', $config['remove_bslash'] );
144
- $css->set_cfg ( 'compress_colors', $config['compress_colors'] );
145
- $css->set_cfg ( 'compress_font-weight', $config['compress_font'] );
146
- $css->set_cfg ( 'lowercase_s', $config['lowercase_s'] );
147
- $css->set_cfg ( 'optimise_shorthands', $config['optimise_shorthands'] ); //0 = none, 1=safe optimize, 2=all optimize
148
- $css->set_cfg ( 'case_properties', $config['case_properties'] );
149
- $css->set_cfg ( 'sort_properties', $config['sort_properties'] );
150
- $css->set_cfg ( 'sort_selectors', $config['sort_selectors'] );
151
- $css->set_cfg ( 'merge_selectors', $config['merge_selectors'] );
152
- $css->set_cfg ( 'discard_invalid_properties', $config['discard_invalid_properties'] );
153
- $css->set_cfg ( 'css_level', $config['css_level'] ); //css2.0, css2.1, css1.0
154
- $css->set_cfg ( 'preserve_css', $config['preserve_css'] );
155
- $css->set_cfg ( 'timestamp', $config['timestamp'] );
156
- }
157
-
158
- $info = $uiHelper->getCompressedInfo($name, 'css', $static);
159
- if(!isset($info['result']) || $info['result'] != false){
160
- $info['result'] = true;
161
- }
162
-
163
- if (! file_exists ( $info['targetPathFile'] ) && $info['result'] ||
164
- !Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && $info['result'] && filemtime($info['orgskin_path']) > filemtime($info['targetPathFile']) ) {
165
- $ioFile = new Diglin_Io_File();
166
- if($config['type'] == 'csstidy'){// CSS Tidy
167
- $css_code = $ioFile->read ( $info['orgskin_path'] );
168
- $css->parse ( $css_code );
169
- $cssText = $css->print->plain ();
170
- }else if($config['type'] == 'googleminify' || $config['type'] == 'yuicompressor'){ // Google Minify or YUI Compressor
171
- $options += array(
172
- 'quiet' => true,// quiet will allow to get the content as array mixed null, or, if the 'quiet' option is set to true, an array with keys "success" (bool), "statusCode" (int), "content" (string), and "headers" (array).
173
- 'files' => array($info['orgskin_path']),
174
- 'encodeMethod' => '',
175
- 'minifiers' => array(Diglin_Minify::TYPE_CSS => array($minifier, $method))
176
- );
177
- $results = Diglin_Minify::serve('Files', $options);
178
- $cssText = $results['content'];
179
- }
180
-
181
- //clean or fix @import and url(...); by comparing the path with the original CSS file (not the compressed one otherwise the path is wrong)
182
- $cssText = $designPackage->beforeMergeCss($info['orgskin_path'], $cssText);
183
-
184
- $info['result'] = $ioFile->write ( $info['targetPathFile'], $cssText, 0644 );
185
- };
186
- return $uiHelper->getResultPath($info, $mergeCallback);
187
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
- /**
190
- * Compress JS files and write them to media/js folders
191
- *
192
- * @param string $name
193
- * @param string|array $mergeCallback
194
- * @param bool $static
195
- * @return string
196
- */
197
- protected function _prepareJsCompression($name, $mergeCallback = null, $static = false){
198
-
199
- $config = Mage::getStoreConfig('uioptimization/jscompression');
200
- $uiHelper = Mage::helper('uioptimization');
201
- $options = array();
202
-
203
- $info = $uiHelper->getCompressedInfo($name, 'js', $static);
204
- if(!isset($info['result']) || $info['result'] != false){
205
- $info['result'] = true;
206
- }
207
-
208
- if (! file_exists ( $info['targetPathFile'] ) && $info['result'] || !Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && $info['result'] && filemtime($info['orgskin_path']) > filemtime($info['targetPathFile'])) {
209
- switch($config['type']){
210
- case 'packer':
211
- $minifier = 'Diglin_Minify_Packer';
212
- $method = 'minify';
213
- break;
214
- case 'yuicompressor':
215
- $minifier = 'Diglin_Minify_YUICompressor';
216
- $method = 'minifyJs';
217
- Diglin_Minify_YUICompressor::$jarFile = Mage::getBaseDir('lib') . DS . 'Diglin' . DS .'yuicompressor-2.4.6' . DS . 'build' . DS . 'yuicompressor-2.4.6.jar' ;
218
- Diglin_Minify_YUICompressor::$tempDir = Mage::getBaseDir('tmp');
219
- if(strlen($config['java_path']) > 0){
220
- Diglin_Minify_YUICompressor::$javaExecutable = $config['java_path'];
221
- }
222
- $options = array('minifierOptions' =>
223
- array(Diglin_Minify::TYPE_JS =>
224
- array(
225
- 'disable-optimizations'=>$config['disable_alloptimisation'],
226
- 'preserve-semi' => $config['preserve_semic'],
227
- 'nomunge' => $config['minify_only']
228
- )
229
- ));
230
- break;
231
- case 'jsmin':
232
- default:
233
- $minifier = 'Diglin_JSMin';
234
- $method = 'minify';
235
- break;
236
- }
237
-
238
- $options += array(
239
- 'quiet' => true,// quiet will allow to get the content as array mixed null, or, if the 'quiet' option is set to true, an array with keys "success" (bool), "statusCode" (int), "content" (string), and "headers" (array).
240
- 'minifiers' => array(Diglin_Minify::TYPE_JS => array($minifier, $method)),
241
- 'files' => array($info['orgskin_path']),
242
- 'encodeMethod' => '',
243
-
244
- );
245
- $results = Diglin_Minify::serve('Files', $options);
246
-
247
- if($results['success']){
248
- $io = new Diglin_Io_File;
249
- $info['result'] = $io->write ( $info['targetPathFile'], $results['content'], 0644 );
250
- }else{
251
- $info['result'] = false;
252
- }
253
- }
254
- return $uiHelper->getResultPath($info, $mergeCallback);
255
- }
256
-
257
- /**
258
- * Canonical URL
259
- */
260
- public function getHeadUrl ()
261
  {
262
  if (empty($this->_data['urlKey'])) {
263
  $url = Mage::helper('core/url')->getCurrentUrl();
264
  $parsedUrl = parse_url($url);
265
- $scheme = $parsedUrl['scheme'];
266
- $host = $parsedUrl['host'];
267
  $port = isset($parsedUrl['port']) ? $parsedUrl['port'] : null;
268
- $path = $parsedUrl['path'];
269
- $headUrl = $scheme . '://' . $host . ($port && '80' != $port ? ':' . $port : '') . $path;
270
- if (Mage::getStoreConfig('uioptimization/seo/trailingslash')) {
271
- if (! preg_match('/\\.(rss|html|htm|xml|php?)$/', strtolower($headUrl)) && substr($headUrl, - 1) != '/') {
272
- $headUrl .= '/';
273
- }
274
- }
275
- //return $headUrl;
276
- $this->_data['urlKey'] = $headUrl;
277
  }
278
  return $this->_data['urlKey'];
279
- }
280
 
281
- /**
282
- * Canonical URL
283
- */
284
- public function getHeadHomeUrl ()
285
  {
286
  if (empty($this->_data['urlKey'])) {
287
  $url = Mage::helper('core/url')->getCurrentUrl();
288
  $request = Mage::app()->getRequest();
289
  $currentUri = $request->getRequestUri();
 
290
  // Purpose: provide a canonical url for shop having store code in header for the homepage
291
  if($request->getBaseUrl() && strpos($currentUri, $request->getBaseUrl()) !== false ){
292
- $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . substr($currentUri,strlen( $request->getBaseUrl()) +1);
293
-
294
- $currentUriClean = trim($currentUri, '/');
295
  $parts = explode('/', $currentUriClean);
296
-
297
  // Add code store to url if not provided by the client
298
- if(count($parts) <= 1 && Mage::getStoreConfigFlag('web/url/use_store') && Mage::getStoreConfigFlag('web/seo/use_rewrites')){
299
- $url .= Mage::app()->getStore()->getCode() . '/';
300
- }
301
- }
302
 
303
  $parsedUrl = parse_url($url);
304
- $scheme = $parsedUrl['scheme'];
305
- $host = $parsedUrl['host'];
306
  $port = isset($parsedUrl['port']) ? $parsedUrl['port'] : null;
307
- $path = $parsedUrl['path'];
308
- $headUrl = $scheme . '://' . $host . ($port && '80' != $port ? ':' . $port : '') . $path;
309
- if (Mage::getStoreConfig('uioptimization/seo/trailingslash')) {
310
- if (! preg_match('/\\.(rss|html|htm|xml|php?)$/', strtolower($headUrl)) && substr($headUrl, - 1) != '/') {
311
- $headUrl .= '/';
312
- }
313
- }
314
- //return $headUrl;
315
- $this->_data['urlKey'] = $headUrl;
316
  }
317
  return $this->_data['urlKey'];
318
  }
319
 
320
- /**
321
- * Canonical Product URL
322
- */
323
- public function getHeadProductUrl ()
324
  {
325
  if (empty($this->_data['urlKey'])) {
326
  $product_id = $this->getRequest()->getParam('id');
327
- $_item = Mage::getModel('catalog/product')->load($product_id);
328
- $this->_data['urlKey'] = Mage::getBaseUrl() . $_item->getUrlKey() . Mage::helper('catalog/product')->getProductUrlSuffix();
329
- if (Mage::getStoreConfig('uioptimization/seo/trailingslash')) {
330
- if (! preg_match('/\\.(rss|html|htm|xml|php?)$/', strtolower($this->_data['urlKey'])) && substr($this->_data['urlKey'], - 1) != '/') {
331
- $this->_data['urlKey'] .= '/';
332
- }
333
- }
334
  }
335
  return $this->_data['urlKey'];
336
  }
337
-
338
- /**
339
- * Canonical Blog URL
340
- */
341
- public function getHeadBlogUrl ()
342
  {
343
- $url = (! empty($_SERVER['HTTPS'])) ? "https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] : "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
344
- $parsedUrl = parse_url($url);
345
- $scheme = $parsedUrl['scheme'];
346
- $host = $parsedUrl['host'];
347
- $port = isset($parsedUrl['port']) ? $parsedUrl['port'] : null;
348
- $path = $parsedUrl['path'];
349
- $headUrl = $scheme . '://' . $host . ($port && '80' != $port ? ':' . $port : '') . $path;
350
- if (Mage::getStoreConfig('uioptimization/seo/trailingslash')) {
351
- if (! preg_match('/\\.(rss|html|htm|xml|php?)$/', strtolower($headUrl)) && substr($headUrl, - 1) != '/') {
352
- $headUrl .= '/';
353
- }
 
354
  }
355
- return $headUrl;
356
  }
357
  }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Block_Optimize_Head extends Mage_Page_Block_Html_Head
19
+ {
20
+ /**
21
  * Merge static and skin files of the same format into a set of HEAD directives or even into a directive
22
  *
23
  * Will attempt to merge into 1 directive, if merging callback is provided. In this case it will generate
42
  // get static files from the js folder, no need in lookups
43
  foreach ($staticItems as $params => $rows) {
44
  foreach ($rows as $name) {
45
+ if(strpos($name, '.css') !== false && Mage::getStoreConfigFlag('uioptimization/csscompression/enabled')){
46
+ $items[$params][] = $this->_prepareCssCompression($name, $mergeCallback, true);
47
+ }else if(strpos($name, '.js') !== false && Mage::getStoreConfigFlag('uioptimization/jscompression/enabled')){
48
+ $items[$params][] = $this->_prepareJsCompression($name, $mergeCallback, true);
49
+ }else{
50
+ $items[$params][] = $mergeCallback ? Mage::getBaseDir() . DS . 'js' . DS . $name : $baseJsUrl . $name;
51
+ }
52
  }
53
  }
54
 
55
  // lookup each file basing on current theme configuration
56
  foreach ($skinItems as $params => $rows) {
57
  foreach ($rows as $name) {
58
+ if(strpos($name, '.css') !== false && Mage::getStoreConfigFlag('uioptimization/csscompression/enabled')){
59
+ $items[$params][] = $this->_prepareCssCompression($name, $mergeCallback);
60
+ }else if(strpos($name, '.js') !== false && Mage::getStoreConfigFlag('uioptimization/jscompression/enabled')){
61
+ $items[$params][] = $this->_prepareJsCompression($name, $mergeCallback);
62
+ }else{
63
+ $items[$params][] = $mergeCallback ? $designPackage->getFilename($name, array('_type' => 'skin'))
64
+ : $designPackage->getSkinUrl($name, array());
65
+ }
66
  }
67
  }
68
 
87
  return $html;
88
  }
89
 
90
+ /**
91
+ * Compress CSS files and write them to media/css folders
92
+ *
93
+ * @param string $name
94
+ * @param string|array $mergeCallback
95
+ * @param bool $static
96
+ * @return string
97
+ */
98
+ protected function _prepareCssCompression($name, $mergeCallback = null, $static = false)
99
+ {
100
+ $designPackage = Mage::getDesign ();
101
+ $config = Mage::getStoreConfig('uioptimization/csscompression');
102
+ $uiHelper = Mage::helper('uioptimization');
103
+ $options = array();
104
+
105
+ if($config['type'] == 'yuicompressor'){//YUI Compressor
106
+ $minifier = 'Diglin_Minify_YUICompressor';
107
+ $method = 'minifyCss';
108
+ // init Minify class with YUI Compressor
109
+ Diglin_Minify_YUICompressor::$jarFile = Mage::getBaseDir('lib') . DS . 'Diglin' . DS . 'yuicompressor-2.4.6' . DS . 'build' . DS . 'yuicompressor-2.4.6.jar' ;
110
+ Diglin_Minify_YUICompressor::$tempDir = Mage::getBaseDir('tmp');
111
+ if(strlen($config['java_path']) > 0){
112
+ Diglin_Minify_YUICompressor::$javaExecutable = $config['java_path'];
113
+ }
114
+ }elseif($config['type'] == 'googleminify'){// Google Minify
115
+ $minifier = 'Diglin_Minify_CSS';
116
+ $method = 'minify';
117
+ $options = array('minifierOptions' => array(Diglin_Minify::TYPE_CSS => array('preserveComments' => $config['preserve_comments'])));
118
+ }else{// CSS Tidy
119
+ $css = new Diglin_Csstidy_Core();
120
+
121
+ switch($config['template']){
122
+ case 'custom':
123
+ $css->load_template ( $config['custom_template'] );
124
+ break;
125
+ case 'low_compression':
126
+ case 'default':
127
+ case 'high_compression':
128
+ case 'highest_compression':
129
+ default:
130
+ $css->load_template ( $config['template'] );
131
+ break;
132
+ }
133
+
134
+ $css->set_cfg ( 'remove_last_;', $config['remove_last_semicolon'] );
135
+ $css->set_cfg ( 'remove_bslash', $config['remove_bslash'] );
136
+ $css->set_cfg ( 'compress_colors', $config['compress_colors'] );
137
+ $css->set_cfg ( 'compress_font-weight', $config['compress_font'] );
138
+ $css->set_cfg ( 'lowercase_s', $config['lowercase_s'] );
139
+ $css->set_cfg ( 'optimise_shorthands', $config['optimise_shorthands'] ); //0 = none, 1=safe optimize, 2=all optimize
140
+ $css->set_cfg ( 'case_properties', $config['case_properties'] );
141
+ $css->set_cfg ( 'sort_properties', $config['sort_properties'] );
142
+ $css->set_cfg ( 'sort_selectors', $config['sort_selectors'] );
143
+ $css->set_cfg ( 'merge_selectors', $config['merge_selectors'] );
144
+ $css->set_cfg ( 'discard_invalid_properties', $config['discard_invalid_properties'] );
145
+ $css->set_cfg ( 'css_level', $config['css_level'] ); //css2.0, css2.1, css1.0
146
+ $css->set_cfg ( 'preserve_css', $config['preserve_css'] );
147
+ $css->set_cfg ( 'timestamp', $config['timestamp'] );
148
+ }
149
+
150
+ $info = $uiHelper->getCompressedInfo($name, 'css', $static);
151
+ if(!isset($info['result']) || $info['result'] != false){
152
+ $info['result'] = true;
153
+ }
154
+
155
+ if (! file_exists ( $info['targetPathFile'] ) && $info['result'] ||
156
+ !Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && $info['result'] && filemtime($info['orgskin_path']) > filemtime($info['targetPathFile']) ) {
157
+ $ioFile = new Diglin_Io_File();
158
+ if($config['type'] == 'csstidy'){// CSS Tidy
159
+ $css_code = $ioFile->read ( $info['orgskin_path'] );
160
+ $css->parse ( $css_code );
161
+ $cssText = $css->print->plain ();
162
+ }else if($config['type'] == 'googleminify' || $config['type'] == 'yuicompressor'){ // Google Minify or YUI Compressor
163
+ $options += array(
164
+ 'quiet' => true,// quiet will allow to get the content as array mixed null, or, if the 'quiet' option is set to true, an array with keys "success" (bool), "statusCode" (int), "content" (string), and "headers" (array).
165
+ 'files' => array($info['orgskin_path']),
166
+ 'encodeMethod' => '',
167
+ 'minifiers' => array(Diglin_Minify::TYPE_CSS => array($minifier, $method))
168
+ );
169
+ $results = Diglin_Minify::serve('Files', $options);
170
+ $cssText = $results['content'];
171
+ }
172
+
173
+ //clean or fix @import and url(...); by comparing the path with the original CSS file (not the compressed one otherwise the path is wrong)
174
+ $cssText = $designPackage->beforeMergeCss($info['orgskin_path'], $cssText);
175
+
176
+ $info['result'] = $ioFile->write ( $info['targetPathFile'], $cssText, 0644 );
177
+ };
178
+ return $uiHelper->getResultPath($info, $mergeCallback);
179
+ }
180
+
181
+ /**
182
+ * Compress JS files and write them to media/js folders
183
+ *
184
+ * @param string $name
185
+ * @param string|array $mergeCallback
186
+ * @param bool $static
187
+ * @return string
188
+ */
189
+ protected function _prepareJsCompression($name, $mergeCallback = null, $static = false)
190
+ {
191
+ $config = Mage::getStoreConfig('uioptimization/jscompression');
192
+ $uiHelper = Mage::helper('uioptimization');
193
+ $options = array();
194
+
195
+ $info = $uiHelper->getCompressedInfo($name, 'js', $static);
196
+ if(!isset($info['result']) || $info['result'] != false){
197
+ $info['result'] = true;
198
+ }
199
+
200
+ if (! file_exists ( $info['targetPathFile'] ) && $info['result'] || !Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && $info['result'] && filemtime($info['orgskin_path']) > filemtime($info['targetPathFile'])) {
201
+ switch($config['type']){
202
+ case 'packer':
203
+ $minifier = 'Diglin_Minify_Packer';
204
+ $method = 'minify';
205
+ break;
206
+ case 'yuicompressor':
207
+ $minifier = 'Diglin_Minify_YUICompressor';
208
+ $method = 'minifyJs';
209
+ Diglin_Minify_YUICompressor::$jarFile = Mage::getBaseDir('lib') . DS . 'Diglin' . DS .'yuicompressor-2.4.6' . DS . 'build' . DS . 'yuicompressor-2.4.6.jar' ;
210
+ Diglin_Minify_YUICompressor::$tempDir = Mage::getBaseDir('tmp');
211
+ if(strlen($config['java_path']) > 0){
212
+ Diglin_Minify_YUICompressor::$javaExecutable = $config['java_path'];
213
+ }
214
+ $options = array('minifierOptions' =>
215
+ array(Diglin_Minify::TYPE_JS =>
216
+ array(
217
+ 'disable-optimizations'=>$config['disable_alloptimisation'],
218
+ 'preserve-semi' => $config['preserve_semic'],
219
+ 'nomunge' => $config['minify_only']
220
+ )
221
+ ));
222
+ break;
223
+ case 'jsmin':
224
+ default:
225
+ $minifier = 'Diglin_JSMin';
226
+ $method = 'minify';
227
+ break;
228
+ }
229
+
230
+ $options += array(
231
+ 'quiet' => true,// quiet will allow to get the content as array mixed null, or, if the 'quiet' option is set to true, an array with keys "success" (bool), "statusCode" (int), "content" (string), and "headers" (array).
232
+ 'minifiers' => array(Diglin_Minify::TYPE_JS => array($minifier, $method)),
233
+ 'files' => array($info['orgskin_path']),
234
+ 'encodeMethod' => '',
235
+
236
+ );
237
+ $results = Diglin_Minify::serve('Files', $options);
238
+
239
+ if($results['success']){
240
+ $io = new Diglin_Io_File ();
241
+ $info['result'] = $io->write ( $info['targetPathFile'], $results['content'], 0644 );
242
+ }else{
243
+ $info['result'] = false;
244
+ }
245
+ }
246
+ return $uiHelper->getResultPath($info, $mergeCallback);
247
+ }
248
 
249
+ /**
250
+ * Canonical URL
251
+ * @return $this Rissip_UIOptimization_Block_Optimize_Head
252
+ */
253
+ public function getCanonicalUrl ()
254
+ {
255
+ Mage::dispatchEvent('uioptimization_canonicalurl_before', array('head' => $this, 'transport' => ''));
256
+
257
+ if(is_string($this->transport) && strlen($this->transport) > 0){
258
+ return $this->transport;
259
+ }
260
+
261
+ $handles = Mage::app()->getLayout()->getUpdate()->getHandles();
262
+
263
+ $searchHandles = array('catalogsearch_result_index', 'catalogsearch_advanced_index', 'catalogsearch_advanced_result');
264
+ $productHandles = array('catalog_product_view');
265
+ $homeHandles = array('cms_index_index');
266
+ $blogHandles = array('blog_post_view', 'blog_cat_view');
267
+
268
+ foreach ($handles as $handle){
269
+ // Catalog Search
270
+ if (in_array($handle, $searchHandles) && Mage::getStoreConfigFlag('uioptimization/seo/search')) {
271
+ return $this->_setCanonicalSearchUrl();
272
+ }elseif (!Mage::getStoreConfigFlag('uioptimization/seo/search')) {
273
+ return;
274
+ }
275
+
276
+ // Catalog Product
277
+ if (in_array($handle, $productHandles) && Mage::getStoreConfigFlag('uioptimization/seo/products')) {
278
+ return $this->_setCanonicalProductUrl();
279
+ }elseif (!Mage::getStoreConfigFlag('uioptimization/seo/products')) {
280
+ return;
281
+ }
282
+
283
+ // Homepage CMS
284
+ if (in_array($handle, $homeHandles) && Mage::getStoreConfigFlag('uioptimization/seo/cmshome')) {
285
+ return $this->_setCanonicalHomeUrl();
286
+ }elseif (!Mage::getStoreConfigFlag('uioptimization/seo/cmshome')) {
287
+ return;
288
+ }
289
+ }
290
+ return $this->_setCanonicalUrl();
291
+ }
292
+
293
+ private function _setCanonicalUrl()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  {
295
  if (empty($this->_data['urlKey'])) {
296
  $url = Mage::helper('core/url')->getCurrentUrl();
297
  $parsedUrl = parse_url($url);
 
 
298
  $port = isset($parsedUrl['port']) ? $parsedUrl['port'] : null;
299
+ $headUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . ($port && '80' != $port ? ':' . $port : '') . $parsedUrl['path'];
300
+ $this->_data['urlKey'] = Mage::helper('uioptimization')->getTrailingSlash($headUrl);
 
 
 
 
 
 
 
301
  }
302
  return $this->_data['urlKey'];
303
+ }
304
 
305
+ /**
306
+ * Canonical URL for homepage
307
+ */
308
+ private function _setCanonicalHomeUrl ()
309
  {
310
  if (empty($this->_data['urlKey'])) {
311
  $url = Mage::helper('core/url')->getCurrentUrl();
312
  $request = Mage::app()->getRequest();
313
  $currentUri = $request->getRequestUri();
314
+
315
  // Purpose: provide a canonical url for shop having store code in header for the homepage
316
  if($request->getBaseUrl() && strpos($currentUri, $request->getBaseUrl()) !== false ){
317
+ $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . substr($currentUri,strlen( $request->getBaseUrl()) +1);
318
+
319
+ $currentUriClean = trim($currentUri, '/');
320
  $parts = explode('/', $currentUriClean);
321
+
322
  // Add code store to url if not provided by the client
323
+ if(count($parts) <= 1 && Mage::getStoreConfigFlag('web/url/use_store') && Mage::getStoreConfigFlag('web/seo/use_rewrites')){
324
+ $url .= Mage::app()->getStore()->getCode() . '/';
325
+ }
326
+ }
327
 
328
  $parsedUrl = parse_url($url);
 
 
329
  $port = isset($parsedUrl['port']) ? $parsedUrl['port'] : null;
330
+ $headUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . ($port && '80' != $port ? ':' . $port : '') . $parsedUrl['path'];
331
+ $this->_data['urlKey'] = Mage::helper('uioptimization')->getTrailingSlash($headUrl);
 
 
 
 
 
 
 
332
  }
333
  return $this->_data['urlKey'];
334
  }
335
 
336
+ /**
337
+ * Canonical Product URL
338
+ */
339
+ private function _setCanonicalProductUrl ()
340
  {
341
  if (empty($this->_data['urlKey'])) {
342
  $product_id = $this->getRequest()->getParam('id');
343
+ $_item = Mage::getModel('catalog/product')
344
+ ->setStoreId(Mage::app()->getStore()->getId())
345
+ ->load($product_id);
346
+ $headUrl = Mage::getBaseUrl() . $_item->getUrlPath() /*. Mage::helper('catalog/product')->getProductUrlSuffix()*/;
347
+ $this->_data['urlKey'] = Mage::helper('uioptimization')->getTrailingSlash($headUrl);
 
 
348
  }
349
  return $this->_data['urlKey'];
350
  }
351
+
352
+ private function _setCanonicalSearchUrl()
 
 
 
353
  {
354
+ if (empty($this->_data['urlKey'])) {
355
+
356
+ $headUrl = $this->_setCanonicalUrl();
357
+ $request = Mage::app()->getRequest();
358
+ $searchParam = $request->getParam('q');
359
+ $searchNameParam = $request->getParam('name');
360
+ $searchDescParam = $request->getParam('description');
361
+ $params = array();
362
+ if($searchParam) $params[] = 'q='.$searchParam;
363
+ if($searchNameParam) $params[] = 'name='.$searchNameParam;
364
+ if($searchDescParam) $params[] = 'description='.$searchDescParam;
365
+ $this->_data['urlKey'] = $headUrl . ((count($params))? '?' .implode('&', $params): '');
366
  }
367
+ return $this->_data['urlKey'];
368
  }
369
  }
app/code/community/Diglin/UIOptimization/Block/W3Ccssvalidator.php CHANGED
@@ -8,76 +8,70 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Block_W3Ccssvalidator extends Mage_Core_Block_Template{
27
-
28
- protected $_validator;
29
-
30
- public $results;
31
-
32
- protected function _beforeToHtml(){
33
-
 
34
  if ( !Mage::getStoreConfig('uioptimization/w3ccssvalidator/enabled')
35
  || !Mage::helper('core')->isDevAllowed()
36
  || strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') !== false) {
37
  return '';
38
  }
39
 
40
- /**
41
- * To force to include the PEAR libs installed in Magento (downloader/pearlib) - Without that
42
- * we cannot have the Services_W3C_HTMLValidator dependencies
43
- * The var $pear is not used here for the moment. But the call to Varien_Pear is necessary
44
- */
45
- //$pear = Varien_Pear::getInstance (); // not compatible with Magento > 1.5
46
- $config = Mage::getStoreConfig ( 'uioptimization' );
47
-
48
- $this->_validator = new Diglin_Services_W3C_CSSValidator ();
49
-
50
- if(!empty($config['w3ccssvalidator']['validator_uri'])){
51
- $this->_validator->validator_uri = $config['w3ccssvalidator']['validator_uri'];
52
- };
53
-
54
- if(!empty($config['w3ccssvalidator']['charset'])){
55
- $this->_validator->charset = $config['w3ccssvalidator']['charset'];
56
- };
57
-
58
- if(!empty($config['w3ccssvalidator']['fbd'])){
59
- $this->_validator->fbc = (int)$config['w3ccssvalidator']['fbc'];
60
- };
61
-
62
- if(!empty($config['w3ccssvalidator']['doctype'])){
63
- $this->_validator->doctype = $config['w3ccssvalidator']['doctype'];
64
- };
65
-
66
- if(!empty($config['w3ccssvalidator']['fbc'])){
67
- $this->_validator->fbd = (int)$config['w3ccssvalidator']['fbc'];
68
- };
69
-
70
- //$this->results = $this->_validator->validate('http://www.google.com/');
71
- $this->results = $this->_validator->validateUri(Mage::helper('core/url')->getCurrentUrl());
72
-
73
- return parent::_beforeToHtml();
74
  }
75
 
76
  /**
77
  *
78
  * @return Services_W3C_HTMLValidator_Response $this->results
79
  */
80
- public function getValidatorResults(){
81
- return $this->results;
 
82
  }
83
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Block_W3Ccssvalidator extends Mage_Core_Block_Template
19
+ {
20
+
21
+ protected $_validator;
22
+
23
+ public $results;
24
+
25
+ protected function _beforeToHtml()
26
+ {
27
  if ( !Mage::getStoreConfig('uioptimization/w3ccssvalidator/enabled')
28
  || !Mage::helper('core')->isDevAllowed()
29
  || strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') !== false) {
30
  return '';
31
  }
32
 
33
+ /**
34
+ * To force to include the PEAR libs installed in Magento (downloader/pearlib) - Without that
35
+ * we cannot have the Services_W3C_HTMLValidator dependencies
36
+ * The var $pear is not used here for the moment. But the call to Varien_Pear is necessary
37
+ */
38
+ //$pear = Varien_Pear::getInstance (); // not compatible with Magento > 1.5
39
+ $config = Mage::getStoreConfig ( 'uioptimization' );
40
+
41
+ $this->_validator = new Diglin_Services_W3C_CSSValidator ();
42
+
43
+ if(!empty($config['w3ccssvalidator']['validator_uri'])){
44
+ $this->_validator->validator_uri = $config['w3ccssvalidator']['validator_uri'];
45
+ };
46
+
47
+ if(!empty($config['w3ccssvalidator']['charset'])){
48
+ $this->_validator->charset = $config['w3ccssvalidator']['charset'];
49
+ };
50
+
51
+ if(!empty($config['w3ccssvalidator']['fbd'])){
52
+ $this->_validator->fbc = (int)$config['w3ccssvalidator']['fbc'];
53
+ };
54
+
55
+ if(!empty($config['w3ccssvalidator']['doctype'])){
56
+ $this->_validator->doctype = $config['w3ccssvalidator']['doctype'];
57
+ };
58
+
59
+ if(!empty($config['w3ccssvalidator']['fbc'])){
60
+ $this->_validator->fbd = (int)$config['w3ccssvalidator']['fbc'];
61
+ };
62
+
63
+ //$this->results = $this->_validator->validate('http://www.google.com/');
64
+ $this->results = $this->_validator->validateUri(Mage::helper('core/url')->getCurrentUrl());
65
+
66
+ return parent::_beforeToHtml();
67
  }
68
 
69
  /**
70
  *
71
  * @return Services_W3C_HTMLValidator_Response $this->results
72
  */
73
+ public function getValidatorResults()
74
+ {
75
+ return $this->results;
76
  }
77
+ }
app/code/community/Diglin/UIOptimization/Block/W3Chtmlvalidator.php CHANGED
@@ -8,76 +8,70 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Block_W3Chtmlvalidator extends Mage_Core_Block_Template{
27
-
28
- protected $_validator;
29
-
30
- public $results;
31
-
32
- protected function _beforeToHtml(){
33
-
 
34
  if ( !Mage::getStoreConfig('uioptimization/w3chtmlvalidator/enabled')
35
  || !Mage::helper('core')->isDevAllowed()
36
  || strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') !== false) {
37
  return '';
38
  }
39
 
40
- /**
41
- * To force to include the PEAR libs installed in Magento (downloader/pearlib) - Without that
42
- * we cannot have the Services_W3C_HTMLValidator dependencies
43
- * The var $pear is not used here for the moment. But the call to Varien_Pear is necessary
44
- */
45
- //$pear = Varien_Pear::getInstance (); // not compatible with Magento > 1.5
46
- $config = Mage::getStoreConfig ( 'uioptimization' );
47
-
48
- $this->_validator = new Diglin_Services_W3C_HTMLValidator ();
49
-
50
- if(!empty($config['w3chtmlvalidator']['validator_uri'])){
51
- $this->_validator->validator_uri = $config['w3chtmlvalidator']['validator_uri'];
52
- };
53
-
54
- if(!empty($config['w3chtmlvalidator']['charset'])){
55
- $this->_validator->charset = $config['w3chtmlvalidator']['charset'];
56
- };
57
-
58
- if(!empty($config['w3chtmlvalidator']['fbd'])){
59
- $this->_validator->fbc = (int)$config['w3chtmlvalidator']['fbc'];
60
- };
61
-
62
- if(!empty($config['w3chtmlvalidator']['doctype'])){
63
- $this->_validator->doctype = $config['w3chtmlvalidator']['doctype'];
64
- };
65
-
66
- if(!empty($config['w3chtmlvalidator']['fbc'])){
67
- $this->_validator->fbd = (int)$config['w3chtmlvalidator']['fbc'];
68
- };
69
-
70
- //$this->results = $this->_validator->validate('http://www.google.com/');
71
- $this->results = $this->_validator->validate(Mage::helper('core/url')->getCurrentUrl());
72
-
73
- return parent::_beforeToHtml();
74
  }
75
 
76
  /**
77
  *
78
  * @return Services_W3C_HTMLValidator_Response $this->results
79
  */
80
- public function getValidatorResults(){
81
- return $this->results;
 
82
  }
83
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Block_W3Chtmlvalidator extends Mage_Core_Block_Template
19
+ {
20
+ protected $_validator;
21
+
22
+ public $results;
23
+
24
+ protected function _beforeToHtml()
25
+ {
26
+
27
  if ( !Mage::getStoreConfig('uioptimization/w3chtmlvalidator/enabled')
28
  || !Mage::helper('core')->isDevAllowed()
29
  || strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') !== false) {
30
  return '';
31
  }
32
 
33
+ /**
34
+ * To force to include the PEAR libs installed in Magento (downloader/pearlib) - Without that
35
+ * we cannot have the Services_W3C_HTMLValidator dependencies
36
+ * The var $pear is not used here for the moment. But the call to Varien_Pear is necessary
37
+ */
38
+ //$pear = Varien_Pear::getInstance (); // not compatible with Magento > 1.5
39
+ $config = Mage::getStoreConfig ( 'uioptimization' );
40
+
41
+ $this->_validator = new Diglin_Services_W3C_HTMLValidator ();
42
+
43
+ if(!empty($config['w3chtmlvalidator']['validator_uri'])){
44
+ $this->_validator->validator_uri = $config['w3chtmlvalidator']['validator_uri'];
45
+ };
46
+
47
+ if(!empty($config['w3chtmlvalidator']['charset'])){
48
+ $this->_validator->charset = $config['w3chtmlvalidator']['charset'];
49
+ };
50
+
51
+ if(!empty($config['w3chtmlvalidator']['fbd'])){
52
+ $this->_validator->fbc = (int)$config['w3chtmlvalidator']['fbc'];
53
+ };
54
+
55
+ if(!empty($config['w3chtmlvalidator']['doctype'])){
56
+ $this->_validator->doctype = $config['w3chtmlvalidator']['doctype'];
57
+ };
58
+
59
+ if(!empty($config['w3chtmlvalidator']['fbc'])){
60
+ $this->_validator->fbd = (int)$config['w3chtmlvalidator']['fbc'];
61
+ };
62
+
63
+ //$this->results = $this->_validator->validate('http://www.google.com/');
64
+ $this->results = $this->_validator->validate(Mage::helper('core/url')->getCurrentUrl());
65
+
66
+ return parent::_beforeToHtml();
67
  }
68
 
69
  /**
70
  *
71
  * @return Services_W3C_HTMLValidator_Response $this->results
72
  */
73
+ public function getValidatorResults()
74
+ {
75
+ return $this->results;
76
  }
77
+ }
app/code/community/Diglin/UIOptimization/Helper/Data.php CHANGED
@@ -8,110 +8,104 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- /**
27
- * Only for String Translation
28
- */
29
- class Diglin_UIOptimization_Helper_Data extends Mage_Core_Helper_Abstract {
30
- /**
31
- * Retreive some basic information depending on the type of file: original path, destination path, type, name, static
32
- *
33
- * @param string $name
34
- * @param string $type
35
- * @param bool $static
36
- * @return array $info
37
- */
38
- public function getCompressedInfo($name, $type = 'css', $static = false){
39
-
40
- $info = array();
41
- $designPackage = Mage::getDesign();
42
-
43
- $orgname = $name;
44
- if(!$static){
45
- $info['orgskin_path'] = $designPackage->getFilename ( $orgname, array ('_type' => 'skin' ) );
46
- }else{
47
- $info['orgskin_path'] = Mage::getBaseDir() . DS . 'js'. DS . $name;
48
- }
49
-
50
- $orgpath = explode ( DS, $info['orgskin_path'] );
51
- if (count ( $orgpath ) > 1 && !$static) {
52
- // Get the theme of the original file
53
- $info['theme_name'] = $orgpath [count ( $orgpath ) - (count ( explode ( '/', $orgname ) ) + 1)];
54
- }
55
- $suffixFilename = (Mage::app()->getStore()->isCurrentlySecure())?'-ssl':'';
56
- $name = substr ( $name, 0, strpos($name, '.' . $type) );
57
- $name = $name . $suffixFilename .'_cp.'.$type;
58
-
59
- $file_path = explode('/', $name);
60
- if(count($file_path) > 1){
61
- $name = array_pop($file_path);
62
- $info['file_path'] = implode(DS, $file_path);
63
- }else{
64
- $info['file_path'] = '';
65
- }
66
 
67
- $info['original_name'] = $orgname;
68
- $info['new_name'] = $name;
69
- $info['type'] = $type;
70
- $info['static'] = $static;
71
-
72
- $targetDir = $this->initMergerDir ( $type );
73
- if (! $targetDir) {
74
- $info['success'] = false;
75
- return $info;
76
- }
77
-
78
- if(!$static){
79
- $info['targetPath'] = $targetDir . DS . 'skin' . DS . $info['theme_name'] . DS . $info['file_path'];
80
- }else{
81
- $info['targetPath'] = $targetDir . DS . $info['file_path'];
82
- }
83
- $info['targetPathFile'] = $info['targetPath'] . DS . $name;
84
-
85
- if(!file_exists($info['targetPath'])){
86
- $ioFile = new Diglin_Io_File();
87
- $ioFile->mkdir($info['targetPath'], 0755, true);
88
- }
89
-
90
- return $info;
91
- }
92
-
93
- /**
94
- * Provide the path URL of the filesystem for js or css files compressed or not
95
- *
96
- * @param array $info
97
- * @param string|array $mergeCallback
98
- * @return string
99
- */
100
- public function getResultPath($info, $mergeCallback ){
101
- $designPackage = Mage::getDesign();
102
-
103
- // Skin items
104
- if(!$info['result'] && !$info['static']){ // Default Folder
105
- return ($mergeCallback ? $designPackage->getFilename($info['original_name'], array('_type' => 'skin')) : $designPackage->getSkinUrl($info['original_name'], array()));
106
- }else if(!$info['static']){
107
- return ($mergeCallback ? $info['targetPathFile'] : Mage::getBaseUrl ( 'media' ) . $info['type'] . DS . 'skin' . DS . $info['theme_name'] . DS . $info['file_path'] . DS . $info['new_name']);
108
- // Static Items
109
- }else if(!$info['result'] && $info['static']){ // Default folder
110
- return $mergeCallback ? Mage::getBaseDir() . DS . 'js' . DS . $info['original_name'] : Mage::getBaseUrl('js') . $info['original_name'];
111
- }else{
112
- return $mergeCallback ? $info['targetPathFile'] : Mage::getBaseUrl ( 'media' ) . $info['type'] . DS . $info['file_path'] . DS . $info['new_name'];
113
- }
114
- }
 
 
 
 
115
  /**
116
  * Make sure merger dir exists and writeable
117
  * Also can clean it up
@@ -120,7 +114,7 @@ class Diglin_UIOptimization_Helper_Data extends Mage_Core_Helper_Abstract {
120
  * @param bool $cleanup
121
  * @return bool|string
122
  */
123
- public function initMergerDir($dirRelativeName, $cleanup = false)
124
  {
125
  $mediaDir = Mage::getBaseDir('media');
126
  try {
@@ -128,7 +122,7 @@ class Diglin_UIOptimization_Helper_Data extends Mage_Core_Helper_Abstract {
128
  if ($cleanup) {
129
  Diglin_Io_File::rmdirRecursive($dir);
130
  }
131
- if (!is_dir($dir)) {
132
  mkdir($dir);
133
  }
134
  return is_writeable($dir) ? $dir : false;
@@ -137,4 +131,19 @@ class Diglin_UIOptimization_Helper_Data extends Mage_Core_Helper_Abstract {
137
  }
138
  return false;
139
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Helper_Data extends Mage_Core_Helper_Abstract
19
+ {
20
+ /**
21
+ * Retreive some basic information depending on the type of file: original path, destination path, type, name, static
22
+ *
23
+ * @param string $name
24
+ * @param string $type
25
+ * @param bool $static
26
+ * @return array $info
27
+ */
28
+ public function getCompressedInfo($name, $type = 'css', $static = false)
29
+ {
30
+ $info = array();
31
+ $designPackage = Mage::getDesign();
32
+
33
+ $orgname = $name;
34
+ if(!$static){
35
+ $info['orgskin_path'] = $designPackage->getFilename ( $orgname, array ('_type' => 'skin' ) );
36
+ }else{
37
+ $info['orgskin_path'] = Mage::getBaseDir() . DS . 'js'. DS . $name;
38
+ }
39
+
40
+ $orgpath = explode ( DS, $info['orgskin_path'] );
41
+ if (count ( $orgpath ) > 1 && !$static) {
42
+ // Get the theme of the original file
43
+ $info['theme_name'] = $orgpath [count ( $orgpath ) - (count ( explode ( '/', $orgname ) ) + 1)];
44
+ }
45
+ $suffixFilename = (Mage::app()->getStore()->isCurrentlySecure())?'-ssl':'';
46
+ $name = substr ( $name, 0, strpos($name, '.' . $type) );
47
+ $name = $name . $suffixFilename .'_cp.'.$type;
48
+
49
+ $file_path = explode('/', $name);
50
+ if(count($file_path) > 1){
51
+ $name = array_pop($file_path);
52
+ $info['file_path'] = implode(DS, $file_path);
53
+ }else{
54
+ $info['file_path'] = '';
55
+ }
 
 
56
 
57
+ $info['original_name'] = $orgname;
58
+ $info['new_name'] = $name;
59
+ $info['type'] = $type;
60
+ $info['static'] = $static;
61
+
62
+ $targetDir = $this->initMergerDir ( $type );
63
+ if (! $targetDir) {
64
+ $info['success'] = false;
65
+ return $info;
66
+ }
67
+
68
+ if(!$static){
69
+ $info['targetPath'] = $targetDir . DS . 'skin' . DS . $info['theme_name'] . DS . $info['file_path'];
70
+ }else{
71
+ $info['targetPath'] = $targetDir . DS . $info['file_path'];
72
+ }
73
+ $info['targetPathFile'] = $info['targetPath'] . DS . $name;
74
+
75
+ if(!file_exists($info['targetPath'])){
76
+ $ioFile = new Diglin_Io_File();
77
+ $ioFile->mkdir($info['targetPath'], 0755, true);
78
+ }
79
+
80
+ return $info;
81
+ }
82
+ /**
83
+ * Provide the path URL of the filesystem for js or css files compressed or not
84
+ *
85
+ * @param array $info
86
+ * @param string|array $mergeCallback
87
+ * @return string
88
+ */
89
+ public function getResultPath ($info, $mergeCallback)
90
+ {
91
+ $designPackage = Mage::getDesign();
92
+ // Skin items
93
+ if (! $info['result'] && ! $info['static']) { // Default Folder
94
+ return ($mergeCallback ? $designPackage->getFilename($info['original_name'], array('_type' => 'skin')) : $designPackage->getSkinUrl($info['original_name'], array()));
95
+ } else {
96
+ if (! $info['static']) {
97
+ return ($mergeCallback ? $info['targetPathFile'] : Mage::getBaseUrl('media') . $info['type'] . DS . 'skin' . DS . $info['theme_name'] . DS . $info['file_path'] . DS . $info['new_name']);
98
+ // Static Items
99
+ } else {
100
+ if (! $info['result'] && $info['static']) { // Default folder
101
+ return $mergeCallback ? Mage::getBaseDir() . DS . 'js' . DS . $info['original_name'] : Mage::getBaseUrl('js') . $info['original_name'];
102
+ } else {
103
+ return $mergeCallback ? $info['targetPathFile'] : Mage::getBaseUrl('media') . $info['type'] . DS . $info['file_path'] . DS . $info['new_name'];
104
+ }
105
+ }
106
+ }
107
+ }
108
+
109
  /**
110
  * Make sure merger dir exists and writeable
111
  * Also can clean it up
114
  * @param bool $cleanup
115
  * @return bool|string
116
  */
117
+ public function initMergerDir ($dirRelativeName, $cleanup = false)
118
  {
119
  $mediaDir = Mage::getBaseDir('media');
120
  try {
122
  if ($cleanup) {
123
  Diglin_Io_File::rmdirRecursive($dir);
124
  }
125
+ if (! is_dir($dir)) {
126
  mkdir($dir);
127
  }
128
  return is_writeable($dir) ? $dir : false;
131
  }
132
  return false;
133
  }
134
+
135
+ /**
136
+ * Add trailing slash if necessary
137
+ *
138
+ * @param string $url
139
+ */
140
+ public function getTrailingSlash ($url)
141
+ {
142
+ if (Mage::getStoreConfig('web/seo/trailingslash')) {
143
+ if (! preg_match('/\\.(rss|html|htm|xml|php?)$/', strtolower($url)) && substr($url, - 1) != '/') {
144
+ $url .= '/';
145
+ }
146
+ }
147
+ return $url;
148
+ }
149
  }
app/code/community/Diglin/UIOptimization/Model/Config/Source/Caseproperties.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Caseproperties
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Caseproperties
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => '0', 'label' => 'None'),
38
- array('value' => '1', 'label' => 'Lowercase'),
39
- array('value' => '2', 'label' => 'Uppercase'),
40
  );
41
  }
42
-
43
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Caseproperties
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => '0', 'label' => 'None'),
29
+ array('value' => '1', 'label' => 'Lowercase'),
30
+ array('value' => '2', 'label' => 'Uppercase'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Charset.php CHANGED
@@ -8,23 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Model_Config_Source_Charset {
27
-
28
  /**
29
  * Options getter
30
  *
@@ -33,7 +25,7 @@ class Diglin_UIOptimization_Model_Config_Source_Charset {
33
  public function toOptionArray()
34
  {
35
  return array(
36
- array('value' => "", 'label' => "(detect automatically)"),
37
  array('value' => "utf-8", 'label' => "utf-8 (Unicode, worldwide)"),
38
  array('value' => "utf-16", 'label' => "utf-16 (Unicode, worldwide)"),
39
  array('value' => "iso-8859-1", 'label' => "iso-8859-1 (Western Europe)"),
@@ -77,5 +69,4 @@ class Diglin_UIOptimization_Model_Config_Source_Charset {
77
  array('value' => "windows-1257", 'label' => "windows-1257 (Baltic Rim)"),
78
  );
79
  }
80
-
81
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Model_Config_Source_Charset
19
+ {
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => "", 'label' => "(detect automatically)"),
29
  array('value' => "utf-8", 'label' => "utf-8 (Unicode, worldwide)"),
30
  array('value' => "utf-16", 'label' => "utf-16 (Unicode, worldwide)"),
31
  array('value' => "iso-8859-1", 'label' => "iso-8859-1 (Western Europe)"),
69
  array('value' => "windows-1257", 'label' => "windows-1257 (Baltic Rim)"),
70
  );
71
  }
72
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Csslevel.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Csslevel
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Csslevel
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => 'CSS1.0', 'label' => 'CSS level 1'),
38
- array('value' => 'CSS2.0', 'label' => 'CSS level 2'),
39
- array('value' => 'CSS2.1', 'label' => 'CSS level 2.1'),
40
  );
41
  }
42
-
43
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Csslevel
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'CSS1.0', 'label' => 'CSS level 1'),
29
+ array('value' => 'CSS2.0', 'label' => 'CSS level 2'),
30
+ array('value' => 'CSS2.1', 'label' => 'CSS level 2.1'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Csstypeminify.php CHANGED
@@ -8,23 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Model_Config_Source_Csstypeminify{
27
-
28
  /**
29
  * Options getter
30
  *
@@ -33,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Csstypeminify{
33
  public function toOptionArray()
34
  {
35
  return array(
36
- array('value' => 'csstidy', 'label' => 'CSS Tidy (Recommended)'),
37
- array('value' => 'yuicompressor', 'label' => 'YUICompressor'),
38
- array('value' => 'googleminify', 'label' => 'Google Minify'),
39
  );
40
  }
41
-
42
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Model_Config_Source_Csstypeminify
19
+ {
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'csstidy', 'label' => 'CSS Tidy (Recommended)'),
29
+ array('value' => 'yuicompressor', 'label' => 'YUICompressor (if Java installed)'),
30
+ array('value' => 'googleminify', 'label' => 'Google Minify'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Doctype.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Doctype
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,33 +25,32 @@ class Diglin_UIOptimization_Model_Config_Source_Doctype
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => "Inline", 'label' => "(detect automatically)"),
38
- array('value' => "HTML5", 'label' => "HTML5 (experimental)"),
39
- array('value' => "XHTML 1.0 Strict", 'label' => "XHTML 1.0 Strict"),
40
- array('value' => "XHTML 1.0 Transitional", 'label' => "XHTML 1.0 Transitional"),
41
- array('value' => "XHTML 1.0 Frameset", 'label' => "XHTML 1.0 Frameset"),
42
- array('value' => "HTML 4.01 Strict", 'label' => "HTML 4.01 Strict"),
43
- array('value' => "HTML 4.01 Transitional", 'label' => "HTML 4.01 Transitional"),
44
- array('value' => "HTML 4.01 Frameset", 'label' => "HTML 4.01 Frameset"),
45
- array('value' => "HTML 3.2", 'label' => "HTML 3.2"),
46
- array('value' => "HTML 2.0", 'label' => "HTML 2.0"),
47
- array('value' => "ISO/IEC 15445:2000 (&quot;ISO HTML&quot;)", 'label' => "ISO/IEC 15445:2000 (\"ISO HTML\")"),
48
- array('value' => "XHTML 1.1", 'label' => "XHTML 1.1"),
49
- array('value' => "XHTML + RDFa", 'label' => "XHTML + RDFa"),
50
- array('value' => "XHTML Basic 1.0", 'label' => "XHTML Basic 1.0"),
51
- array('value' => "XHTML Basic 1.1", 'label' => "XHTML Basic 1.1"),
52
- array('value' => "XHTML Mobile Profile 1.2", 'label' => "XHTML Mobile Profile 1.2"),
53
- array('value' => "XHTML-Print 1.0", 'label' => "XHTML-Print 1.0"),
54
- array('value' => "XHTML 1.1 plus MathML 2.0", 'label' => "XHTML 1.1 plus MathML 2.0"),
55
- array('value' => "XHTML 1.1 plus MathML 2.0 plus SVG 1.1", 'label' => "XHTML 1.1 plus MathML 2.0 plus SVG 1.1"),
56
- array('value' => "MathML 2.0", 'label' => "MathML 2.0"),
57
- array('value' => "SVG 1.0", 'label' => "SVG 1.0"),
58
- array('value' => "SVG 1.1", 'label' => "SVG 1.1"),
59
- array('value' => "SVG 1.1 Tiny", 'label' => "SVG 1.1 Tiny"),
60
- array('value' => "SVG 1.1 Basic", 'label' => "SVG 1.1 Basic"),
61
- array('value' => "SMIL 1.0", 'label' => "SMIL 1.0"),
62
- array('value' => "SMIL 2.0", 'label' => "SMIL 2.0"),
63
  );
64
  }
65
-
66
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Doctype
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => "Inline", 'label' => "(detect automatically)"),
29
+ array('value' => "HTML5", 'label' => "HTML5 (experimental)"),
30
+ array('value' => "XHTML 1.0 Strict", 'label' => "XHTML 1.0 Strict"),
31
+ array('value' => "XHTML 1.0 Transitional", 'label' => "XHTML 1.0 Transitional"),
32
+ array('value' => "XHTML 1.0 Frameset", 'label' => "XHTML 1.0 Frameset"),
33
+ array('value' => "HTML 4.01 Strict", 'label' => "HTML 4.01 Strict"),
34
+ array('value' => "HTML 4.01 Transitional", 'label' => "HTML 4.01 Transitional"),
35
+ array('value' => "HTML 4.01 Frameset", 'label' => "HTML 4.01 Frameset"),
36
+ array('value' => "HTML 3.2", 'label' => "HTML 3.2"),
37
+ array('value' => "HTML 2.0", 'label' => "HTML 2.0"),
38
+ array('value' => "ISO/IEC 15445:2000 (&quot;ISO HTML&quot;)", 'label' => "ISO/IEC 15445:2000 (\"ISO HTML\")"),
39
+ array('value' => "XHTML 1.1", 'label' => "XHTML 1.1"),
40
+ array('value' => "XHTML + RDFa", 'label' => "XHTML + RDFa"),
41
+ array('value' => "XHTML Basic 1.0", 'label' => "XHTML Basic 1.0"),
42
+ array('value' => "XHTML Basic 1.1", 'label' => "XHTML Basic 1.1"),
43
+ array('value' => "XHTML Mobile Profile 1.2", 'label' => "XHTML Mobile Profile 1.2"),
44
+ array('value' => "XHTML-Print 1.0", 'label' => "XHTML-Print 1.0"),
45
+ array('value' => "XHTML 1.1 plus MathML 2.0", 'label' => "XHTML 1.1 plus MathML 2.0"),
46
+ array('value' => "XHTML 1.1 plus MathML 2.0 plus SVG 1.1", 'label' => "XHTML 1.1 plus MathML 2.0 plus SVG 1.1"),
47
+ array('value' => "MathML 2.0", 'label' => "MathML 2.0"),
48
+ array('value' => "SVG 1.0", 'label' => "SVG 1.0"),
49
+ array('value' => "SVG 1.1", 'label' => "SVG 1.1"),
50
+ array('value' => "SVG 1.1 Tiny", 'label' => "SVG 1.1 Tiny"),
51
+ array('value' => "SVG 1.1 Basic", 'label' => "SVG 1.1 Basic"),
52
+ array('value' => "SMIL 1.0", 'label' => "SMIL 1.0"),
53
+ array('value' => "SMIL 2.0", 'label' => "SMIL 2.0"),
54
  );
55
  }
56
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Jstypeminify.php CHANGED
@@ -8,23 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Model_Config_Source_Jstypeminify{
27
-
28
  /**
29
  * Options getter
30
  *
@@ -33,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Jstypeminify{
33
  public function toOptionArray()
34
  {
35
  return array(
36
- array('value' => 'jsmin', 'label' => 'JSMin (Good ratio)'),
37
- array('value' => 'yuicompressor', 'label' => 'YUICompressor (recommended if java available)'),
38
- array('value' => 'packer', 'label' => 'Packer from Dean Edwards (best compression / less Magento compatible)'),
39
  );
40
  }
41
-
42
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Model_Config_Source_Jstypeminify
19
+ {
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'jsmin', 'label' => 'JSMin (Good ratio)'),
29
+ array('value' => 'yuicompressor', 'label' => 'YUICompressor (recommended if java available)'),
30
+ //array('value' => 'packer', 'label' => 'Packer from Dean Edwards (best compression / less Magento compatible)'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Language.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Language
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -35,15 +26,14 @@ class Diglin_UIOptimization_Model_Config_Source_Language
35
  {
36
  return array(
37
  array('value' => 'en','label'=>Mage::helper('uioptimization')->__("English")),
38
- array('value' => 'de','label'=>Mage::helper('uioptimization')->__("German")),
39
- array('value' => 'es','label'=>Mage::helper('uioptimization')->__("Spanish; Castilian")),
40
- array('value' => 'fr','label'=>Mage::helper('uioptimization')->__("French")),
41
- array('value' => 'it','label'=>Mage::helper('uioptimization')->__("Italian")),
42
- array('value' => 'ja','label'=>Mage::helper('uioptimization')->__("Japanese")),
43
- array('value' => 'ko','label'=>Mage::helper('uioptimization')->__("Korean")),
44
- array('value' => 'nl','label'=>Mage::helper('uioptimization')->__("Dutch; Flemish")),
45
- array('value' => 'zh-cn','label'=>Mage::helper('uioptimization')->__("Chinese (China)")),
46
  );
47
  }
48
-
49
  }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Language
19
  {
 
20
  /**
21
  * Options getter
22
  *
26
  {
27
  return array(
28
  array('value' => 'en','label'=>Mage::helper('uioptimization')->__("English")),
29
+ array('value' => 'de','label'=>Mage::helper('uioptimization')->__("German")),
30
+ array('value' => 'es','label'=>Mage::helper('uioptimization')->__("Spanish; Castilian")),
31
+ array('value' => 'fr','label'=>Mage::helper('uioptimization')->__("French")),
32
+ array('value' => 'it','label'=>Mage::helper('uioptimization')->__("Italian")),
33
+ array('value' => 'ja','label'=>Mage::helper('uioptimization')->__("Japanese")),
34
+ array('value' => 'ko','label'=>Mage::helper('uioptimization')->__("Korean")),
35
+ array('value' => 'nl','label'=>Mage::helper('uioptimization')->__("Dutch; Flemish")),
36
+ array('value' => 'zh-cn','label'=>Mage::helper('uioptimization')->__("Chinese (China)")),
37
  );
38
  }
 
39
  }
app/code/community/Diglin/UIOptimization/Model/Config/Source/Mergeselectors.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Mergeselectors
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Mergeselectors
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => '0', 'label' => 'Do not change anything'),
38
- array('value' => '1', 'label' => 'Only seperate selectors (split at ,)'),
39
- array('value' => '2', 'label' => 'Merge selectors with the same properties (fast)'),
40
  );
41
  }
42
-
43
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Mergeselectors
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => '0', 'label' => 'Do not change anything'),
29
+ array('value' => '1', 'label' => 'Only seperate selectors (split at ,)'),
30
+ array('value' => '2', 'label' => 'Merge selectors with the same properties (fast)'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Optishorthand.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Optishorthand
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,10 +25,9 @@ class Diglin_UIOptimization_Model_Config_Source_Optishorthand
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => '0', 'label' => 'None'),
38
- array('value' => '1', 'label' => 'Safe Optimize'),
39
- array('value' => '2', 'label' => 'All optimize'),
40
  );
41
  }
42
-
43
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Optishorthand
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => '0', 'label' => 'None'),
29
+ array('value' => '1', 'label' => 'Safe Optimize'),
30
+ array('value' => '2', 'label' => 'All optimize'),
31
  );
32
  }
33
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Profile.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Profile
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,18 +25,17 @@ class Diglin_UIOptimization_Model_Config_Source_Profile
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => 'none', 'label' => 'none profile'),
38
- array('value' => 'css1', 'label' => 'CSS level 1'),
39
- array('value' => 'css2', 'label' => 'CSS level 2'),
40
- array('value' => 'css21', 'label' => 'CSS level 2.1'),
41
- array('value' => 'css3', 'label' => 'CSS level 3'),
42
- array('value' => 'svg', 'label' => 'SVG'),
43
- array('value' => 'svgbasic', 'label' => 'SVG Basic'),
44
- array('value' => 'svgtiny', 'label' => 'SVG Tiny'),
45
- array('value' => 'mobile', 'label' => 'Mobile'),
46
- array('value' => 'atsc-tv', 'label' => 'ATSC TV'),
47
- array('value' => 'tv', 'label' => 'TV'),
48
  );
49
  }
50
-
51
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Profile
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'none', 'label' => 'none profile'),
29
+ array('value' => 'css1', 'label' => 'CSS level 1'),
30
+ array('value' => 'css2', 'label' => 'CSS level 2'),
31
+ array('value' => 'css21', 'label' => 'CSS level 2.1'),
32
+ array('value' => 'css3', 'label' => 'CSS level 3'),
33
+ array('value' => 'svg', 'label' => 'SVG'),
34
+ array('value' => 'svgbasic', 'label' => 'SVG Basic'),
35
+ array('value' => 'svgtiny', 'label' => 'SVG Tiny'),
36
+ array('value' => 'mobile', 'label' => 'Mobile'),
37
+ array('value' => 'atsc-tv', 'label' => 'ATSC TV'),
38
+ array('value' => 'tv', 'label' => 'TV'),
39
  );
40
  }
41
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Template.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Template
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,12 +25,11 @@ class Diglin_UIOptimization_Model_Config_Source_Template
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => 'default', 'label' => 'Standard (balance between readability and size)'),
38
- array('value' => 'high_compression', 'label' => 'High (moderate readability, smaller size)'),
39
- array('value' => 'highest_compression', 'label' => 'Highest (no readability, smallest size)'),
40
- array('value' => 'low_compression', 'label' => 'Low (higher readability)'),
41
- array('value' => 'custom', 'label' => 'Custom (feel the textarea below)'),
42
  );
43
  }
44
-
45
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Template
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'default', 'label' => 'Standard (balance between readability and size)'),
29
+ array('value' => 'high_compression', 'label' => 'High (moderate readability, smaller size)'),
30
+ array('value' => 'highest_compression', 'label' => 'Highest (no readability, smallest size)'),
31
+ array('value' => 'low_compression', 'label' => 'Low (higher readability)'),
32
+ array('value' => 'custom', 'label' => 'Custom (feel the textarea below)'),
33
  );
34
  }
35
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Usermedium.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Usermedium
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,18 +25,17 @@ class Diglin_UIOptimization_Model_Config_Source_Usermedium
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => 'all', 'label' => 'all'),
38
- array('value' => 'aural', 'label' => 'aural'),
39
- array('value' => 'braille', 'label' => 'braille'),
40
- array('value' => 'embossed', 'label' => 'embossed'),
41
- array('value' => 'handheld', 'label' => 'handheld'),
42
- array('value' => 'print', 'label' => 'print'),
43
- array('value' => 'projection', 'label' => 'projection'),
44
- array('value' => 'screen', 'label' => 'screen'),
45
- array('value' => 'tty', 'label' => 'tty'),
46
- array('value' => 'tv', 'label' => 'tv'),
47
- array('value' => 'presentation', 'label' => 'presentation'),
48
  );
49
  }
50
-
51
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Usermedium
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'all', 'label' => 'all'),
29
+ array('value' => 'aural', 'label' => 'aural'),
30
+ array('value' => 'braille', 'label' => 'braille'),
31
+ array('value' => 'embossed', 'label' => 'embossed'),
32
+ array('value' => 'handheld', 'label' => 'handheld'),
33
+ array('value' => 'print', 'label' => 'print'),
34
+ array('value' => 'projection', 'label' => 'projection'),
35
+ array('value' => 'screen', 'label' => 'screen'),
36
+ array('value' => 'tty', 'label' => 'tty'),
37
+ array('value' => 'tv', 'label' => 'tv'),
38
+ array('value' => 'presentation', 'label' => 'presentation'),
39
  );
40
  }
41
+ }
 
app/code/community/Diglin/UIOptimization/Model/Config/Source/Warning.php CHANGED
@@ -8,24 +8,15 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_UIOptimization_Model_Config_Source_Warning
27
  {
28
-
29
  /**
30
  * Options getter
31
  *
@@ -34,11 +25,10 @@ class Diglin_UIOptimization_Model_Config_Source_Warning
34
  public function toOptionArray()
35
  {
36
  return array(
37
- array('value' => 'no', 'label' => 'None messages'),
38
- array('value' => '0', 'label' => 'Most important warning messages'),
39
- array('value' => '1', 'label' => 'Normal report'),
40
- array('value' => '2', 'label' => 'All warning messages'),
41
  );
42
  }
43
-
44
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  class Diglin_UIOptimization_Model_Config_Source_Warning
19
  {
 
20
  /**
21
  * Options getter
22
  *
25
  public function toOptionArray()
26
  {
27
  return array(
28
+ array('value' => 'no', 'label' => 'None messages'),
29
+ array('value' => '0', 'label' => 'Most important warning messages'),
30
+ array('value' => '1', 'label' => 'Normal report'),
31
+ array('value' => '2', 'label' => 'All warning messages'),
32
  );
33
  }
34
+ }
 
app/code/community/Diglin/UIOptimization/Model/Observer.php CHANGED
@@ -8,33 +8,25 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Model_Observer {
27
-
28
  /**
29
  * Delete content of media/js and media/css folders to refresh with updated compressed/minified js/css content
30
  * If disabled, the updates are done each time an original file is updated. Can be resource overload on live website.
31
  *
32
  * @param Mage_Core_Model_Observer $observer
33
  */
34
- public function regenerateMediaFiles($observer){
35
-
36
- if( Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && (Mage::getStoreConfigFlag('uioptimization/csscompression/enabled') || Mage::getStoreConfigFlag('uioptimization/jscompression/enabled'))){
37
-
38
  // Clean up media/css and media/js folders and recreate the folders if necessary
39
  try {
40
  Mage::getModel('core/design_package')->cleanMergedJsCss();
@@ -43,31 +35,23 @@ class Diglin_UIOptimization_Model_Observer {
43
  Mage::logException($e);
44
  return;
45
  }
46
-
47
  $stores = Mage::app()->getStores();
48
-
49
- foreach($stores as $id => $v){
50
  $url = Zend_Uri_Http::fromString(Mage::app()->getStore($id)->getBaseUrl());
51
-
52
  // Recreate the js and css compressed file by using the normal process
53
- try{
54
  $curl = new Zend_Http_Client_Adapter_Curl();
55
-
56
  $curl->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
57
  $curl->setCurlOption(CURLOPT_SSL_VERIFYHOST, 1);
58
-
59
  $curl->connect($url->getHost(), $url->getPort(), Mage_Core_Model_Store::isCurrentlySecure());
60
  $curl->write(Zend_Http_Client::GET, $url);
61
-
62
  $curl->close();
63
-
64
  Mage::log('[Diglin_UIOptimization_Model_Observer] Update media js/css content for the different stores', ZEND_LOG::DEBUG);
65
-
66
- }catch(Exception $e){
67
  Mage::logException($e);
68
  return;
69
  }
70
  }
71
- }
72
  }
73
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Model_Observer
19
+ {
20
  /**
21
  * Delete content of media/js and media/css folders to refresh with updated compressed/minified js/css content
22
  * If disabled, the updates are done each time an original file is updated. Can be resource overload on live website.
23
  *
24
  * @param Mage_Core_Model_Observer $observer
25
  */
26
+ public function regenerateMediaFiles ($observer)
27
+ {
28
+ if (Mage::getStoreConfigFlag('uioptimization/general/cronupdate') &&
29
+ (Mage::getStoreConfigFlag('uioptimization/csscompression/enabled') || Mage::getStoreConfigFlag('uioptimization/jscompression/enabled'))) {
30
  // Clean up media/css and media/js folders and recreate the folders if necessary
31
  try {
32
  Mage::getModel('core/design_package')->cleanMergedJsCss();
35
  Mage::logException($e);
36
  return;
37
  }
 
38
  $stores = Mage::app()->getStores();
39
+ foreach ($stores as $id => $v) {
 
40
  $url = Zend_Uri_Http::fromString(Mage::app()->getStore($id)->getBaseUrl());
 
41
  // Recreate the js and css compressed file by using the normal process
42
+ try {
43
  $curl = new Zend_Http_Client_Adapter_Curl();
 
44
  $curl->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
45
  $curl->setCurlOption(CURLOPT_SSL_VERIFYHOST, 1);
 
46
  $curl->connect($url->getHost(), $url->getPort(), Mage_Core_Model_Store::isCurrentlySecure());
47
  $curl->write(Zend_Http_Client::GET, $url);
 
48
  $curl->close();
 
49
  Mage::log('[Diglin_UIOptimization_Model_Observer] Update media js/css content for the different stores', ZEND_LOG::DEBUG);
50
+ } catch (Exception $e) {
 
51
  Mage::logException($e);
52
  return;
53
  }
54
  }
55
+ }
56
  }
57
+ }
app/code/community/Diglin/UIOptimization/Model/Overwrite/Design/Package.php CHANGED
@@ -8,40 +8,32 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
  *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- class Diglin_UIOptimization_Model_Overwrite_Design_Package extends Mage_Core_Model_Design_Package{
27
-
28
  /**
29
  * Merge specified css files and return URL to the merged file on success
30
  *
31
  * @param $files
32
  * @return string
33
  */
34
- public function getMergedCssUrl($files)
35
- {
36
- $suffixFilename = (Mage::app()->getStore()->isCurrentlySecure())?'-ssl':'';
37
- $targetFilename = md5(implode(',', $files)) . $suffixFilename .'.css';
38
  $targetDir = $this->_initMergerDir('css');
39
- if (!$targetDir) {
40
  return '';
41
  }
42
  if (Mage::helper('core')->mergeFiles($files, $targetDir . DS . $targetFilename, false, array($this, 'beforeMergeCss'), 'css')) {
43
  return Mage::getBaseUrl('media') . 'css/' . $targetFilename;
44
  }
45
  return '';
46
- }
47
- }
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
 
 
 
11
  *
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+ class Diglin_UIOptimization_Model_Overwrite_Design_Package extends Mage_Core_Model_Design_Package
19
+ {
20
  /**
21
  * Merge specified css files and return URL to the merged file on success
22
  *
23
  * @param $files
24
  * @return string
25
  */
26
+ public function getMergedCssUrl ($files)
27
+ {
28
+ $suffixFilename = (Mage::app()->getStore()->isCurrentlySecure()) ? '-ssl' : '';
29
+ $targetFilename = md5(implode(',', $files)) . $suffixFilename . '.css';
30
  $targetDir = $this->_initMergerDir('css');
31
+ if (! $targetDir) {
32
  return '';
33
  }
34
  if (Mage::helper('core')->mergeFiles($files, $targetDir . DS . $targetFilename, false, array($this, 'beforeMergeCss'), 'css')) {
35
  return Mage::getBaseUrl('media') . 'css/' . $targetFilename;
36
  }
37
  return '';
38
+ }
39
+ }
app/code/community/Diglin/UIOptimization/etc/adminhtml.xml CHANGED
@@ -1,25 +1,25 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
- <acl>
4
- <resources>
5
- <all>
6
- <title>Allow Everything</title>
7
- </all>
8
- <admin>
9
- <children>
10
- <system>
11
- <children>
12
- <config>
13
- <children>
14
- <uioptimization translate="title">
15
- <title>UI Optimization Section</title>
16
- </uioptimization>
17
- </children>
18
- </config>
19
- </children>
20
- </system>
21
- </children>
22
- </admin>
23
- </resources>
24
- </acl>
25
  </config>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
+ <acl>
4
+ <resources>
5
+ <all>
6
+ <title>Allow Everything</title>
7
+ </all>
8
+ <admin>
9
+ <children>
10
+ <system>
11
+ <children>
12
+ <config>
13
+ <children>
14
+ <uioptimization translate="title">
15
+ <title>UI Optimization Section</title>
16
+ </uioptimization>
17
+ </children>
18
+ </config>
19
+ </children>
20
+ </system>
21
+ </children>
22
+ </admin>
23
+ </resources>
24
+ </acl>
25
  </config>
app/code/community/Diglin/UIOptimization/etc/config.xml CHANGED
@@ -1,100 +1,103 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
- <modules>
4
- <Diglin_UIOptimization>
5
- <version>1.0.0</version>
6
- </Diglin_UIOptimization>
7
- </modules>
8
 
9
- <default>
10
- <uioptimization>
11
- <general>
12
- <cron_schedule>0 2 * * 0</cron_schedule>
13
- </general>
14
- <w3chtmlvalidator>
15
- <enabled>0</enabled>
16
- <charset></charset>
17
- <fbc>1</fbc>
18
- <doctype></doctype>
19
- <fbd>1</fbd>
20
- <validator_uri>http://validator.w3.org/check</validator_uri>
21
- </w3chtmlvalidator>
22
- <w3ccssvalidator>
23
- <enabled>0</enabled>
24
- <lang>en</lang>
25
- <profile>css21</profile>
26
- <warning>1</warning>
27
- <usermedium>all</usermedium>
28
- </w3ccssvalidator>
29
- <csscompression>
30
- <enabled>0</enabled>
31
- <type>csstidy</type>
32
- <template>highest_compression</template>
33
- <remove_last_semicolon>1</remove_last_semicolon>
34
- <remove_bslash>1</remove_bslash>
35
- <compress_colors>1</compress_colors>
36
- <compress_font_weight>1</compress_font_weight>
37
- <lowercase_s>0</lowercase_s>
38
- <optimise_shorthands>1</optimise_shorthands>
39
- <case_properties>1</case_properties>
40
- <sort_properties>0</sort_properties>
41
- <sort_selectors>0</sort_selectors>
42
- <merge_selectors>2</merge_selectors>
43
- <discard_invalid_properties>0</discard_invalid_properties>
44
- <css_level>CSS2.1</css_level>
45
- <preserve_css>0</preserve_css>
46
- <timestamp>1</timestamp>
47
- </csscompression>
48
- <jscompression>
49
- <enabled>0</enabled>
50
- <type>jsmin</type>
51
- <preserve_semic>1</preserve_semic>
52
- </jscompression>
53
- <seo>
54
  <enabled>0</enabled>
55
- <trailingslash>1</trailingslash>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  </seo>
57
- </uioptimization>
58
- </default>
59
-
60
- <global>
61
- <blocks>
62
- <uioptimization>
63
- <class>Diglin_UIOptimization_Block</class>
64
- </uioptimization>
65
- <page>
66
- <rewrite>
67
- <html_head>Diglin_UIOptimization_Block_Optimize_Head</html_head>
68
- </rewrite>
69
- </page>
70
- </blocks>
71
- <models>
72
- <uioptimization>
73
- <class>Diglin_UIOptimization_Model</class>
74
- </uioptimization>
75
- <core>
76
- <rewrite>
77
- <design_package>Diglin_UIOptimization_Model_Overwrite_Design_Package</design_package>
78
- </rewrite>
79
- </core>
80
- </models>
81
- <helpers>
82
- <uioptimization>
83
- <class>Diglin_UIOptimization_Helper</class>
84
- </uioptimization>
85
- </helpers>
86
- </global>
87
 
88
- <frontend>
89
- <layout>
90
- <updates>
91
- <uioptimization module="Diglin_UIOptimization">
92
- <file>uioptimization.xml</file>
93
- </uioptimization>
94
- </updates>
95
- </layout>
96
- </frontend>
97
-
98
  <crontab>
99
  <jobs>
100
  <uioptimization_media_regeneration_all><!-- Every Sunday at 2:00 AM -->
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
+ <modules>
4
+ <Diglin_UIOptimization>
5
+ <version>1.3.0</version>
6
+ </Diglin_UIOptimization>
7
+ </modules>
8
 
9
+ <default>
10
+ <uioptimization>
11
+ <general>
12
+ <cron_schedule>0 2 * * 0</cron_schedule>
13
+ </general>
14
+ <w3chtmlvalidator>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  <enabled>0</enabled>
16
+ <charset></charset>
17
+ <fbc>1</fbc>
18
+ <doctype></doctype>
19
+ <fbd>1</fbd>
20
+ <validator_uri>http://validator.w3.org/check</validator_uri>
21
+ </w3chtmlvalidator>
22
+ <w3ccssvalidator>
23
+ <enabled>0</enabled>
24
+ <lang>en</lang>
25
+ <profile>css21</profile>
26
+ <warning>1</warning>
27
+ <usermedium>all</usermedium>
28
+ </w3ccssvalidator>
29
+ <csscompression>
30
+ <enabled>0</enabled>
31
+ <type>csstidy</type>
32
+ <template>highest_compression</template>
33
+ <remove_last_semicolon>1</remove_last_semicolon>
34
+ <remove_bslash>1</remove_bslash>
35
+ <compress_colors>1</compress_colors>
36
+ <compress_font_weight>1</compress_font_weight>
37
+ <lowercase_s>0</lowercase_s>
38
+ <optimise_shorthands>1</optimise_shorthands>
39
+ <case_properties>1</case_properties>
40
+ <sort_properties>0</sort_properties>
41
+ <sort_selectors>0</sort_selectors>
42
+ <merge_selectors>2</merge_selectors>
43
+ <discard_invalid_properties>0</discard_invalid_properties>
44
+ <css_level>CSS2.1</css_level>
45
+ <preserve_css>0</preserve_css>
46
+ <timestamp>1</timestamp>
47
+ </csscompression>
48
+ <jscompression>
49
+ <enabled>0</enabled>
50
+ <type>jsmin</type>
51
+ <preserve_semic>1</preserve_semic>
52
+ </jscompression>
53
+ <seo>
54
+ <enabled>0</enabled>
55
+ <trailingslash>1</trailingslash>
56
+ <products>1</products>
57
+ <search>1</search>
58
+ <cmshome>1</cmshome>
59
  </seo>
60
+ </uioptimization>
61
+ </default>
62
+
63
+ <global>
64
+ <blocks>
65
+ <uioptimization>
66
+ <class>Diglin_UIOptimization_Block</class>
67
+ </uioptimization>
68
+ <page>
69
+ <rewrite>
70
+ <html_head>Diglin_UIOptimization_Block_Optimize_Head</html_head>
71
+ </rewrite>
72
+ </page>
73
+ </blocks>
74
+ <models>
75
+ <uioptimization>
76
+ <class>Diglin_UIOptimization_Model</class>
77
+ </uioptimization>
78
+ <core>
79
+ <rewrite>
80
+ <design_package>Diglin_UIOptimization_Model_Overwrite_Design_Package</design_package>
81
+ </rewrite>
82
+ </core>
83
+ </models>
84
+ <helpers>
85
+ <uioptimization>
86
+ <class>Diglin_UIOptimization_Helper</class>
87
+ </uioptimization>
88
+ </helpers>
89
+ </global>
90
 
91
+ <frontend>
92
+ <layout>
93
+ <updates>
94
+ <uioptimization module="Diglin_UIOptimization">
95
+ <file>uioptimization.xml</file>
96
+ </uioptimization>
97
+ </updates>
98
+ </layout>
99
+ </frontend>
100
+
101
  <crontab>
102
  <jobs>
103
  <uioptimization_media_regeneration_all><!-- Every Sunday at 2:00 AM -->
app/code/community/Diglin/UIOptimization/etc/system.xml CHANGED
@@ -1,22 +1,22 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
- <tabs>
4
- <diglin>
5
- <label>Diglin</label>
6
- <sort_order>400</sort_order>
7
- </diglin>
8
- </tabs>
9
-
10
- <sections>
11
- <uioptimization>
12
- <label>UI Optimization</label>
13
- <tab>diglin</tab>
14
- <frontend_type>text</frontend_type>
15
- <sort_order>120</sort_order>
16
- <show_in_default>1</show_in_default>
17
- <show_in_website>1</show_in_website>
18
- <show_in_store>1</show_in_store>
19
- <groups>
20
  <hint>
21
  <frontend_model>uioptimization/adminhtml_config_source_hint</frontend_model>
22
  <sort_order>0</sort_order>
@@ -24,496 +24,523 @@
24
  <show_in_website>1</show_in_website>
25
  <show_in_store>1</show_in_store>
26
  </hint>
27
- <general>
28
- <label>General configuration</label>
29
- <frontend_type>text</frontend_type>
30
- <sort_order>1</sort_order>
31
- <show_in_default>1</show_in_default>
32
- <show_in_website>1</show_in_website>
33
- <show_in_store>1</show_in_store>
34
- <comment><![CDATA[Each compressed css/js files are updated each time their original files are updated. But if you want to save some resources (e.g. if you make lots of updates), you can force the regeneration of the compressed/minified js/css files periodically by enabling the option below. It will update the files each sunday at 2:00 by default. Cron works only if you have correctly configured the general cron of your Magento installation, see the <a href="#" onclick="javascript:window.open('http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job')" >wiki of Magento</a> to know how to do it.<br/>
35
- By activating it, it will deactivate the auto-update from the original files.]]></comment>
36
- <fields>
37
- <cronupdate>
38
- <label>Update periodically the JS/CSS compressed files</label>
39
- <frontend_type>select</frontend_type>
40
- <source_model>adminhtml/system_config_source_yesno</source_model>
41
- <sort_order>10</sort_order>
42
- <show_in_default>1</show_in_default>
43
- <show_in_website>1</show_in_website>
44
- <show_in_store>1</show_in_store>
45
- </cronupdate>
46
- <cron_schedule>
47
- <label>Cron Schedule</label>
48
- <frontend_type>text</frontend_type>
49
- <sort_order>20</sort_order>
50
- <show_in_default>1</show_in_default>
51
- <show_in_website>1</show_in_website>
52
- <show_in_store>1</show_in_store>
53
- <comment><![CDATA[Provide here the schedule wished. It must respect the cron format e.g. 0 1 * * * for each day at 1:00.]]></comment>
54
- </cron_schedule>
55
- </fields>
56
- </general>
57
- <seo>
58
- <label>Search Engines Optimization</label>
59
- <frontend_type>text</frontend_type>
60
- <sort_order>5</sort_order>
61
- <show_in_default>1</show_in_default>
62
- <show_in_website>1</show_in_website>
63
- <show_in_store>1</show_in_store>
64
- <fields>
65
- <enabled>
66
- <label>Enable Canonical URL (beta)</label>
67
- <frontend_type>select</frontend_type>
68
- <source_model>adminhtml/system_config_source_yesno</source_model>
69
- <sort_order>10</sort_order>
70
- <show_in_default>1</show_in_default>
71
- <show_in_website>1</show_in_website>
72
- <show_in_store>1</show_in_store>
73
- </enabled>
74
- <trailingslash>
75
- <label>Force trailing slash to canonical URL's</label>
76
- <frontend_type>select</frontend_type>
77
- <source_model>adminhtml/system_config_source_yesno</source_model>
78
- <sort_order>20</sort_order>
79
- <show_in_default>1</show_in_default>
80
- <show_in_website>1</show_in_website>
81
- <show_in_store>1</show_in_store>
82
- </trailingslash>
83
- </fields>
84
- </seo>
85
- <csscompression>
86
- <label>CSS Compression / Optimization</label>
87
- <frontend_type>text</frontend_type>
88
- <sort_order>10</sort_order>
89
- <show_in_default>1</show_in_default>
90
- <show_in_website>1</show_in_website>
91
- <show_in_store>1</show_in_store>
92
- <comment><![CDATA[This feature allows you to: <ul><li>- compress each CSS file of your frontend layout (if the includes are done through the method addCss or addItem into the layout xml files)</li><li>- save each compressed CSS and Secured CSS files into a different folder (/media/css and /media/css_secure).</li><li>- conserve the originals</li><li>- define how do you prefer to compress your CSS files (see options below and <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website), default values should be good for most of situtation</li><li>- clean existing compressed files manually, you just need to click on the button "Flush JavaScript/CSS Cache" at the top of this configuration page</li><li>- compatible with the existing Merge CSS files feature of Magento (fix SSL & relative path bugs from Magento)</li></ul>
93
- <br/><strong>IMPORTANT:</strong> the compression is done only once or each time that your originals are modified. It means if you change the configuration here, you have to flush manually the compressed CSS files. It take resources and time to regenerate the compressed files, I advise you to regenerate them when your website activity is low or by activating the General Configuration Cron update of this module.<br/><br/>
94
- For addtional improvements, you should activate gzip compression on server-side.]]></comment>
95
- <fields>
96
- <enabled>
97
- <label>Enabled</label>
98
- <frontend_type>select</frontend_type>
99
- <source_model>adminhtml/system_config_source_yesno</source_model>
100
- <sort_order>10</sort_order>
101
- <show_in_default>1</show_in_default>
102
- <show_in_website>1</show_in_website>
103
- <show_in_store>1</show_in_store>
104
- <comment><![CDATA[If deactivated, the CSS files taken will be the original one, otherwise your compressed css files.]]></comment>
105
- </enabled>
106
- <type>
107
- <label>CSS Minify Type</label>
108
- <frontend_type>select</frontend_type>
109
- <source_model>uioptimization/config_source_csstypeminify</source_model>
110
- <sort_order>11</sort_order>
111
- <show_in_default>1</show_in_default>
112
- <show_in_website>1</show_in_website>
113
- <show_in_store>1</show_in_store>
114
- <comment><![CDATA[]]></comment>
115
- </type>
116
- <yui_config>
117
- <label>YUI Compressor Minify Config Options</label>
118
- <sort_order>12</sort_order>
119
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
120
- <show_in_default>1</show_in_default>
121
- <show_in_website>1</show_in_website>
122
- <show_in_store>1</show_in_store>
123
- </yui_config>
124
- <java_path>
125
- <label>Java Path</label>
126
- <frontend_type>text</frontend_type>
127
- <sort_order>13</sort_order>
128
- <show_in_default>1</show_in_default>
129
- <show_in_website>1</show_in_website>
130
- <show_in_store>1</show_in_store>
131
- <comment><![CDATA[If empty, the default java path of your server environnement will be used (if defined!). Java version >= 1.4 required.]]></comment>
132
- </java_path>
133
- <googlemin_config>
134
- <label>Google Minify Config Options</label>
135
- <sort_order>20</sort_order>
136
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
137
- <show_in_default>1</show_in_default>
138
- <show_in_website>1</show_in_website>
139
- <show_in_store>1</show_in_store>
140
- </googlemin_config>
141
- <preserve_comments>
142
- <label>Preserve Comments</label>
143
- <frontend_type>select</frontend_type>
144
- <source_model>adminhtml/system_config_source_yesno</source_model>
145
- <sort_order>21</sort_order>
146
- <show_in_default>1</show_in_default>
147
- <show_in_website>1</show_in_website>
148
- <show_in_store>1</show_in_store>
149
- </preserve_comments>
150
- <csstidy_config>
151
- <label>CSS Tidy Config Options</label>
152
- <sort_order>30</sort_order>
153
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
154
- <show_in_default>1</show_in_default>
155
- <show_in_website>1</show_in_website>
156
- <show_in_store>1</show_in_store>
157
- </csstidy_config>
158
- <template>
159
- <label>Template</label>
160
- <frontend_type>select</frontend_type>
161
- <source_model>uioptimization/config_source_template</source_model>
162
- <sort_order>40</sort_order>
163
- <show_in_default>1</show_in_default>
164
- <show_in_website>1</show_in_website>
165
- <show_in_store>1</show_in_store>
166
- <comment><![CDATA[See the <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website for more information about templates.]]></comment>
167
- </template>
168
- <custom_template>
169
- <label>Custom template</label>
170
- <frontend_type>textarea</frontend_type>
171
- <sort_order>50</sort_order>
172
- <show_in_default>1</show_in_default>
173
- <show_in_website>1</show_in_website>
174
- <show_in_store>1</show_in_store>
175
- <comment><![CDATA[See the <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website for more information about templates.]]></comment>
176
- </custom_template>
177
- <remove_last_semicolon>
178
- <label>Remove last Semi-Colon</label>
179
- <frontend_type>select</frontend_type>
180
- <source_model>adminhtml/system_config_source_yesno</source_model>
181
- <sort_order>60</sort_order>
182
- <show_in_default>1</show_in_default>
183
- <show_in_website>1</show_in_website>
184
- <show_in_store>1</show_in_store>
185
- </remove_last_semicolon>
186
- <remove_bslash>
187
- <label>Remove unnecessary backslashes</label>
188
- <frontend_type>select</frontend_type>
189
- <source_model>adminhtml/system_config_source_yesno</source_model>
190
- <sort_order>70</sort_order>
191
- <show_in_default>1</show_in_default>
192
- <show_in_website>1</show_in_website>
193
- <show_in_store>1</show_in_store>
194
- </remove_bslash>
195
- <compress_colors>
196
- <label>Compress colors</label>
197
- <frontend_type>select</frontend_type>
198
- <source_model>adminhtml/system_config_source_yesno</source_model>
199
- <sort_order>80</sort_order>
200
- <show_in_default>1</show_in_default>
201
- <show_in_website>1</show_in_website>
202
- <show_in_store>1</show_in_store>
203
- </compress_colors>
204
- <compress_font>
205
- <label>Compress Font Weight</label>
206
- <frontend_type>select</frontend_type>
207
- <source_model>adminhtml/system_config_source_yesno</source_model>
208
- <sort_order>90</sort_order>
209
- <show_in_default>1</show_in_default>
210
- <show_in_website>1</show_in_website>
211
- <show_in_store>1</show_in_store>
212
- </compress_font>
213
- <lowercase_s>
214
- <label>Lowercase selectors</label>
215
- <frontend_type>select</frontend_type>
216
- <source_model>adminhtml/system_config_source_yesno</source_model>
217
- <sort_order>100</sort_order>
218
- <show_in_default>1</show_in_default>
219
- <show_in_website>1</show_in_website>
220
- <show_in_store>1</show_in_store>
221
- </lowercase_s>
222
- <optimise_shorthands>
223
- <label>Optimise Shorthand</label>
224
- <frontend_type>select</frontend_type>
225
- <source_model>uioptimization/config_source_optishorthand</source_model>
226
- <sort_order>110</sort_order>
227
- <show_in_default>1</show_in_default>
228
- <show_in_website>1</show_in_website>
229
- <show_in_store>1</show_in_store>
230
- </optimise_shorthands>
231
- <case_properties>
232
- <label>Case for properties</label>
233
- <frontend_type>select</frontend_type>
234
- <source_model>uioptimization/config_source_caseproperties</source_model>
235
- <sort_order>120</sort_order>
236
- <show_in_default>1</show_in_default>
237
- <show_in_website>1</show_in_website>
238
- <show_in_store>1</show_in_store>
239
- </case_properties>
240
- <sort_properties>
241
- <label>Sort properties</label>
242
- <frontend_type>select</frontend_type>
243
- <source_model>adminhtml/system_config_source_yesno</source_model>
244
- <sort_order>130</sort_order>
245
- <show_in_default>1</show_in_default>
246
- <show_in_website>1</show_in_website>
247
- <show_in_store>1</show_in_store>
248
- </sort_properties>
249
- <sort_selectors>
250
- <label>Sort selectors</label>
251
- <frontend_type>select</frontend_type>
252
- <source_model>adminhtml/system_config_source_yesno</source_model>
253
- <sort_order>140</sort_order>
254
- <show_in_default>1</show_in_default>
255
- <show_in_website>1</show_in_website>
256
- <show_in_store>1</show_in_store>
257
- <comment>No advised to enable in Magento!</comment>
258
- </sort_selectors>
259
- <merge_selectors>
260
- <label>Merge selectors</label>
261
- <frontend_type>select</frontend_type>
262
- <source_model>uioptimization/config_source_mergeselectors</source_model>
263
- <sort_order>150</sort_order>
264
- <show_in_default>1</show_in_default>
265
- <show_in_website>1</show_in_website>
266
- <show_in_store>1</show_in_store>
267
- </merge_selectors>
268
- <discard_invalid_properties>
269
- <label>Discard invalid properties</label>
270
- <frontend_type>select</frontend_type>
271
- <source_model>adminhtml/system_config_source_yesno</source_model>
272
- <sort_order>160</sort_order>
273
- <show_in_default>1</show_in_default>
274
- <show_in_website>1</show_in_website>
275
- <show_in_store>1</show_in_store>
276
- </discard_invalid_properties>
277
- <css_level>
278
- <label>Css Level (with discard invalid properties)</label>
279
- <frontend_type>select</frontend_type>
280
- <source_model>uioptimization/config_source_csslevel</source_model>
281
- <sort_order>170</sort_order>
282
- <show_in_default>1</show_in_default>
283
- <show_in_website>1</show_in_website>
284
- <show_in_store>1</show_in_store>
285
- </css_level>
286
- <preserve_css>
287
- <label>Preserve CSS</label>
288
- <frontend_type>select</frontend_type>
289
- <source_model>adminhtml/system_config_source_yesno</source_model>
290
- <sort_order>180</sort_order>
291
- <show_in_default>1</show_in_default>
292
- <show_in_website>1</show_in_website>
293
- <show_in_store>1</show_in_store>
294
- </preserve_css>
295
- <timestamp>
296
- <label>Add a timestamp to the file</label>
297
- <frontend_type>select</frontend_type>
298
- <source_model>adminhtml/system_config_source_yesno</source_model>
299
- <sort_order>190</sort_order>
300
- <show_in_default>1</show_in_default>
301
- <show_in_website>1</show_in_website>
302
- <show_in_store>1</show_in_store>
303
- </timestamp>
304
- </fields>
305
- </csscompression>
306
- <jscompression>
307
- <label>Javascript Compression / Optimization</label>
308
- <frontend_type>text</frontend_type>
309
- <sort_order>20</sort_order>
310
- <show_in_default>1</show_in_default>
311
- <show_in_website>1</show_in_website>
312
- <show_in_store>1</show_in_store>
313
- <comment><![CDATA[- JSMin and YUICompressor are the best Minify libraries suited by Magento.<br/>- Obfuscation may be resource overload on client side.<br/>- You can clean existing compressed files manually, you just need to click on the button "Flush JavaScript/CSS Cache" at the top of this configuration page<br/><br/>
314
- <strong>IMPORTANT:</strong> the compression is done only once or each time that your originals are modified. It means if you change the configuration here, you have to flush manually the compressed JS files.<br/>
315
- It take resources and time to regenerate the compressed files, I advise you to regenerate them when your website activity is low or by activating the General Configuration of this module.]]></comment>
316
- <fields>
317
- <enabled>
318
- <label>Enabled</label>
319
- <frontend_type>select</frontend_type>
320
- <source_model>adminhtml/system_config_source_yesno</source_model>
321
- <sort_order>10</sort_order>
322
- <show_in_default>1</show_in_default>
323
- <show_in_website>1</show_in_website>
324
- <show_in_store>1</show_in_store>
325
- <comment><![CDATA[If deactivated, Javascript CSS files taken will be the original one, otherwise your compressed javascript files.]]></comment>
326
- </enabled>
327
- <type>
328
- <label>JS Minify Type</label>
329
- <frontend_type>select</frontend_type>
330
- <source_model>uioptimization/config_source_jstypeminify</source_model>
331
- <sort_order>20</sort_order>
332
- <show_in_default>1</show_in_default>
333
- <show_in_website>1</show_in_website>
334
- <show_in_store>1</show_in_store>
335
- <comment><![CDATA[Click on the link name to get more information about <a href="#" onclick="javascript:window.open('http://crockford.com/javascript/jsmin')">JSMin</a>, <a href="#" onclick="javascript:window.open('http://developer.yahoo.com/yui/compressor/')">YUICompressor</a>]]></comment>
336
- </type>
337
- <yui_config>
338
- <label>YUI Compressor Options</label>
339
- <sort_order>30</sort_order>
340
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
341
- <show_in_default>1</show_in_default>
342
- <show_in_website>1</show_in_website>
343
- <show_in_store>1</show_in_store>
344
- </yui_config>
345
- <java_path>
346
- <label>Java Path</label>
347
- <frontend_type>text</frontend_type>
348
- <sort_order>31</sort_order>
349
- <show_in_default>1</show_in_default>
350
- <show_in_website>1</show_in_website>
351
- <show_in_store>1</show_in_store>
352
- <comment><![CDATA[If empty, the default java path of your server environnement will be used (if defined!). Java version >= 1.4 required.]]></comment>
353
- </java_path>
354
- <minify_only>
355
- <label>Minify only</label>
356
- <frontend_type>select</frontend_type>
357
- <source_model>adminhtml/system_config_source_yesno</source_model>
358
- <sort_order>32</sort_order>
359
- <show_in_default>1</show_in_default>
360
- <show_in_website>1</show_in_website>
361
- <show_in_store>1</show_in_store>
362
- <comment><![CDATA[Minify only, don't offuscate.]]></comment>
363
- </minify_only>
364
- <preserve_semic>
365
- <label>Preserve Semi Colon</label>
366
- <frontend_type>select</frontend_type>
367
- <source_model>adminhtml/system_config_source_yesno</source_model>
368
- <sort_order>33</sort_order>
369
- <show_in_default>1</show_in_default>
370
- <show_in_website>1</show_in_website>
371
- <show_in_store>1</show_in_store>
372
- <comment><![CDATA[Preserve all semicolons. May be important to keep compatibiliy with some JS Framework.]]></comment>
373
- </preserve_semic>
374
- <disable_alloptimisation>
375
- <label>Disable all micro optimizations</label>
376
- <frontend_type>select</frontend_type>
377
- <source_model>adminhtml/system_config_source_yesno</source_model>
378
- <sort_order>34</sort_order>
379
- <show_in_default>1</show_in_default>
380
- <show_in_website>1</show_in_website>
381
- <show_in_store>1</show_in_store>
382
- </disable_alloptimisation>
383
- </fields>
384
- </jscompression>
385
- <w3chtmlvalidator>
386
- <label>W3C HTML Validator Configuration</label>
387
- <frontend_type>text</frontend_type>
388
- <sort_order>30</sort_order>
389
- <show_in_default>1</show_in_default>
390
- <show_in_website>1</show_in_website>
391
- <show_in_store>1</show_in_store>
392
- <comment><![CDATA[For most of the values of this configuration, you can find information by visiting the <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">W3C page</a> to understand the meaning.<br/>
393
- Please, be aware that this service won't work if you use it on a website not accessible by the Validator. You should install a <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">local</a> one if you need to use it locally. <a href="#" onclick="javascript:window.open('http://habilis.net/validator-sac/')">Validator S.A.C.</a> for Os X 10.4 to 10.6 can help you easily to install a local one.<br/>
394
- it may display slowly your pages. Deactivate it when you don't need it.]]></comment>
395
- <fields>
396
- <enabled>
397
- <label>Enabled</label>
398
- <frontend_type>select</frontend_type>
399
- <source_model>adminhtml/system_config_source_yesno</source_model>
400
- <sort_order>10</sort_order>
401
- <show_in_default>1</show_in_default>
402
- <show_in_website>1</show_in_website>
403
- <show_in_store>1</show_in_store>
404
- <comment><![CDATA[Enable if "Yes" and if your IP is allowed (See Configuration > Avanced > Developer) ]]></comment>
405
- </enabled>
406
- <validator_uri>
407
- <label>Validator URI</label>
408
- <frontend_type>text</frontend_type>
409
- <sort_order>20</sort_order>
410
- <show_in_default>1</show_in_default>
411
- <show_in_website>1</show_in_website>
412
- <show_in_store>1</show_in_store>
413
- <comment><![CDATA[By default it use the W3C one. But it's better to install yours in a private server, it's faster and you won't be blocked by the W3C after few validation. See the <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">API doc</a>]]></comment>
414
- </validator_uri>
415
- <charset>
416
- <label>Charset encoding override</label>
417
- <frontend_type>select</frontend_type>
418
- <source_model>uioptimization/config_source_charset</source_model>
419
- <sort_order>30</sort_order>
420
- <show_in_default>1</show_in_default>
421
- <show_in_website>1</show_in_website>
422
- <show_in_store>1</show_in_store>
423
- <comment><![CDATA[By default the validator detects the charset of the document automatically.]]></comment>
424
- </charset>
425
- <fbc>
426
- <label>Fallback Charset</label>
427
- <frontend_type>select</frontend_type>
428
- <source_model>adminhtml/system_config_source_yesno</source_model>
429
- <sort_order>40</sort_order>
430
- <show_in_default>1</show_in_default>
431
- <show_in_website>1</show_in_website>
432
- <show_in_store>1</show_in_store>
433
- <comment><![CDATA[By default, it's true. It means if it's set to "Yes", the value of your configuration charset will be used as fallback in case of the charset can't be determined by the validator.]]></comment>
434
- </fbc>
435
- <doctype>
436
- <label>Document Type override</label>
437
- <frontend_type>select</frontend_type>
438
- <source_model>uioptimization/config_source_doctype</source_model>
439
- <sort_order>50</sort_order>
440
- <show_in_default>1</show_in_default>
441
- <show_in_website>1</show_in_website>
442
- <show_in_store>1</show_in_store>
443
- <comment><![CDATA[By default the validator detects the document type of the document automatically ]]></comment>
444
- </doctype>
445
- <fbd>
446
- <label>Fallback Doctype</label>
447
- <frontend_type>select</frontend_type>
448
- <source_model>adminhtml/system_config_source_yesno</source_model>
449
- <sort_order>60</sort_order>
450
- <show_in_default>1</show_in_default>
451
- <show_in_website>1</show_in_website>
452
- <show_in_store>1</show_in_store>
453
- <comment><![CDATA[By default, it's true. It means if it's set to "Yes", the value of your configuration doctype will be used as fallback in case of the doctype can't be determined by the validator.]]></comment>
454
- </fbd>
455
- </fields>
456
- </w3chtmlvalidator>
457
- <w3ccssvalidator>
458
- <label>W3C CSS Validator Configuration</label>
459
- <frontend_type>text</frontend_type>
460
- <sort_order>40</sort_order>
461
- <show_in_default>1</show_in_default>
462
- <show_in_website>1</show_in_website>
463
- <show_in_store>1</show_in_store>
464
- <comment><![CDATA[For most of the values of this configuration, you can find information by visiting the <a href="#" onclick="javascript:window.open('http://jigsaw.w3.org/css-validator/manual.html#api')">W3C CSS API page</a> to understand the meaning.<br/>
465
- <strong>Please, be aware</strong> that this service won't work if you use it on a website not accessible by the Validator. Sadly, currently, no local validator exists.<br/>
466
- it may display slowly your pages. Deactivate it when you don't need it.]]></comment>
467
- <fields>
468
- <enabled>
469
- <label>Enabled</label>
470
- <frontend_type>select</frontend_type>
471
- <source_model>adminhtml/system_config_source_yesno</source_model>
472
- <sort_order>10</sort_order>
473
- <show_in_default>1</show_in_default>
474
- <show_in_website>1</show_in_website>
475
- <show_in_store>1</show_in_store>
476
- <comment><![CDATA[Enable if "Yes" and if your IP is allowed (See Configuration > Avanced > Developer) ]]></comment>
477
- </enabled>
478
- <lang>
479
- <label>Lang of the results</label>
480
- <frontend_type>select</frontend_type>
481
- <source_model>uioptimization/config_source_language</source_model>
482
- <sort_order>20</sort_order>
483
- <show_in_default>1</show_in_default>
484
- <show_in_website>1</show_in_website>
485
- <show_in_store>1</show_in_store>
486
- </lang>
487
- <profile>
488
- <label>Profile to use for the validation</label>
489
- <frontend_type>select</frontend_type>
490
- <source_model>uioptimization/config_source_profile</source_model>
491
- <sort_order>30</sort_order>
492
- <show_in_default>1</show_in_default>
493
- <show_in_website>1</show_in_website>
494
- <show_in_store>1</show_in_store>
495
- </profile>
496
- <warning>
497
- <label>Warning level</label>
498
- <frontend_type>select</frontend_type>
499
- <source_model>uioptimization/config_source_warning</source_model>
500
- <sort_order>40</sort_order>
501
- <show_in_default>1</show_in_default>
502
- <show_in_website>1</show_in_website>
503
- <show_in_store>1</show_in_store>
504
- </warning>
505
- <usermedium>
506
- <label>User Medium</label>
507
- <frontend_type>select</frontend_type>
508
- <source_model>uioptimization/config_source_usermedium</source_model>
509
- <sort_order>50</sort_order>
510
- <show_in_default>1</show_in_default>
511
- <show_in_website>1</show_in_website>
512
- <show_in_store>1</show_in_store>
513
- </usermedium>
514
- </fields>
515
- </w3ccssvalidator>
516
- </groups>
517
- </uioptimization>
518
- </sections>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
519
  </config>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
+ <tabs>
4
+ <diglin>
5
+ <label>Diglin</label>
6
+ <sort_order>400</sort_order>
7
+ </diglin>
8
+ </tabs>
9
+
10
+ <sections>
11
+ <uioptimization translate="label" module="uioptimization">
12
+ <label>UI Optimization</label>
13
+ <tab>diglin</tab>
14
+ <frontend_type>text</frontend_type>
15
+ <sort_order>120</sort_order>
16
+ <show_in_default>1</show_in_default>
17
+ <show_in_website>1</show_in_website>
18
+ <show_in_store>1</show_in_store>
19
+ <groups>
20
  <hint>
21
  <frontend_model>uioptimization/adminhtml_config_source_hint</frontend_model>
22
  <sort_order>0</sort_order>
24
  <show_in_website>1</show_in_website>
25
  <show_in_store>1</show_in_store>
26
  </hint>
27
+ <general>
28
+ <label>General configuration</label>
29
+ <frontend_type>text</frontend_type>
30
+ <sort_order>1</sort_order>
31
+ <show_in_default>1</show_in_default>
32
+ <show_in_website>1</show_in_website>
33
+ <show_in_store>1</show_in_store>
34
+ <comment><![CDATA[Each compressed css/js files are updated each time their original files are updated. But if you want to save some resources (e.g. if you make lots of updates), you can force the regeneration of the compressed/minified js/css files periodically by enabling the option below. It will update the files each sunday at 2:00 by default. Cron works only if you have correctly configured the general cron of your Magento installation, see the <a href="#" onclick="javascript:window.open('http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job')" >wiki of Magento</a> to know how to do it.<br/>
35
+ By activating it, it will deactivate the auto-update from the original files.]]></comment>
36
+ <fields>
37
+ <cronupdate>
38
+ <label>Update periodically the JS/CSS compressed files</label>
39
+ <frontend_type>select</frontend_type>
40
+ <source_model>adminhtml/system_config_source_yesno</source_model>
41
+ <sort_order>10</sort_order>
42
+ <show_in_default>1</show_in_default>
43
+ <show_in_website>1</show_in_website>
44
+ <show_in_store>1</show_in_store>
45
+ </cronupdate>
46
+ <cron_schedule>
47
+ <label>Cron Schedule</label>
48
+ <frontend_type>text</frontend_type>
49
+ <sort_order>20</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ <comment><![CDATA[Provide here the schedule wished. It must respect the cron format e.g. 0 1 * * * for each day at 1:00.]]></comment>
54
+ </cron_schedule>
55
+ </fields>
56
+ </general>
57
+ <seo>
58
+ <label>Search Engines Optimization</label>
59
+ <frontend_type>text</frontend_type>
60
+ <sort_order>5</sort_order>
61
+ <show_in_default>1</show_in_default>
62
+ <show_in_website>1</show_in_website>
63
+ <show_in_store>1</show_in_store>
64
+ <fields>
65
+ <enabled>
66
+ <label>Enable Canonical URL (beta)</label>
67
+ <frontend_type>select</frontend_type>
68
+ <source_model>adminhtml/system_config_source_yesno</source_model>
69
+ <sort_order>10</sort_order>
70
+ <show_in_default>1</show_in_default>
71
+ <show_in_website>1</show_in_website>
72
+ <show_in_store>1</show_in_store>
73
+ </enabled>
74
+ <trailingslash>
75
+ <label>Force trailing slash to canonical URL's</label>
76
+ <frontend_type>select</frontend_type>
77
+ <source_model>adminhtml/system_config_source_yesno</source_model>
78
+ <sort_order>20</sort_order>
79
+ <show_in_default>1</show_in_default>
80
+ <show_in_website>1</show_in_website>
81
+ <show_in_store>1</show_in_store>
82
+ </trailingslash>
83
+ <products>
84
+ <label>Allow canonical URL's for products page</label>
85
+ <frontend_type>select</frontend_type>
86
+ <source_model>adminhtml/system_config_source_yesno</source_model>
87
+ <sort_order>30</sort_order>
88
+ <show_in_default>1</show_in_default>
89
+ <show_in_website>1</show_in_website>
90
+ <show_in_store>1</show_in_store>
91
+ </products>
92
+ <search>
93
+ <label>Allow canonical URL's for search result pages</label>
94
+ <frontend_type>select</frontend_type>
95
+ <source_model>adminhtml/system_config_source_yesno</source_model>
96
+ <sort_order>40</sort_order>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>1</show_in_store>
100
+ </search>
101
+ <cmshome>
102
+ <label>Allow canonical URL's for the CMS homepage</label>
103
+ <frontend_type>select</frontend_type>
104
+ <source_model>adminhtml/system_config_source_yesno</source_model>
105
+ <sort_order>50</sort_order>
106
+ <show_in_default>1</show_in_default>
107
+ <show_in_website>1</show_in_website>
108
+ <show_in_store>1</show_in_store>
109
+ </cmshome>
110
+ </fields>
111
+ </seo>
112
+ <csscompression>
113
+ <label>CSS Compression / Optimization</label>
114
+ <frontend_type>text</frontend_type>
115
+ <sort_order>10</sort_order>
116
+ <show_in_default>1</show_in_default>
117
+ <show_in_website>1</show_in_website>
118
+ <show_in_store>1</show_in_store>
119
+ <comment><![CDATA[This feature allows you to: <ul><li>- compress each CSS file of your frontend layout (if the includes are done through the method addCss or addItem into the layout xml files)</li><li>- save each compressed CSS and Secured CSS files into a different folder (/media/css and /media/css_secure).</li><li>- conserve the originals</li><li>- define how do you prefer to compress your CSS files (see options below and <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website), default values should be good for most of situtation</li><li>- clean existing compressed files manually, you just need to click on the button "Flush JavaScript/CSS Cache" at the top of this configuration page</li><li>- compatible with the existing Merge CSS files feature of Magento (fix SSL & relative path bugs from Magento)</li></ul>
120
+ <br/><strong>IMPORTANT:</strong> the compression is done only once or each time that your originals are modified. It means if you change the configuration here, you have to flush manually the compressed CSS files. It take resources and time to regenerate the compressed files, I advise you to regenerate them when your website activity is low or by activating the General Configuration Cron update of this module.<br/><br/>
121
+ For addtional improvements, you should activate gzip compression on server-side.]]></comment>
122
+ <fields>
123
+ <enabled>
124
+ <label>Enabled</label>
125
+ <frontend_type>select</frontend_type>
126
+ <source_model>adminhtml/system_config_source_yesno</source_model>
127
+ <sort_order>10</sort_order>
128
+ <show_in_default>1</show_in_default>
129
+ <show_in_website>1</show_in_website>
130
+ <show_in_store>1</show_in_store>
131
+ <comment><![CDATA[If deactivated, the CSS files taken will be the original one, otherwise your compressed css files.]]></comment>
132
+ </enabled>
133
+ <type>
134
+ <label>CSS Minify Type</label>
135
+ <frontend_type>select</frontend_type>
136
+ <source_model>uioptimization/config_source_csstypeminify</source_model>
137
+ <sort_order>11</sort_order>
138
+ <show_in_default>1</show_in_default>
139
+ <show_in_website>1</show_in_website>
140
+ <show_in_store>1</show_in_store>
141
+ <comment><![CDATA[]]></comment>
142
+ </type>
143
+ <yui_config>
144
+ <label>YUI Compressor Minify Config Options</label>
145
+ <sort_order>12</sort_order>
146
+ <frontend_model>uioptimization/adminhtml_config_source_heading</frontend_model>
147
+ <show_in_default>1</show_in_default>
148
+ <show_in_website>1</show_in_website>
149
+ <show_in_store>1</show_in_store>
150
+ </yui_config>
151
+ <java_path>
152
+ <label>Java Path</label>
153
+ <frontend_type>text</frontend_type>
154
+ <sort_order>13</sort_order>
155
+ <show_in_default>1</show_in_default>
156
+ <show_in_website>1</show_in_website>
157
+ <show_in_store>1</show_in_store>
158
+ <comment><![CDATA[If empty, the default java path of your server environnement will be used (if defined!). Java version >= 1.4 required.]]></comment>
159
+ </java_path>
160
+ <googlemin_config>
161
+ <label>Google Minify Config Options</label>
162
+ <sort_order>20</sort_order>
163
+ <frontend_model>uioptimization/adminhtml_config_source_heading</frontend_model>
164
+ <show_in_default>1</show_in_default>
165
+ <show_in_website>1</show_in_website>
166
+ <show_in_store>1</show_in_store>
167
+ </googlemin_config>
168
+ <preserve_comments>
169
+ <label>Preserve Comments</label>
170
+ <frontend_type>select</frontend_type>
171
+ <source_model>adminhtml/system_config_source_yesno</source_model>
172
+ <sort_order>21</sort_order>
173
+ <show_in_default>1</show_in_default>
174
+ <show_in_website>1</show_in_website>
175
+ <show_in_store>1</show_in_store>
176
+ </preserve_comments>
177
+ <csstidy_config>
178
+ <label>CSS Tidy Config Options</label>
179
+ <sort_order>30</sort_order>
180
+ <frontend_model>uioptimization/adminhtml_config_source_heading</frontend_model>
181
+ <show_in_default>1</show_in_default>
182
+ <show_in_website>1</show_in_website>
183
+ <show_in_store>1</show_in_store>
184
+ </csstidy_config>
185
+ <template>
186
+ <label>Template</label>
187
+ <frontend_type>select</frontend_type>
188
+ <source_model>uioptimization/config_source_template</source_model>
189
+ <sort_order>40</sort_order>
190
+ <show_in_default>1</show_in_default>
191
+ <show_in_website>1</show_in_website>
192
+ <show_in_store>1</show_in_store>
193
+ <comment><![CDATA[See the <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website for more information about templates.]]></comment>
194
+ </template>
195
+ <custom_template>
196
+ <label>Custom template</label>
197
+ <frontend_type>textarea</frontend_type>
198
+ <sort_order>50</sort_order>
199
+ <show_in_default>1</show_in_default>
200
+ <show_in_website>1</show_in_website>
201
+ <show_in_store>1</show_in_store>
202
+ <comment><![CDATA[See the <a href="#" onclick="javascript:window.open('http://csstidy.sourceforge.net/')">CSSTidy</a> website for more information about templates.]]></comment>
203
+ </custom_template>
204
+ <remove_last_semicolon>
205
+ <label>Remove last Semi-Colon</label>
206
+ <frontend_type>select</frontend_type>
207
+ <source_model>adminhtml/system_config_source_yesno</source_model>
208
+ <sort_order>60</sort_order>
209
+ <show_in_default>1</show_in_default>
210
+ <show_in_website>1</show_in_website>
211
+ <show_in_store>1</show_in_store>
212
+ </remove_last_semicolon>
213
+ <remove_bslash>
214
+ <label>Remove unnecessary backslashes</label>
215
+ <frontend_type>select</frontend_type>
216
+ <source_model>adminhtml/system_config_source_yesno</source_model>
217
+ <sort_order>70</sort_order>
218
+ <show_in_default>1</show_in_default>
219
+ <show_in_website>1</show_in_website>
220
+ <show_in_store>1</show_in_store>
221
+ </remove_bslash>
222
+ <compress_colors>
223
+ <label>Compress colors</label>
224
+ <frontend_type>select</frontend_type>
225
+ <source_model>adminhtml/system_config_source_yesno</source_model>
226
+ <sort_order>80</sort_order>
227
+ <show_in_default>1</show_in_default>
228
+ <show_in_website>1</show_in_website>
229
+ <show_in_store>1</show_in_store>
230
+ </compress_colors>
231
+ <compress_font>
232
+ <label>Compress Font Weight</label>
233
+ <frontend_type>select</frontend_type>
234
+ <source_model>adminhtml/system_config_source_yesno</source_model>
235
+ <sort_order>90</sort_order>
236
+ <show_in_default>1</show_in_default>
237
+ <show_in_website>1</show_in_website>
238
+ <show_in_store>1</show_in_store>
239
+ </compress_font>
240
+ <lowercase_s>
241
+ <label>Lowercase selectors</label>
242
+ <frontend_type>select</frontend_type>
243
+ <source_model>adminhtml/system_config_source_yesno</source_model>
244
+ <sort_order>100</sort_order>
245
+ <show_in_default>1</show_in_default>
246
+ <show_in_website>1</show_in_website>
247
+ <show_in_store>1</show_in_store>
248
+ </lowercase_s>
249
+ <optimise_shorthands>
250
+ <label>Optimise Shorthand</label>
251
+ <frontend_type>select</frontend_type>
252
+ <source_model>uioptimization/config_source_optishorthand</source_model>
253
+ <sort_order>110</sort_order>
254
+ <show_in_default>1</show_in_default>
255
+ <show_in_website>1</show_in_website>
256
+ <show_in_store>1</show_in_store>
257
+ </optimise_shorthands>
258
+ <case_properties>
259
+ <label>Case for properties</label>
260
+ <frontend_type>select</frontend_type>
261
+ <source_model>uioptimization/config_source_caseproperties</source_model>
262
+ <sort_order>120</sort_order>
263
+ <show_in_default>1</show_in_default>
264
+ <show_in_website>1</show_in_website>
265
+ <show_in_store>1</show_in_store>
266
+ </case_properties>
267
+ <sort_properties>
268
+ <label>Sort properties</label>
269
+ <frontend_type>select</frontend_type>
270
+ <source_model>adminhtml/system_config_source_yesno</source_model>
271
+ <sort_order>130</sort_order>
272
+ <show_in_default>1</show_in_default>
273
+ <show_in_website>1</show_in_website>
274
+ <show_in_store>1</show_in_store>
275
+ </sort_properties>
276
+ <sort_selectors>
277
+ <label>Sort selectors</label>
278
+ <frontend_type>select</frontend_type>
279
+ <source_model>adminhtml/system_config_source_yesno</source_model>
280
+ <sort_order>140</sort_order>
281
+ <show_in_default>1</show_in_default>
282
+ <show_in_website>1</show_in_website>
283
+ <show_in_store>1</show_in_store>
284
+ <comment>No advised to enable in Magento!</comment>
285
+ </sort_selectors>
286
+ <merge_selectors>
287
+ <label>Merge selectors</label>
288
+ <frontend_type>select</frontend_type>
289
+ <source_model>uioptimization/config_source_mergeselectors</source_model>
290
+ <sort_order>150</sort_order>
291
+ <show_in_default>1</show_in_default>
292
+ <show_in_website>1</show_in_website>
293
+ <show_in_store>1</show_in_store>
294
+ </merge_selectors>
295
+ <discard_invalid_properties>
296
+ <label>Discard invalid properties</label>
297
+ <frontend_type>select</frontend_type>
298
+ <source_model>adminhtml/system_config_source_yesno</source_model>
299
+ <sort_order>160</sort_order>
300
+ <show_in_default>1</show_in_default>
301
+ <show_in_website>1</show_in_website>
302
+ <show_in_store>1</show_in_store>
303
+ </discard_invalid_properties>
304
+ <css_level>
305
+ <label>Css Level (with discard invalid properties)</label>
306
+ <frontend_type>select</frontend_type>
307
+ <source_model>uioptimization/config_source_csslevel</source_model>
308
+ <sort_order>170</sort_order>
309
+ <show_in_default>1</show_in_default>
310
+ <show_in_website>1</show_in_website>
311
+ <show_in_store>1</show_in_store>
312
+ </css_level>
313
+ <preserve_css>
314
+ <label>Preserve CSS</label>
315
+ <frontend_type>select</frontend_type>
316
+ <source_model>adminhtml/system_config_source_yesno</source_model>
317
+ <sort_order>180</sort_order>
318
+ <show_in_default>1</show_in_default>
319
+ <show_in_website>1</show_in_website>
320
+ <show_in_store>1</show_in_store>
321
+ </preserve_css>
322
+ <timestamp>
323
+ <label>Add a timestamp to the file</label>
324
+ <frontend_type>select</frontend_type>
325
+ <source_model>adminhtml/system_config_source_yesno</source_model>
326
+ <sort_order>190</sort_order>
327
+ <show_in_default>1</show_in_default>
328
+ <show_in_website>1</show_in_website>
329
+ <show_in_store>1</show_in_store>
330
+ </timestamp>
331
+ </fields>
332
+ </csscompression>
333
+ <jscompression>
334
+ <label>Javascript Compression / Optimization</label>
335
+ <frontend_type>text</frontend_type>
336
+ <sort_order>20</sort_order>
337
+ <show_in_default>1</show_in_default>
338
+ <show_in_website>1</show_in_website>
339
+ <show_in_store>1</show_in_store>
340
+ <comment><![CDATA[- JSMin and YUICompressor are the best Minify libraries suited by Magento.<br/>- Obfuscation may be resource overload on client side.<br/>- You can clean existing compressed files manually, you just need to click on the button "Flush JavaScript/CSS Cache" at the top of this configuration page<br/><br/>
341
+ <strong>IMPORTANT:</strong> the compression is done only once or each time that your originals are modified. It means if you change the configuration here, you have to flush manually the compressed JS files.<br/>
342
+ It take resources and time to regenerate the compressed files, I advise you to regenerate them when your website activity is low or by activating the General Configuration of this module.]]></comment>
343
+ <fields>
344
+ <enabled>
345
+ <label>Enabled</label>
346
+ <frontend_type>select</frontend_type>
347
+ <source_model>adminhtml/system_config_source_yesno</source_model>
348
+ <sort_order>10</sort_order>
349
+ <show_in_default>1</show_in_default>
350
+ <show_in_website>1</show_in_website>
351
+ <show_in_store>1</show_in_store>
352
+ <comment><![CDATA[If deactivated, Javascript CSS files taken will be the original one, otherwise your compressed javascript files.]]></comment>
353
+ </enabled>
354
+ <type>
355
+ <label>JS Minify Type</label>
356
+ <frontend_type>select</frontend_type>
357
+ <source_model>uioptimization/config_source_jstypeminify</source_model>
358
+ <sort_order>20</sort_order>
359
+ <show_in_default>1</show_in_default>
360
+ <show_in_website>1</show_in_website>
361
+ <show_in_store>1</show_in_store>
362
+ <comment><![CDATA[Click on the link name to get more information about <a href="#" onclick="javascript:window.open('http://crockford.com/javascript/jsmin')">JSMin</a>, <a href="#" onclick="javascript:window.open('http://developer.yahoo.com/yui/compressor/')">YUICompressor</a>]]></comment>
363
+ </type>
364
+ <yui_config>
365
+ <label>YUI Compressor Options</label>
366
+ <sort_order>30</sort_order>
367
+ <frontend_model>uioptimization/adminhtml_config_source_heading</frontend_model>
368
+ <show_in_default>1</show_in_default>
369
+ <show_in_website>1</show_in_website>
370
+ <show_in_store>1</show_in_store>
371
+ </yui_config>
372
+ <java_path>
373
+ <label>Java Path</label>
374
+ <frontend_type>text</frontend_type>
375
+ <sort_order>31</sort_order>
376
+ <show_in_default>1</show_in_default>
377
+ <show_in_website>1</show_in_website>
378
+ <show_in_store>1</show_in_store>
379
+ <comment><![CDATA[If empty, the default java path of your server environnement will be used (if defined!). Java version >= 1.4 required.]]></comment>
380
+ </java_path>
381
+ <minify_only>
382
+ <label>Minify only</label>
383
+ <frontend_type>select</frontend_type>
384
+ <source_model>adminhtml/system_config_source_yesno</source_model>
385
+ <sort_order>32</sort_order>
386
+ <show_in_default>1</show_in_default>
387
+ <show_in_website>1</show_in_website>
388
+ <show_in_store>1</show_in_store>
389
+ <comment><![CDATA[Minify only, don't offuscate.]]></comment>
390
+ </minify_only>
391
+ <preserve_semic>
392
+ <label>Preserve Semi Colon</label>
393
+ <frontend_type>select</frontend_type>
394
+ <source_model>adminhtml/system_config_source_yesno</source_model>
395
+ <sort_order>33</sort_order>
396
+ <show_in_default>1</show_in_default>
397
+ <show_in_website>1</show_in_website>
398
+ <show_in_store>1</show_in_store>
399
+ <comment><![CDATA[Preserve all semicolons. May be important to keep compatibiliy with some JS Framework.]]></comment>
400
+ </preserve_semic>
401
+ <disable_alloptimisation>
402
+ <label>Disable all micro optimizations</label>
403
+ <frontend_type>select</frontend_type>
404
+ <source_model>adminhtml/system_config_source_yesno</source_model>
405
+ <sort_order>34</sort_order>
406
+ <show_in_default>1</show_in_default>
407
+ <show_in_website>1</show_in_website>
408
+ <show_in_store>1</show_in_store>
409
+ </disable_alloptimisation>
410
+ </fields>
411
+ </jscompression>
412
+ <w3chtmlvalidator>
413
+ <label>W3C HTML Validator Configuration</label>
414
+ <frontend_type>text</frontend_type>
415
+ <sort_order>30</sort_order>
416
+ <show_in_default>1</show_in_default>
417
+ <show_in_website>1</show_in_website>
418
+ <show_in_store>1</show_in_store>
419
+ <comment><![CDATA[For most of the values of this configuration, you can find information by visiting the <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">W3C page</a> to understand the meaning.<br/>
420
+ Please, be aware that this service won't work if you use it on a website not accessible by the Validator. You should install a <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">local</a> one if you need to use it locally. <a href="#" onclick="javascript:window.open('http://habilis.net/validator-sac/')">Validator S.A.C.</a> for Os X 10.4 to 10.6 can help you easily to install a local one.<br/>
421
+ it may display slowly your pages. Deactivate it when you don't need it.]]></comment>
422
+ <fields>
423
+ <enabled>
424
+ <label>Enabled</label>
425
+ <frontend_type>select</frontend_type>
426
+ <source_model>adminhtml/system_config_source_yesno</source_model>
427
+ <sort_order>10</sort_order>
428
+ <show_in_default>1</show_in_default>
429
+ <show_in_website>1</show_in_website>
430
+ <show_in_store>1</show_in_store>
431
+ <comment><![CDATA[Enable if "Yes" and if your IP is allowed (See Configuration > Avanced > Developer) ]]></comment>
432
+ </enabled>
433
+ <validator_uri>
434
+ <label>Validator URI</label>
435
+ <frontend_type>text</frontend_type>
436
+ <sort_order>20</sort_order>
437
+ <show_in_default>1</show_in_default>
438
+ <show_in_website>1</show_in_website>
439
+ <show_in_store>1</show_in_store>
440
+ <comment><![CDATA[By default it use the W3C one. But it's better to install yours in a private server, it's faster and you won't be blocked by the W3C after few validation. See the <a href="#" onclick="javascript:window.open('http://validator.w3.org/docs/api.html')">API doc</a>]]></comment>
441
+ </validator_uri>
442
+ <charset>
443
+ <label>Charset encoding override</label>
444
+ <frontend_type>select</frontend_type>
445
+ <source_model>uioptimization/config_source_charset</source_model>
446
+ <sort_order>30</sort_order>
447
+ <show_in_default>1</show_in_default>
448
+ <show_in_website>1</show_in_website>
449
+ <show_in_store>1</show_in_store>
450
+ <comment><![CDATA[By default the validator detects the charset of the document automatically.]]></comment>
451
+ </charset>
452
+ <fbc>
453
+ <label>Fallback Charset</label>
454
+ <frontend_type>select</frontend_type>
455
+ <source_model>adminhtml/system_config_source_yesno</source_model>
456
+ <sort_order>40</sort_order>
457
+ <show_in_default>1</show_in_default>
458
+ <show_in_website>1</show_in_website>
459
+ <show_in_store>1</show_in_store>
460
+ <comment><![CDATA[By default, it's true. It means if it's set to "Yes", the value of your configuration charset will be used as fallback in case of the charset can't be determined by the validator.]]></comment>
461
+ </fbc>
462
+ <doctype>
463
+ <label>Document Type override</label>
464
+ <frontend_type>select</frontend_type>
465
+ <source_model>uioptimization/config_source_doctype</source_model>
466
+ <sort_order>50</sort_order>
467
+ <show_in_default>1</show_in_default>
468
+ <show_in_website>1</show_in_website>
469
+ <show_in_store>1</show_in_store>
470
+ <comment><![CDATA[By default the validator detects the document type of the document automatically ]]></comment>
471
+ </doctype>
472
+ <fbd>
473
+ <label>Fallback Doctype</label>
474
+ <frontend_type>select</frontend_type>
475
+ <source_model>adminhtml/system_config_source_yesno</source_model>
476
+ <sort_order>60</sort_order>
477
+ <show_in_default>1</show_in_default>
478
+ <show_in_website>1</show_in_website>
479
+ <show_in_store>1</show_in_store>
480
+ <comment><![CDATA[By default, it's true. It means if it's set to "Yes", the value of your configuration doctype will be used as fallback in case of the doctype can't be determined by the validator.]]></comment>
481
+ </fbd>
482
+ </fields>
483
+ </w3chtmlvalidator>
484
+ <w3ccssvalidator>
485
+ <label>W3C CSS Validator Configuration</label>
486
+ <frontend_type>text</frontend_type>
487
+ <sort_order>40</sort_order>
488
+ <show_in_default>1</show_in_default>
489
+ <show_in_website>1</show_in_website>
490
+ <show_in_store>1</show_in_store>
491
+ <comment><![CDATA[For most of the values of this configuration, you can find information by visiting the <a href="#" onclick="javascript:window.open('http://jigsaw.w3.org/css-validator/manual.html#api')">W3C CSS API page</a> to understand the meaning.<br/>
492
+ <strong>Please, be aware</strong> that this service won't work if you use it on a website not accessible by the Validator. Sadly, currently, no local validator exists.<br/>
493
+ it may display slowly your pages. Deactivate it when you don't need it.]]></comment>
494
+ <fields>
495
+ <enabled>
496
+ <label>Enabled</label>
497
+ <frontend_type>select</frontend_type>
498
+ <source_model>adminhtml/system_config_source_yesno</source_model>
499
+ <sort_order>10</sort_order>
500
+ <show_in_default>1</show_in_default>
501
+ <show_in_website>1</show_in_website>
502
+ <show_in_store>1</show_in_store>
503
+ <comment><![CDATA[Enable if "Yes" and if your IP is allowed (See Configuration > Avanced > Developer) ]]></comment>
504
+ </enabled>
505
+ <lang>
506
+ <label>Lang of the results</label>
507
+ <frontend_type>select</frontend_type>
508
+ <source_model>uioptimization/config_source_language</source_model>
509
+ <sort_order>20</sort_order>
510
+ <show_in_default>1</show_in_default>
511
+ <show_in_website>1</show_in_website>
512
+ <show_in_store>1</show_in_store>
513
+ </lang>
514
+ <profile>
515
+ <label>Profile to use for the validation</label>
516
+ <frontend_type>select</frontend_type>
517
+ <source_model>uioptimization/config_source_profile</source_model>
518
+ <sort_order>30</sort_order>
519
+ <show_in_default>1</show_in_default>
520
+ <show_in_website>1</show_in_website>
521
+ <show_in_store>1</show_in_store>
522
+ </profile>
523
+ <warning>
524
+ <label>Warning level</label>
525
+ <frontend_type>select</frontend_type>
526
+ <source_model>uioptimization/config_source_warning</source_model>
527
+ <sort_order>40</sort_order>
528
+ <show_in_default>1</show_in_default>
529
+ <show_in_website>1</show_in_website>
530
+ <show_in_store>1</show_in_store>
531
+ </warning>
532
+ <usermedium>
533
+ <label>User Medium</label>
534
+ <frontend_type>select</frontend_type>
535
+ <source_model>uioptimization/config_source_usermedium</source_model>
536
+ <sort_order>50</sort_order>
537
+ <show_in_default>1</show_in_default>
538
+ <show_in_website>1</show_in_website>
539
+ <show_in_store>1</show_in_store>
540
+ </usermedium>
541
+ </fields>
542
+ </w3ccssvalidator>
543
+ </groups>
544
+ </uioptimization>
545
+ </sections>
546
  </config>
app/design/frontend/default/default/layout/uioptimization.xml CHANGED
@@ -9,28 +9,18 @@
9
  * that is bundled with this package in the file LICENSE.txt.
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
- * If you did not receive a copy of the license and are unable to
13
- * obtain it through the world-wide-web, please send an email
14
- * to license@magentocommerce.com so we can send you a copy immediately.
15
- *
16
- * DISCLAIMER
17
- *
18
- * Do not edit or add to this file if you wish to upgrade Magento to newer
19
- * versions in the future. If you wish to customize Magento for your
20
- * needs please refer to http://www.magentocommerce.com for more information.
21
  *
22
  * @category Diglin
23
  * @package Diglin_UIOptimization
24
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
  */
27
  -->
28
  <layout version="0.1.0">
29
  <default>
30
  <reference name="head">
31
- <block type="page/html_head" name="head_url" as="head_url">
32
- <action method="setTemplate" ifconfig="uioptimization/seo/enabled"><template>uioptimization/canonicalurl/head.phtml</template></action>
33
- </block>
34
  <action method="addCss" ifconfig="uioptimization/w3chtmlvalidator/enabled"><stylesheet>css/w3c-validator.css</stylesheet></action>
35
  <action method="addCss" ifconfig="uioptimization/w3ccssvalidator/enabled"><stylesheet>css/w3c-validator.css</stylesheet></action>
36
  </reference>
@@ -40,66 +30,6 @@
40
  </reference>
41
  </default>
42
 
43
- <!--
44
- Product view, force to load Sitemap URL instead of current URL
45
- -->
46
- <cms_index_index>
47
- <reference name="head">
48
- <action method="unsetChild" ifconfig="uioptimization/seo/enabled"><name>head_url</name></action>
49
- <block type="page/html_head" name="head_url" as="head_url">
50
- <action method="setTemplate" ifconfig="uioptimization/seo/enabled"><template>uioptimization/canonicalurl/head-home.phtml</template></action>
51
- </block>
52
- </reference>
53
- </cms_index_index>
54
-
55
- <catalog_product_view>
56
- <reference name="head">
57
- <action method="unsetChild" ifconfig="uioptimization/seo/enabled"><name>head_url</name></action>
58
- <block type="page/html_head" name="head_url" as="head_url">
59
- <action method="setTemplate" ifconfig="uioptimization/seo/enabled"><template>uioptimization/canonicalurl/head-product.phtml</template></action>
60
- </block>
61
- </reference>
62
- </catalog_product_view>
63
-
64
- <blog_post_view>
65
- <reference name="head">
66
- <action method="unsetChild" ifconfig="uioptimization/seo/enabled"><name>head_url</name></action>
67
- <block type="page/html_head" name="head_url" as="head_url">
68
- <action method="setTemplate" ifconfig="uioptimization/seo/enabled"><template>uioptimization/canonicalurl/head-blog.phtml</template></action>
69
- </block>
70
- </reference>
71
- </blog_post_view>
72
-
73
- <blog_cat_view>
74
- <reference name="head">
75
- <action method="unsetChild" ifconfig="uioptimization/seo/enabled"><name>head_url</name></action>
76
- <block type="page/html_head" name="head_url" as="head_url">
77
- <action method="setTemplate" ifconfig="uioptimization/seo/enabled"><template>uioptimization/canonicalurl/head-blog.phtml</template></action>
78
- </block>
79
- </reference>
80
- </blog_cat_view>
81
-
82
- <!--
83
- Remove Canonincal URL header from search pages
84
- -->
85
- <catalogsearch_result_index>
86
- <reference name="head">
87
- <action method="unsetChild"><name>head_url</name></action>
88
- </reference>
89
- </catalogsearch_result_index>
90
-
91
- <catalogsearch_advanced_index>
92
- <reference name="head">
93
- <action method="unsetChild"><name>head_url</name></action>
94
- </reference>
95
- </catalogsearch_advanced_index>
96
-
97
- <catalogsearch_advanced_result>
98
- <reference name="head">
99
- <action method="unsetChild"><name>head_url</name></action>
100
- </reference>
101
- </catalogsearch_advanced_result>
102
-
103
  <!--
104
  Remove Canonincal URL header from checkout pages
105
  -->
9
  * that is bundled with this package in the file LICENSE.txt.
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
+ *
 
 
 
 
 
 
 
 
13
  *
14
  * @category Diglin
15
  * @package Diglin_UIOptimization
16
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
17
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
  */
19
  -->
20
  <layout version="0.1.0">
21
  <default>
22
  <reference name="head">
23
+ <block type="page/html_head" name="head_url" as="head_url" template="uioptimization/canonicalurl.phtml" />
 
 
24
  <action method="addCss" ifconfig="uioptimization/w3chtmlvalidator/enabled"><stylesheet>css/w3c-validator.css</stylesheet></action>
25
  <action method="addCss" ifconfig="uioptimization/w3ccssvalidator/enabled"><stylesheet>css/w3c-validator.css</stylesheet></action>
26
  </reference>
30
  </reference>
31
  </default>
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  <!--
34
  Remove Canonincal URL header from checkout pages
35
  -->
app/design/frontend/default/default/template/uioptimization/canonicalurl.phtml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Diglin
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ *
13
+ * @category Diglin
14
+ * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /*@var $this Rissip_UIOptimization_Block_Optimize_Head */
20
+ $canonicalUrl = htmlspecialchars($this->getCanonicalUrl());
21
+ if(Mage::getStoreConfigFlag('uioptimization/seo/enabled') && $canonicalUrl) :
22
+ ?>
23
+ <link rel="canonical" href="<?php echo $canonicalUrl; ?>" />
24
+ <?php endif; ?>
app/design/frontend/default/default/template/uioptimization/canonicalurl/head-blog.phtml DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- /**
3
- * Diglin
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Diglin
22
- * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
- ?>
27
- <?php if ($this->getHeadBlogUrl()): ?><link rel="canonical" href="<?php echo $this->getHeadBlogUrl(); ?>" /><?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/uioptimization/canonicalurl/head-home.phtml DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- /**
3
- * Diglin
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Diglin
22
- * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
- ?>
27
- <link rel="canonical" href="<?php echo htmlspecialchars($this->getHeadHomeUrl()) ?>" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/uioptimization/canonicalurl/head-product.phtml DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- /**
3
- * Diglin
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Diglin
22
- * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
- ?>
27
- <link rel="canonical" href="<?php echo htmlspecialchars($this->getHeadProductUrl()) ?>" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/uioptimization/canonicalurl/head.phtml DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- /**
3
- * Diglin
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Diglin
22
- * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
- ?>
27
- <link rel="canonical" href="<?php echo htmlspecialchars($this->getHeadUrl()) ?>" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/uioptimization/w3ccssvalidator.phtml CHANGED
@@ -8,19 +8,11 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  ?>
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
+ *
 
 
 
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
  ?>
app/design/frontend/default/default/template/uioptimization/w3chtmlvalidator.phtml CHANGED
@@ -8,23 +8,14 @@
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
  * @category Diglin
22
  * @package Diglin_UIOptimization
23
- * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
- ?>
27
- <?php
28
  /**
29
  * $results is an object with the following attributes:
30
  * string uri
8
  * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
+ *
 
 
 
 
 
 
 
 
12
  *
13
  * @category Diglin
14
  * @package Diglin_UIOptimization
15
+ * @copyright Copyright (c) 2011-2012 Diglin (http://www.diglin.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+
 
19
  /**
20
  * $results is an object with the following attributes:
21
  * string uri
lib/Diglin/Csstidy/Core.php CHANGED
@@ -994,5 +994,4 @@ class Diglin_Csstidy_Core
994
  $all_properties =& $GLOBALS['csstidy']['all_properties'];
995
  return (isset($all_properties[$property]) && strpos($all_properties[$property],strtoupper($this->get_cfg('css_level'))) !== false );
996
  }
997
-
998
  }
994
  $all_properties =& $GLOBALS['csstidy']['all_properties'];
995
  return (isset($all_properties[$property]) && strpos($all_properties[$property],strtoupper($this->get_cfg('css_level'))) !== false );
996
  }
 
997
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Diglin_UIOptimization</name>
4
- <version>1.2.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -11,7 +11,7 @@
11
  &#xD;
12
  This module allows you to optimize and minify your css and js files by allowing you to use different available compression libraries and methods. It's completely configurable following the capabilities of each library.&#xD;
13
  &#xD;
14
- - Available libraries CSSTidy, JSMin, Packer, Google Minify or the YUI copmressor. &#xD;
15
  - Compatible with the merging CSS and JS function of Magento&#xD;
16
  - Works with any css and js files included in layout files using action methods: addCss, addJs, and addItem (skin_js, skin_css and js)&#xD;
17
  - Doesn't modifiy your originals files&#xD;
@@ -44,7 +44,8 @@ Inspired by the module from Yoast, this feature allows you to create canonical u
44
  - An assistant will be available soon&#xD;
45
  - Follow the instruction in the configuration page&#xD;
46
  - In case of Access Denied in the backend: clear your cache, logout/login. In case, it still doesn't work, save again the user role in System &gt; Permissions &gt; Roles.</description>
47
- <notes>- Version 1.2.0: improve compatibility with compilation feature of Magento, add a js/css flush button directly in the configuration page&#xD;
 
48
  - Version 1.1.0: rewrite some classes of the minify libraries to respect PHP 5 and prevent some errors, change the module name, make it compatible with compilation feature of Magento, add canonical url feature for SEO&#xD;
49
  - Version 1.0.10: fix type for css files stored in /js/ folder&#xD;
50
  - Version 1.0.9: make correct package for Magento prior to 1.5&#xD;
@@ -52,9 +53,9 @@ Inspired by the module from Yoast, this feature allows you to create canonical u
52
  - Version 1.0.2: add cron task to allow to update compressed/minified js/css files periodically&#xD;
53
  - Version 1.0.1: fix a missing config element class, this class seems to exists only since 1.4.1 or more</notes>
54
  <authors><author><name>diglin</name><user>auto-converted</user><email>sly@diglin.com</email></author></authors>
55
- <date>2011-09-22</date>
56
- <time>19:40:59</time>
57
- <contents><target name="magecommunity"><dir name="Diglin"><dir name="UIOptimization"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Hint.php" hash="2ef3c7a198d901bfe45b16e8669dea73"/></dir></dir></dir><dir name="Optimize"><file name="Head.php" hash="c208141bd87b185a45fd367f4f0be618"/></dir><file name="W3Ccssvalidator.php" hash="2165bea41f44012683660d7d5549c9d8"/><file name="W3Chtmlvalidator.php" hash="851f6665e0383cb48036fbfad5ecd6b0"/></dir><dir name="Helper"><file name="Data.php" hash="6cb43157d0d77c9cf75531bc1982ad50"/></dir><dir name="Model"><dir name="Config"><dir name="Source"><file name="Caseproperties.php" hash="d434096cf92143b4376383dd9489ec5a"/><file name="Charset.php" hash="8d826f8da4e66359bc474fb85c42823f"/><file name="Csslevel.php" hash="8b502da0bb373b9da49e487c65d7149b"/><file name="Csstypeminify.php" hash="19c00f71a60f28a5403106239e4748ea"/><file name="Doctype.php" hash="ec4910add8196863c13d9373565f0de8"/><file name="Jstypeminify.php" hash="e422208afa539f1b85ffcd9748a6fc4b"/><file name="Language.php" hash="9850a41aeb8f6dc042aeeb899b1a5d57"/><file name="Mergeselectors.php" hash="485b357c2e0d6c02f5aaa15e3ba19505"/><file name="Optishorthand.php" hash="0b9104186300786a35d41ef41e5b57e6"/><file name="Profile.php" hash="cfa71f8bee6fa8e9d714c37c3f016a0c"/><file name="Template.php" hash="4c418a191b0e88ec7953f100ba5bfc26"/><file name="Usermedium.php" hash="caa5e2241db6b9938d65c5a7435ca4b7"/><file name="Warning.php" hash="36708a36e938697afaa63ebf7fa055e5"/></dir></dir><dir name="Overwrite"><dir name="Design"><file name="Package.php" hash="df5bd5da86d2d53a210a9f64bc728bca"/></dir></dir><file name="Observer.php" hash="cb987429f0ad49627a3667ce702bc1c7"/></dir><dir name="etc"><file name="adminhtml.xml" hash="4f61911281b1e7e13a79cc7992cbe4ea"/><file name="config.xml" hash="14712e2c8101cf6b454ba5a7ae7c4f55"/><file name="system.xml" hash="708350e5f27b5fdea241d3b90c53f8db"/></dir></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Csstidy"><file name="Core.php" hash="607a9e65928febefae5121f279330f09"/><file name="Optimise.php" hash="3694084e725ba252b623492d0d09a67d"/><file name="Print.php" hash="203c86314418bc2b70fcb8beccafea3b"/><file name="README" hash="3a3e2ddf61de1689e042291b821262b0"/><file name="data.inc.php" hash="516492aeb1c37bb2a869863d9f2a21a1"/></dir><dir name="HTTP"><dir name="Request2"><dir name="Adapter"><file name="Curl.php" hash="e7a010aee80ee8dcfe73b5efc0890726"/><file name="Mock.php" hash="d33b4f9fdebdfad58034f4fe028a111c"/><file name="Socket.php" hash="ced36e7a1a3ed7a3adad46518c1954c2"/></dir><dir name="Observer"><file name="Log.php" hash="9aefde329905d25619d16f525bee9c6d"/></dir><file name="Adapter.php" hash="9f90535b4b7bff4a7052f767579b0ff1"/><file name="Exception.php" hash="ce7b316eaedcd5928a57e74725539fa6"/><file name="MultipartBody.php" hash="7073427f223db55059eca79cac36bbc1"/><file name="Response.php" hash="bdbcb96eadd6549d916f95acf45a0268"/></dir><file name="ConditionalGet.php" hash="5fb451fba76286fa28323f53f1870daf"/><file name="Encoder.php" hash="37a2b8e6bcb2908162e2881be93040a6"/><file name="Request2.php" hash="73fec75564cceac997605763812f061f"/></dir><dir name="Io"><file name="File.php" hash="d1b4545aeac7030d6991cf9310194b37"/></dir><dir name="Minify"><dir name="CSS"><file name="Compressor.php" hash="7382e9fe1dc08eef2b06fa016ed2dde8"/><file name="UriRewriter.php" hash="0585d4c22e773319b1616caa04ee253d"/></dir><dir name="Cache"><file name="APC.php" hash="6cab72f5c2a8cbe72f0751e7fdb35299"/><file name="File.php" hash="a0b06218ace157a91e8581481207554e"/><file name="Memcache.php" hash="92b3b852552e54fee0746beaeecfd920"/></dir><dir name="Controller"><file name="Base.php" hash="93d54ee900c594dae559a20d020d6eaa"/><file name="Files.php" hash="510d15562a7b77eafb3d366dea9cfcc9"/><file name="Groups.php" hash="cbf4869e3d9f99d56b9581f8477e78a3"/><file name="MinApp.php" hash="15a18fbc0cc30664e08ea880f4538215"/><file name="Page.php" hash="650d9edc5cfddd92027e6b7b257568f9"/><file name="Version1.php" hash="9a8fbce1285b08047393442e556adf89"/></dir><file name="Build.php" hash="78fe924cecb08a507f6c8fde9090dca5"/><file name="CSS.php" hash="128ff0cb67f075f175a51d0f9aac7469"/><file name="CommentPreserver.php" hash="efab6711d7ec10b046a58826dc314d21"/><file name="HTML.php" hash="ef58c0cf87dbec2f0301330062781b27"/><file name="ImportProcessor.php" hash="29379d4088d36d706ebaca5c7649ed27"/><file name="Lines.php" hash="ca9d9d718035dfb400c77568c9692f7c"/><file name="Logger.php" hash="b92325836feb2e64992ff931dd9b7454"/><file name="Packer.php" hash="ddc1e068af1043089764c80eaded7d81"/><file name="Source.php" hash="d9cbdc2851722a509157ab469b681b22"/><file name="YUICompressor.php" hash="4b73c98c6b650f54a96a264f3e0f0c8d"/></dir><dir name="Net"><file name="URL2.php" hash="65e54166dcf0994507459d0ad5b97a2c"/></dir><dir name="Services"><dir name="W3C"><dir name="CSSValidator"><file name="Error.php" hash="41cfd8ca38ef335ce03e75802c57ab81"/><file name="Message.php" hash="9d83bc04fdf945dc51d9974d6f626cfc"/><file name="Response.php" hash="7ae2b76ba7fdf008d06818596628f05f"/><file name="Warning.php" hash="3b654f71af352d5be419ef968323968f"/></dir><dir name="HTMLValidator"><file name="Error.php" hash="39139614730155f1cb70f8e35997cf09"/><file name="Exception.php" hash="133012d58d41064e2712ca93fee77ca4"/><file name="Message.php" hash="dcbdb982c3308598b8c2cd69caf591ff"/><file name="Response.php" hash="b263217ee5da08f275a77357d08efcf9"/><file name="Warning.php" hash="1f5f024525ead59be6adf39f78e93615"/></dir><file name="CSSValidator.php" hash="ae14a24c658a28adf2f4cbf3e2af17f8"/><file name="HTMLValidator.php" hash="75ac95c991d238fe10a2d4e54c6d2a07"/></dir></dir><dir name="Solar"><file name="Dir.php" hash="e71fa00999543f6c14960fffc7fe4f59"/></dir><dir name="yuicompressor-2.4.6"><dir name="build"><file name="yuicompressor-2.4.6.jar" hash="5980f34fce5868e93b174b23c329621f"/></dir><dir name="doc"><file name="CHANGELOG" hash="b6d3100c68ad7036035e6e71fb206750"/><file name="README" hash="aa4ae25f7cfb788a812695a05be0e138"/></dir><dir name="lib"><file name="jargs-1.0.jar" hash="6f3f1d7e5551b3a2c4f79a7a84304b7a"/><file name="rhino-1.6R7.jar" hash="4995caee1cf36af248f15df2b8ef4341"/></dir><dir name="ports"><dir name="js"><file name="cssmin.js" hash="04309be589d746e48e795205cf429b39"/></dir></dir><dir name="src"><dir name="com"><dir name="yahoo"><dir name="platform"><dir name="yui"><dir name="compressor"><file name="Bootstrap.java" hash="75e756e228a5c49974b807d02489cd13"/><file name="CssCompressor.java" hash="078bdea7f6d2f63af247229bc556673a"/><file name="JarClassLoader.java" hash="0bf8ae8b53566978478366a633827619"/><file name="JavaScriptCompressor.java" hash="7256d1f34ba3d01c8c3c525ffe16356c"/><file name="JavaScriptIdentifier.java" hash="49057621077a57034de36ff7d007fdc9"/><file name="JavaScriptToken.java" hash="370ac3982265e40052abe16ba4334219"/><file name="ScriptOrFnScope.java" hash="ed4f8de953c9ffd8ea281ae3eae0ee66"/><file name="YUICompressor.java" hash="19b36089bf5bf63011ec3f4ac758cfaf"/></dir></dir></dir></dir></dir><dir name="org"><dir name="mozilla"><dir name="javascript"><file name="Decompiler.java" hash="327ed36ff8c1f651571c3ce520be426e"/><file name="Decompiler.java.orig" hash="698d9ebaee2581d256d099a758b4071f"/><file name="Parser.java" hash="767abd69b48339d77c59184084158332"/><file name="Parser.java.orig" hash="7a699bb6a92d111912ae500e5cd38624"/><file name="Token.java" hash="e6f0f5ad85ec89b2cc2f0d1871d69f5b"/><file name="Token.java.orig" hash="fc29a8318923baf0fd901273c8fe3508"/><file name="TokenStream.java" hash="d13d1324cd82df8cdb776bf92803b631"/><file name="TokenStream.java.orig" hash="285c3df98b9c1ce89baa8869c99787fa"/></dir></dir></dir></dir><dir name="tests"><file name="README" hash="00759ebfaf6aa49096400113b8c979a9"/><file name="_munge.js" hash="f6aa2d7851acf77c9df23e9a4d008e65"/><file name="_munge.js.min" hash="a588cc04f58e03d4a160be09d4dfa9d3"/><file name="_string_combo.js" hash="eb8be931688b025dc19a4c0885215fdb"/><file name="_string_combo.js.min" hash="c31894fd93ce7fd39e0168e75043a975"/><file name="_syntax_error.js" hash="3ebfa7b74df65615a4cd8a84b2ba6557"/><file name="_syntax_error.js.min" hash="b6698b06b38258d3d3f70bc858c05ca9"/><file name="background-position.css" hash="41c8b60b980a8246420bedce9ad80f43"/><file name="background-position.css.min" hash="ab3083bbee5683a1b9e87f42d818f000"/><file name="border-none.css" hash="1f3f4f1d6a7e415f77cb3dd714273d4a"/><file name="border-none.css.min" hash="47d8f811087637a248d77b0e037e8c41"/><file name="box-model-hack.css" hash="9fea0ae9c85059e542d49ee5aa13555d"/><file name="box-model-hack.css.min" hash="8c0c7e93f069f4f86f675456922da775"/><file name="bug2527974.css" hash="36aac1fa682abc108c44ba5b78397b1f"/><file name="bug2527974.css.min" hash="05673cd175e6264c8dc7f7b8b1f1a4d6"/><file name="bug2527991.css" hash="7c9220e8b99c8482899998fd6824a827"/><file name="bug2527991.css.min" hash="b53f98777ad46666a6f1c7e49b15ab1c"/><file name="bug2527998.css" hash="79bc1cf4241d58092235d26cd8fd9a62"/><file name="bug2527998.css.min" hash="5b4eda9ed8f90a6c32284dbfc7c8ce30"/><file name="bug2528034.css" hash="d0a0c66851f1ce3650773c28ed1a87df"/><file name="bug2528034.css.min" hash="71a3bf1c4645dc8dbf8e770c32ee413a"/><file name="charset-media.css" hash="f5ce419dd15eb06acb42a6425efcc975"/><file name="charset-media.css.min" hash="1b97812c7a17d3eb53d761d254abf009"/><file name="color.css" hash="94783ce86f1a601a4fff5b7263012bab"/><file name="color.css.min" hash="3ffe7fd90cd053c808d701d1c8f40dac"/><file name="comment.css" hash="3a4ce0684608a07c97659eeef2f92c58"/><file name="comment.css.min" hash="25cc12f8db4af65032ab4db90951aa1b"/><file name="concat-charset.css" hash="50918cdb23e0fc6b496e805cf7680633"/><file name="concat-charset.css.min" hash="8567ed0beff3e83703d779f272951190"/><file name="decimals.css" hash="772c0211281af00de6ddca046ee3b376"/><file name="decimals.css.min" hash="e19cddee318f726350122581545215eb"/><file name="dollar-header.css" hash="aa8cc12a339a39146348f8e40d10269d"/><file name="dollar-header.css.min" hash="8c5436316574d9979f8a15ef73df1cca"/><file name="float.js" hash="628ee48be01710e3b424de663ee43387"/><file name="float.js.min" hash="27f8e451c22fb14c72d6fd5c6c3c030c"/><file name="font-face.css" hash="64501f813f2dac84e4e7a4af7add6b78"/><file name="font-face.css.min" hash="15d780bc4ba1c184881df880ad518c92"/><file name="ie5mac.css" hash="cce400f1ac3343f3e6bdf4cc8363aa0a"/><file name="ie5mac.css.min" hash="42e48b72ab79e34318ef5bb77ac0a611"/><file name="media-empty-class.css" hash="43d6b4cd603b301cf26bce376731843d"/><file name="media-empty-class.css.min" hash="b18b4b03ecd9b1bddbf23ef6a2f3b3ec"/><file name="media-multi.css" hash="4afa8bd30f96cc16a39b66eccfd0564d"/><file name="media-multi.css.min" hash="c104f19539c02a2922d91e3ad674080e"/><file name="media-test.css" hash="7dd3ab665ecc12f2bc4a45c006a99d55"/><file name="media-test.css.min" hash="35a05a55ad6a53d29a0127474977f738"/><file name="opacity-filter.css" hash="86d9df366af891c976ddda3522c0f940"/><file name="opacity-filter.css.min" hash="8bb3ec1ce452af5d16c64448bc8ac991"/><file name="preserve-new-line.css" hash="59529cee6c1368827bf1434c23c7d016"/><file name="preserve-new-line.css.min" hash="1337ad47f52d8b254c8f95f850430b6b"/><file name="preserve-strings.css" hash="1cc55ab8e7b566536f0fb96fa72cde3a"/><file name="preserve-strings.css.min" hash="0c564c025e5751c9b5f288a69552e2d1"/><file name="pseudo-first.css" hash="0b4a5a3b122ae327a53bebcb85669e34"/><file name="pseudo-first.css.min" hash="2a70774e971508d4f3162ccbc0e63445"/><file name="pseudo.css" hash="04345371998f4d01a7f45af52f88e61e"/><file name="pseudo.css.min" hash="51edc5f27abe8e14a57f11fd1b259c80"/><file name="special-comments.css" hash="b4c7acf039941b6b70b9ba5cc81b0fb8"/><file name="special-comments.css.min" hash="58916583c0dfac38c9d2daf71570c928"/><file name="star-underscore-hacks.css" hash="9ca59a789c3d81864d2cc99d7b43be8e"/><file name="star-underscore-hacks.css.min" hash="3cf8e4d1c60f5ec6cfdd7e754266021f"/><file name="string-in-comment.css" hash="90e90ae74f54f342552386da8276e578"/><file name="string-in-comment.css.min" hash="7df7e0b83884c7d9ab011ac04d97e4e1"/><file name="suite.rhino" hash="7b7721318c085d75ee46247ef52f119f"/><file name="suite.sh" hash="098286a327303a0cc23b90030a53d8c7"/><file name="webkit-transform.css" hash="4161a87a9732b3c89f7a88f1218801fa"/><file name="webkit-transform.css.min" hash="a673f8b4ac44e7ef939707d14244fb13"/><file name="zeros.css" hash="411b5c4b147adf4f5ae32cfbf04c4806"/><file name="zeros.css.min" hash="77cb7dbe3fc6e6a80906f69552d38801"/></dir><file name="LICENSE.TXT" hash="3613da48ce3df42e8878ee166242fd4f"/><file name="ant.properties" hash="ecbeb47b1702bde96874d085b9bf0955"/><file name="build.xml" hash="107ca508b743ed2ba27d0f5b7087b8b0"/></dir><file name="FirePHP.php" hash="0c1dce00e352b76ad76b36fc0a4d6fc7"/><file name="JSMin.php" hash="f6a43fd592beddde0736e19eb71d0cb0"/><file name="JSMinPlus.php" hash="99303433243e08149dd9c5082e22cf31"/><file name="JavaScriptPacker.php" hash="87ad3bd2bf41c3dbd4f9108a13ce3f45"/><file name="Minify.php" hash="e26f89ec7d5890875ed1de40875f46fa"/><file name="ParseMaster.php" hash="70988c48e5a68c8d3109d50542cfcde0"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><file name="w3c-validator.css" hash="ec35256d2c26b55084099d447fc15f37"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="uioptimization.xml" hash="e71248bb825badf47c12993b9f5835d6"/></dir><dir name="template"><dir name="uioptimization"><dir name="canonicalurl"><file name="head-blog.phtml" hash="a1549c3c707cf32b9797d2db2ec1e069"/><file name="head-home.phtml" hash="11777d47eaa10dfc44844542fe53e228"/><file name="head-product.phtml" hash="b2a2961c99559ccbd2f41465d43855ff"/><file name="head.phtml" hash="39d0003cd09aa6fe698771a3041135a1"/></dir><file name="w3ccssvalidator.phtml" hash="e4d04dc7c72d3d28a166e0fe5483db67"/><file name="w3chtmlvalidator.phtml" hash="a5364a689793cfdd7fe44b49538c0173"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Diglin_UIOptimization.xml" hash="df03af601856cd1869a114147b8eb6cc"/></dir></target></contents>
58
  <compatible/>
59
  <dependencies/>
60
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Diglin_UIOptimization</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
11
  &#xD;
12
  This module allows you to optimize and minify your css and js files by allowing you to use different available compression libraries and methods. It's completely configurable following the capabilities of each library.&#xD;
13
  &#xD;
14
+ - Available libraries CSSTidy, JSMin, Google Minify or the YUI copmressor. &#xD;
15
  - Compatible with the merging CSS and JS function of Magento&#xD;
16
  - Works with any css and js files included in layout files using action methods: addCss, addJs, and addItem (skin_js, skin_css and js)&#xD;
17
  - Doesn't modifiy your originals files&#xD;
44
  - An assistant will be available soon&#xD;
45
  - Follow the instruction in the configuration page&#xD;
46
  - In case of Access Denied in the backend: clear your cache, logout/login. In case, it still doesn't work, save again the user role in System &gt; Permissions &gt; Roles.</description>
47
+ <notes>- Version 1.3.0: improve canonical url generation, improve some configuration parameters, remove the option JS Packer because incompatible with Magento&#xD;
48
+ - Version 1.2.0: improve compatibility with compilation feature of Magento, add a js/css flush button directly in the configuration page&#xD;
49
  - Version 1.1.0: rewrite some classes of the minify libraries to respect PHP 5 and prevent some errors, change the module name, make it compatible with compilation feature of Magento, add canonical url feature for SEO&#xD;
50
  - Version 1.0.10: fix type for css files stored in /js/ folder&#xD;
51
  - Version 1.0.9: make correct package for Magento prior to 1.5&#xD;
53
  - Version 1.0.2: add cron task to allow to update compressed/minified js/css files periodically&#xD;
54
  - Version 1.0.1: fix a missing config element class, this class seems to exists only since 1.4.1 or more</notes>
55
  <authors><author><name>diglin</name><user>auto-converted</user><email>sly@diglin.com</email></author></authors>
56
+ <date>2012-01-15</date>
57
+ <time>17:08:26</time>
58
+ <contents><target name="magecommunity"><dir name="Diglin"><dir name="UIOptimization"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Heading.php" hash="d15c30ac285cdff33a2ab32eb59cb564"/><file name="Hint.php" hash="01e1ea4a67c60e6ef987b5800c9723aa"/></dir></dir></dir><dir name="Optimize"><file name="Head.php" hash="3afe236f07364a8241a444863788558d"/></dir><file name="W3Ccssvalidator.php" hash="43f2e40257bc6d729f55ff86f892ffd9"/><file name="W3Chtmlvalidator.php" hash="3bb405092f65ce69f1de065074e938ef"/></dir><dir name="Helper"><file name="Data.php" hash="0a636bc27bdcb38796021b158ade7dbe"/></dir><dir name="Model"><dir name="Config"><dir name="Source"><file name="Caseproperties.php" hash="71ecf181882b3ba86f34e9b13688b818"/><file name="Charset.php" hash="ed5b2d44ac015ad7a2e47e5256fcf326"/><file name="Csslevel.php" hash="a4c463268772612d76fa8cb01d48b394"/><file name="Csstypeminify.php" hash="ac3a3407105923255c212aabfdb7839e"/><file name="Doctype.php" hash="25f7b13fa0fb7eca9325c91fa84f1f66"/><file name="Jstypeminify.php" hash="e56cf7fc3ab95320d786972355b5176f"/><file name="Language.php" hash="2824c01f7014bc9c2a01bba519bf0d70"/><file name="Mergeselectors.php" hash="70e30f4f5e303b045838991184841409"/><file name="Optishorthand.php" hash="a66d0a74e0e659ddabc26d12fe30333a"/><file name="Profile.php" hash="4e4245d513a11ea2e48648d15f048952"/><file name="Template.php" hash="512a4faca68c7bb11b75ced04ec3fd23"/><file name="Usermedium.php" hash="53748dbbb513cf47e0a5ff6aa1f45947"/><file name="Warning.php" hash="375871ff5f28fb6c0679b7b935df638e"/></dir></dir><dir name="Overwrite"><dir name="Design"><file name="Package.php" hash="9026106a0a9a5b00a95b3c36249d71a7"/></dir></dir><file name="Observer.php" hash="3b5ccbf0aef2289fe9d0d054d760478f"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cde46a100bc94df35ce1fc8896e87514"/><file name="config.xml" hash="7f97187cec7f3d9c9e0c9c91e54b7018"/><file name="system.xml" hash="9acbc1244d4eb9568f611a3d625b7cca"/></dir></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Csstidy"><file name="Core.php" hash="820e39515baba186803453eaf735bb5d"/><file name="Optimise.php" hash="3694084e725ba252b623492d0d09a67d"/><file name="Print.php" hash="203c86314418bc2b70fcb8beccafea3b"/><file name="README" hash="3a3e2ddf61de1689e042291b821262b0"/><file name="data.inc.php" hash="516492aeb1c37bb2a869863d9f2a21a1"/></dir><dir name="HTTP"><dir name="Request2"><dir name="Adapter"><file name="Curl.php" hash="e7a010aee80ee8dcfe73b5efc0890726"/><file name="Mock.php" hash="d33b4f9fdebdfad58034f4fe028a111c"/><file name="Socket.php" hash="ced36e7a1a3ed7a3adad46518c1954c2"/></dir><dir name="Observer"><file name="Log.php" hash="9aefde329905d25619d16f525bee9c6d"/></dir><file name="Adapter.php" hash="9f90535b4b7bff4a7052f767579b0ff1"/><file name="Exception.php" hash="ce7b316eaedcd5928a57e74725539fa6"/><file name="MultipartBody.php" hash="7073427f223db55059eca79cac36bbc1"/><file name="Response.php" hash="bdbcb96eadd6549d916f95acf45a0268"/></dir><file name="ConditionalGet.php" hash="5fb451fba76286fa28323f53f1870daf"/><file name="Encoder.php" hash="37a2b8e6bcb2908162e2881be93040a6"/><file name="Request2.php" hash="73fec75564cceac997605763812f061f"/></dir><dir name="Io"><file name="File.php" hash="d1b4545aeac7030d6991cf9310194b37"/></dir><dir name="Minify"><dir name="CSS"><file name="Compressor.php" hash="7382e9fe1dc08eef2b06fa016ed2dde8"/><file name="UriRewriter.php" hash="0585d4c22e773319b1616caa04ee253d"/></dir><dir name="Cache"><file name="APC.php" hash="6cab72f5c2a8cbe72f0751e7fdb35299"/><file name="File.php" hash="a0b06218ace157a91e8581481207554e"/><file name="Memcache.php" hash="92b3b852552e54fee0746beaeecfd920"/></dir><dir name="Controller"><file name="Base.php" hash="93d54ee900c594dae559a20d020d6eaa"/><file name="Files.php" hash="510d15562a7b77eafb3d366dea9cfcc9"/><file name="Groups.php" hash="cbf4869e3d9f99d56b9581f8477e78a3"/><file name="MinApp.php" hash="15a18fbc0cc30664e08ea880f4538215"/><file name="Page.php" hash="650d9edc5cfddd92027e6b7b257568f9"/><file name="Version1.php" hash="9a8fbce1285b08047393442e556adf89"/></dir><file name="Build.php" hash="78fe924cecb08a507f6c8fde9090dca5"/><file name="CSS.php" hash="128ff0cb67f075f175a51d0f9aac7469"/><file name="CommentPreserver.php" hash="efab6711d7ec10b046a58826dc314d21"/><file name="HTML.php" hash="ef58c0cf87dbec2f0301330062781b27"/><file name="ImportProcessor.php" hash="29379d4088d36d706ebaca5c7649ed27"/><file name="Lines.php" hash="ca9d9d718035dfb400c77568c9692f7c"/><file name="Logger.php" hash="b92325836feb2e64992ff931dd9b7454"/><file name="Packer.php" hash="ddc1e068af1043089764c80eaded7d81"/><file name="Source.php" hash="d9cbdc2851722a509157ab469b681b22"/><file name="YUICompressor.php" hash="4b73c98c6b650f54a96a264f3e0f0c8d"/></dir><dir name="Net"><file name="URL2.php" hash="65e54166dcf0994507459d0ad5b97a2c"/></dir><dir name="Services"><dir name="W3C"><dir name="CSSValidator"><file name="Error.php" hash="41cfd8ca38ef335ce03e75802c57ab81"/><file name="Message.php" hash="9d83bc04fdf945dc51d9974d6f626cfc"/><file name="Response.php" hash="7ae2b76ba7fdf008d06818596628f05f"/><file name="Warning.php" hash="3b654f71af352d5be419ef968323968f"/></dir><dir name="HTMLValidator"><file name="Error.php" hash="39139614730155f1cb70f8e35997cf09"/><file name="Exception.php" hash="133012d58d41064e2712ca93fee77ca4"/><file name="Message.php" hash="dcbdb982c3308598b8c2cd69caf591ff"/><file name="Response.php" hash="b263217ee5da08f275a77357d08efcf9"/><file name="Warning.php" hash="1f5f024525ead59be6adf39f78e93615"/></dir><file name="CSSValidator.php" hash="ae14a24c658a28adf2f4cbf3e2af17f8"/><file name="HTMLValidator.php" hash="75ac95c991d238fe10a2d4e54c6d2a07"/></dir></dir><dir name="Solar"><file name="Dir.php" hash="e71fa00999543f6c14960fffc7fe4f59"/></dir><dir name="yuicompressor-2.4.6"><dir name="build"><file name="yuicompressor-2.4.6.jar" hash="5980f34fce5868e93b174b23c329621f"/></dir><dir name="doc"><file name="CHANGELOG" hash="b6d3100c68ad7036035e6e71fb206750"/><file name="README" hash="aa4ae25f7cfb788a812695a05be0e138"/></dir><dir name="lib"><file name="jargs-1.0.jar" hash="6f3f1d7e5551b3a2c4f79a7a84304b7a"/><file name="rhino-1.6R7.jar" hash="4995caee1cf36af248f15df2b8ef4341"/></dir><dir name="ports"><dir name="js"><file name="cssmin.js" hash="04309be589d746e48e795205cf429b39"/></dir></dir><dir name="src"><dir name="com"><dir name="yahoo"><dir name="platform"><dir name="yui"><dir name="compressor"><file name="Bootstrap.java" hash="75e756e228a5c49974b807d02489cd13"/><file name="CssCompressor.java" hash="078bdea7f6d2f63af247229bc556673a"/><file name="JarClassLoader.java" hash="0bf8ae8b53566978478366a633827619"/><file name="JavaScriptCompressor.java" hash="7256d1f34ba3d01c8c3c525ffe16356c"/><file name="JavaScriptIdentifier.java" hash="49057621077a57034de36ff7d007fdc9"/><file name="JavaScriptToken.java" hash="370ac3982265e40052abe16ba4334219"/><file name="ScriptOrFnScope.java" hash="ed4f8de953c9ffd8ea281ae3eae0ee66"/><file name="YUICompressor.java" hash="19b36089bf5bf63011ec3f4ac758cfaf"/></dir></dir></dir></dir></dir><dir name="org"><dir name="mozilla"><dir name="javascript"><file name="Decompiler.java" hash="327ed36ff8c1f651571c3ce520be426e"/><file name="Decompiler.java.orig" hash="698d9ebaee2581d256d099a758b4071f"/><file name="Parser.java" hash="767abd69b48339d77c59184084158332"/><file name="Parser.java.orig" hash="7a699bb6a92d111912ae500e5cd38624"/><file name="Token.java" hash="e6f0f5ad85ec89b2cc2f0d1871d69f5b"/><file name="Token.java.orig" hash="fc29a8318923baf0fd901273c8fe3508"/><file name="TokenStream.java" hash="d13d1324cd82df8cdb776bf92803b631"/><file name="TokenStream.java.orig" hash="285c3df98b9c1ce89baa8869c99787fa"/></dir></dir></dir></dir><dir name="tests"><file name="README" hash="00759ebfaf6aa49096400113b8c979a9"/><file name="_munge.js" hash="f6aa2d7851acf77c9df23e9a4d008e65"/><file name="_munge.js.min" hash="a588cc04f58e03d4a160be09d4dfa9d3"/><file name="_string_combo.js" hash="eb8be931688b025dc19a4c0885215fdb"/><file name="_string_combo.js.min" hash="c31894fd93ce7fd39e0168e75043a975"/><file name="_syntax_error.js" hash="3ebfa7b74df65615a4cd8a84b2ba6557"/><file name="_syntax_error.js.min" hash="b6698b06b38258d3d3f70bc858c05ca9"/><file name="background-position.css" hash="41c8b60b980a8246420bedce9ad80f43"/><file name="background-position.css.min" hash="ab3083bbee5683a1b9e87f42d818f000"/><file name="border-none.css" hash="1f3f4f1d6a7e415f77cb3dd714273d4a"/><file name="border-none.css.min" hash="47d8f811087637a248d77b0e037e8c41"/><file name="box-model-hack.css" hash="9fea0ae9c85059e542d49ee5aa13555d"/><file name="box-model-hack.css.min" hash="8c0c7e93f069f4f86f675456922da775"/><file name="bug2527974.css" hash="36aac1fa682abc108c44ba5b78397b1f"/><file name="bug2527974.css.min" hash="05673cd175e6264c8dc7f7b8b1f1a4d6"/><file name="bug2527991.css" hash="7c9220e8b99c8482899998fd6824a827"/><file name="bug2527991.css.min" hash="b53f98777ad46666a6f1c7e49b15ab1c"/><file name="bug2527998.css" hash="79bc1cf4241d58092235d26cd8fd9a62"/><file name="bug2527998.css.min" hash="5b4eda9ed8f90a6c32284dbfc7c8ce30"/><file name="bug2528034.css" hash="d0a0c66851f1ce3650773c28ed1a87df"/><file name="bug2528034.css.min" hash="71a3bf1c4645dc8dbf8e770c32ee413a"/><file name="charset-media.css" hash="f5ce419dd15eb06acb42a6425efcc975"/><file name="charset-media.css.min" hash="1b97812c7a17d3eb53d761d254abf009"/><file name="color.css" hash="94783ce86f1a601a4fff5b7263012bab"/><file name="color.css.min" hash="3ffe7fd90cd053c808d701d1c8f40dac"/><file name="comment.css" hash="3a4ce0684608a07c97659eeef2f92c58"/><file name="comment.css.min" hash="25cc12f8db4af65032ab4db90951aa1b"/><file name="concat-charset.css" hash="50918cdb23e0fc6b496e805cf7680633"/><file name="concat-charset.css.min" hash="8567ed0beff3e83703d779f272951190"/><file name="decimals.css" hash="772c0211281af00de6ddca046ee3b376"/><file name="decimals.css.min" hash="e19cddee318f726350122581545215eb"/><file name="dollar-header.css" hash="aa8cc12a339a39146348f8e40d10269d"/><file name="dollar-header.css.min" hash="8c5436316574d9979f8a15ef73df1cca"/><file name="float.js" hash="628ee48be01710e3b424de663ee43387"/><file name="float.js.min" hash="27f8e451c22fb14c72d6fd5c6c3c030c"/><file name="font-face.css" hash="64501f813f2dac84e4e7a4af7add6b78"/><file name="font-face.css.min" hash="15d780bc4ba1c184881df880ad518c92"/><file name="ie5mac.css" hash="cce400f1ac3343f3e6bdf4cc8363aa0a"/><file name="ie5mac.css.min" hash="42e48b72ab79e34318ef5bb77ac0a611"/><file name="media-empty-class.css" hash="43d6b4cd603b301cf26bce376731843d"/><file name="media-empty-class.css.min" hash="b18b4b03ecd9b1bddbf23ef6a2f3b3ec"/><file name="media-multi.css" hash="4afa8bd30f96cc16a39b66eccfd0564d"/><file name="media-multi.css.min" hash="c104f19539c02a2922d91e3ad674080e"/><file name="media-test.css" hash="7dd3ab665ecc12f2bc4a45c006a99d55"/><file name="media-test.css.min" hash="35a05a55ad6a53d29a0127474977f738"/><file name="opacity-filter.css" hash="86d9df366af891c976ddda3522c0f940"/><file name="opacity-filter.css.min" hash="8bb3ec1ce452af5d16c64448bc8ac991"/><file name="preserve-new-line.css" hash="59529cee6c1368827bf1434c23c7d016"/><file name="preserve-new-line.css.min" hash="1337ad47f52d8b254c8f95f850430b6b"/><file name="preserve-strings.css" hash="1cc55ab8e7b566536f0fb96fa72cde3a"/><file name="preserve-strings.css.min" hash="0c564c025e5751c9b5f288a69552e2d1"/><file name="pseudo-first.css" hash="0b4a5a3b122ae327a53bebcb85669e34"/><file name="pseudo-first.css.min" hash="2a70774e971508d4f3162ccbc0e63445"/><file name="pseudo.css" hash="04345371998f4d01a7f45af52f88e61e"/><file name="pseudo.css.min" hash="51edc5f27abe8e14a57f11fd1b259c80"/><file name="special-comments.css" hash="b4c7acf039941b6b70b9ba5cc81b0fb8"/><file name="special-comments.css.min" hash="58916583c0dfac38c9d2daf71570c928"/><file name="star-underscore-hacks.css" hash="9ca59a789c3d81864d2cc99d7b43be8e"/><file name="star-underscore-hacks.css.min" hash="3cf8e4d1c60f5ec6cfdd7e754266021f"/><file name="string-in-comment.css" hash="90e90ae74f54f342552386da8276e578"/><file name="string-in-comment.css.min" hash="7df7e0b83884c7d9ab011ac04d97e4e1"/><file name="suite.rhino" hash="7b7721318c085d75ee46247ef52f119f"/><file name="suite.sh" hash="098286a327303a0cc23b90030a53d8c7"/><file name="webkit-transform.css" hash="4161a87a9732b3c89f7a88f1218801fa"/><file name="webkit-transform.css.min" hash="a673f8b4ac44e7ef939707d14244fb13"/><file name="zeros.css" hash="411b5c4b147adf4f5ae32cfbf04c4806"/><file name="zeros.css.min" hash="77cb7dbe3fc6e6a80906f69552d38801"/></dir><file name="LICENSE.TXT" hash="3613da48ce3df42e8878ee166242fd4f"/><file name="ant.properties" hash="ecbeb47b1702bde96874d085b9bf0955"/><file name="build.xml" hash="107ca508b743ed2ba27d0f5b7087b8b0"/></dir><file name="FirePHP.php" hash="0c1dce00e352b76ad76b36fc0a4d6fc7"/><file name="JSMin.php" hash="f6a43fd592beddde0736e19eb71d0cb0"/><file name="JSMinPlus.php" hash="99303433243e08149dd9c5082e22cf31"/><file name="JavaScriptPacker.php" hash="87ad3bd2bf41c3dbd4f9108a13ce3f45"/><file name="Minify.php" hash="e26f89ec7d5890875ed1de40875f46fa"/><file name="ParseMaster.php" hash="70988c48e5a68c8d3109d50542cfcde0"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><file name="w3c-validator.css" hash="ec35256d2c26b55084099d447fc15f37"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="uioptimization.xml" hash="0db614f8736ab73850e64fec19163adb"/></dir><dir name="template"><dir name="uioptimization"><file name="canonicalurl.phtml" hash="4feb2a4801db037648479ce9a0fd6dbe"/><file name="w3ccssvalidator.phtml" hash="df20893c83302cac5485da4de78ba89c"/><file name="w3chtmlvalidator.phtml" hash="662d5d642f31b5fe2853cf8721b9e093"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Diglin_UIOptimization.xml" hash="df03af601856cd1869a114147b8eb6cc"/></dir></target></contents>
59
  <compatible/>
60
  <dependencies/>
61
  </package>