Apptrian_Image_Optimizer - Version 1.3.0

Version Notes

+ Added "Empty Index" button
* Fixed bug related to uppercase file extensions
* Fixed bug with files which do not exist anymore and their removal from the index
* Fixed bug with utility options validation regex for allowing "=" sign

Download this release

Release Info

Developer Apptrian
Extension Apptrian_Image_Optimizer
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.2 to 1.3.0

app/code/community/Apptrian/ImageOptimizer/Block/Adminhtml/Button/Empty.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Apptrian
4
+ * @package Apptrian_ImageOptimizer
5
+ * @author Apptrian
6
+ * @copyright Copyright (c) 2016 Apptrian (http://www.apptrian.com)
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ class Apptrian_ImageOptimizer_Block_Adminhtml_Button_Empty extends Mage_Adminhtml_Block_System_Config_Form_Field
10
+ {
11
+ /**
12
+ * Import static blocks
13
+ *
14
+ * @param Varien_Data_Form_Element_Abstract $element
15
+ * @return String
16
+ */
17
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
18
+ {
19
+
20
+ $buttonLabel = Mage::helper('apptrian_imageoptimizer')->__('Empty Index');
21
+
22
+ $url = Mage::helper('adminhtml')->getUrl(
23
+ 'adminhtml/apptrian_imgopt/empty');
24
+
25
+ $html = $this->getLayout()->createBlock('adminhtml/widget_button')
26
+ ->setType('button')
27
+ ->setClass('apptrian-imageoptimizer-admin-button-empty')
28
+ ->setLabel($buttonLabel)
29
+ ->setOnClick("setLocation('$url')")
30
+ ->toHtml();
31
+
32
+ return $html;
33
+
34
+ }
35
+ }
app/code/community/Apptrian/ImageOptimizer/Block/Info.php CHANGED
@@ -39,28 +39,28 @@ class Apptrian_ImageOptimizer_Block_Info
39
  </div>
40
  <div>
41
  <p><strong>Products and services you might be interested in:</strong></p>
42
- <a href="http://www.apptrian.com/products-and-services/magento/image-optimizer-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
43
  <img src="http://www.apptrian.com/media/apptrian-promotional/image-optimizer-for-magento.jpg" alt="Image Optimizer for Magento" style="border:1px solid #ccc;" />
44
  </a>
45
- <a href="http://www.apptrian.com/products-and-services/magento/minify-html-css-js-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
46
  <img src="http://www.apptrian.com/media/apptrian-promotional/minify-html-css-js-for-magento.jpg" alt="Minify HTML CSS JS for Magento" style="border:1px solid #ccc;" />
47
  </a>
48
- <a href="http://www.apptrian.com/products-and-services/magento/professional-magento-installation" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
49
  <img src="http://www.apptrian.com/media/apptrian-promotional/professional-magento-installation.jpg" alt="Professional Magento Installation" style="border:1px solid #ccc;" />
50
  </a>
51
- <a href="http://www.apptrian.com/products-and-services/magento/quick-search-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
52
  <img src="http://www.apptrian.com/media/apptrian-promotional/quick-search-for-magento.jpg" alt="Quick Search for Magento" style="border:1px solid #ccc;" />
53
  </a>
54
- <a href="http://www.apptrian.com/products-and-services/magento/responsive-product-slider-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
55
  <img src="http://www.apptrian.com/media/apptrian-promotional/responsive-product-slider-for-magento.jpg" alt="Responsive Product Slider for Magento" style="border:1px solid #ccc;" />
56
  </a>
57
- <a href="http://www.apptrian.com/products-and-services/magento/schema-org-microdata-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
58
  <img src="http://www.apptrian.com/media/apptrian-promotional/schema-org-microdata-for-magento.jpg" alt="Schema.org Microdata for Magento" style="border:1px solid #ccc;" />
59
  </a>
60
- <a href="http://www.apptrian.com/products-and-services/magento/social-integrator-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
61
  <img src="http://www.apptrian.com/media/apptrian-promotional/social-integrator-for-magento.jpg" alt="Social Integrator" style="border:1px solid #ccc;" />
62
  </a>
63
- <a href="http://www.apptrian.com/products-and-services/magento/subcategories-grid-list-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
64
  <img src="http://www.apptrian.com/media/apptrian-promotional/subcategories-grid-list-for-magento.jpg" alt="Subcategories Grid/List" style="border:1px solid #ccc;" />
65
  </a>
66
  </div>
39
  </div>
40
  <div>
41
  <p><strong>Products and services you might be interested in:</strong></p>
42
+ <a href="http://www.apptrian.com/image-optimizer-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
43
  <img src="http://www.apptrian.com/media/apptrian-promotional/image-optimizer-for-magento.jpg" alt="Image Optimizer for Magento" style="border:1px solid #ccc;" />
44
  </a>
45
+ <a href="http://www.apptrian.com/minify-html-css-js-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
46
  <img src="http://www.apptrian.com/media/apptrian-promotional/minify-html-css-js-for-magento.jpg" alt="Minify HTML CSS JS for Magento" style="border:1px solid #ccc;" />
47
  </a>
48
+ <a href="http://www.apptrian.com/professional-magento-installation" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
49
  <img src="http://www.apptrian.com/media/apptrian-promotional/professional-magento-installation.jpg" alt="Professional Magento Installation" style="border:1px solid #ccc;" />
50
  </a>
51
+ <a href="http://www.apptrian.com/quick-search-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
52
  <img src="http://www.apptrian.com/media/apptrian-promotional/quick-search-for-magento.jpg" alt="Quick Search for Magento" style="border:1px solid #ccc;" />
53
  </a>
54
+ <a href="http://www.apptrian.com/responsive-product-slider-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
55
  <img src="http://www.apptrian.com/media/apptrian-promotional/responsive-product-slider-for-magento.jpg" alt="Responsive Product Slider for Magento" style="border:1px solid #ccc;" />
56
  </a>
57
+ <a href="http://www.apptrian.com/schema-org-microdata-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
58
  <img src="http://www.apptrian.com/media/apptrian-promotional/schema-org-microdata-for-magento.jpg" alt="Schema.org Microdata for Magento" style="border:1px solid #ccc;" />
59
  </a>
60
+ <a href="http://www.apptrian.com/social-integrator-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
61
  <img src="http://www.apptrian.com/media/apptrian-promotional/social-integrator-for-magento.jpg" alt="Social Integrator" style="border:1px solid #ccc;" />
62
  </a>
63
+ <a href="http://www.apptrian.com/subcategories-grid-list-for-magento" target="_blank" style="margin: 0 15px 15px 0; display: inline-block;">
64
  <img src="http://www.apptrian.com/media/apptrian-promotional/subcategories-grid-list-for-magento.jpg" alt="Subcategories Grid/List" style="border:1px solid #ccc;" />
65
  </a>
66
  </div>
app/code/community/Apptrian/ImageOptimizer/Helper/Data.php CHANGED
@@ -111,7 +111,7 @@ class Apptrian_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
111
 
112
  $output = array();
113
 
114
- switch ($info['extension']) {
115
  case 'jpg':
116
  case 'jpeg':
117
  exec(Mage::helper('apptrian_imageoptimizer/utility')->getJpgUtil($filePath), $output, $return_var);
@@ -194,7 +194,7 @@ class Apptrian_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
194
 
195
  } else {
196
 
197
- $toDelete = $id;
198
 
199
  }
200
 
@@ -304,5 +304,4 @@ class Apptrian_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
304
 
305
  }
306
 
307
-
308
  }
111
 
112
  $output = array();
113
 
114
+ switch (strtolower($info['extension'])) {
115
  case 'jpg':
116
  case 'jpeg':
117
  exec(Mage::helper('apptrian_imageoptimizer/utility')->getJpgUtil($filePath), $output, $return_var);
194
 
195
  } else {
196
 
197
+ $toDelete[] = $id;
198
 
199
  }
200
 
304
 
305
  }
306
 
 
307
  }
app/code/community/Apptrian/ImageOptimizer/Model/Config/Options.php CHANGED
@@ -31,7 +31,7 @@ class Apptrian_ImageOptimizer_Model_Config_Options extends Mage_Core_Model_Confi
31
  $helper = Mage::helper('apptrian_imageoptimizer');
32
  $value = $this->getValue();
33
 
34
- if (!Zend_Validate::is($value, 'Regex', array('pattern' => '/^[\p{L}\p{N}_,;:!%&#\+\*\$\?\|\'\.\-\ \/]+$/iu'))) {
35
  $errors[] = $helper->__('One or more of Utility Option fields are invalid.');
36
  }
37
 
31
  $helper = Mage::helper('apptrian_imageoptimizer');
32
  $value = $this->getValue();
33
 
34
+ if (!Zend_Validate::is($value, 'Regex', array('pattern' => '/^[\p{L}\p{N}_,;:!%&#\=\+\*\$\?\|\'\.\-\ \/]+$/iu'))) {
35
  $errors[] = $helper->__('One or more of Utility Option fields are invalid.');
36
  }
37
 
app/code/community/Apptrian/ImageOptimizer/Model/Resource/File.php CHANGED
@@ -230,5 +230,27 @@ class Apptrian_ImageOptimizer_Model_Resource_File extends Mage_Core_Model_Resour
230
 
231
  }
232
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
 
234
  }
230
 
231
  }
232
 
233
+ /**
234
+ * Empty index. (Empty db table apptrian_imageoptimizer_files)
235
+ *
236
+ * @return boolean
237
+ */
238
+ public function emptyIndex() {
239
+
240
+ $resource = Mage::getSingleton('core/resource');
241
+ $wConn = $resource->getConnection('core_write');
242
+ $table = $resource->getTableName('apptrian_imageoptimizer/file');
243
+
244
+ $query = 'TRUNCATE ' . $table . ';';
245
+
246
+ try {
247
+ $wConn->query($query);
248
+ return true;
249
+ } catch (Exception $e) {
250
+ Mage::log($e);
251
+ return false;
252
+ }
253
+
254
+ }
255
 
256
  }
app/code/community/Apptrian/ImageOptimizer/controllers/Adminhtml/Apptrian/ImgoptController.php CHANGED
@@ -68,5 +68,29 @@ class Apptrian_ImageOptimizer_Adminhtml_Apptrian_ImgoptController extends Mage_A
68
 
69
  }
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
 
72
  }
68
 
69
  }
70
 
71
+ public function emptyAction()
72
+ {
73
+
74
+ $resource = Mage::getResourceModel('apptrian_imageoptimizer/file');
75
+
76
+ try {
77
+
78
+ $resource->emptyIndex();
79
+
80
+ $message = $this->__('Empty index operation completed successfully.');
81
+ Mage::getSingleton('adminhtml/session')->addSuccess($message);
82
+
83
+ } catch (Exception $e) {
84
+
85
+ $message = $this->__('Empty index operation failed.');
86
+ Mage::getSingleton('adminhtml/session')->addError($message);
87
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
88
+
89
+ }
90
+
91
+ $url = Mage::helper('adminhtml')->getUrl('adminhtml/system_config/edit/section/apptrian_imageoptimizer');
92
+ Mage::app()->getResponse()->setRedirect($url);
93
+
94
+ }
95
 
96
  }
app/code/community/Apptrian/ImageOptimizer/etc/config.xml CHANGED
@@ -11,7 +11,7 @@
11
  <config>
12
  <modules>
13
  <Apptrian_ImageOptimizer>
14
- <version>1.2.2</version>
15
  </Apptrian_ImageOptimizer>
16
  </modules>
17
  <global>
11
  <config>
12
  <modules>
13
  <Apptrian_ImageOptimizer>
14
+ <version>1.3.0</version>
15
  </Apptrian_ImageOptimizer>
16
  </modules>
17
  <global>
app/code/community/Apptrian/ImageOptimizer/etc/system.xml CHANGED
@@ -175,10 +175,33 @@
175
  <enabled>1</enabled>
176
  </depends>
177
  </stats>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  <heading_cron translate="label">
179
  <label>Cron Settings</label>
180
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
181
- <sort_order>10</sort_order>
182
  <show_in_default>1</show_in_default>
183
  <show_in_website>0</show_in_website>
184
  <show_in_store>0</show_in_store>
@@ -190,7 +213,7 @@
190
  <label>Cron Expression</label>
191
  <frontend_type>text</frontend_type>
192
  <backend_model>apptrian_imageoptimizer/config_cron</backend_model>
193
- <sort_order>11</sort_order>
194
  <show_in_default>1</show_in_default>
195
  <show_in_website>0</show_in_website>
196
  <show_in_store>0</show_in_store>
175
  <enabled>1</enabled>
176
  </depends>
177
  </stats>
178
+ <heading_empty translate="label">
179
+ <label>Empty Index</label>
180
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
181
+ <sort_order>10</sort_order>
182
+ <show_in_default>1</show_in_default>
183
+ <show_in_website>0</show_in_website>
184
+ <show_in_store>0</show_in_store>
185
+ <depends>
186
+ <enabled>1</enabled>
187
+ </depends>
188
+ </heading_empty>
189
+ <empty translate="label">
190
+ <label>This resets above progress bar and you will have to index and optimize all images again.</label>
191
+ <frontend_type>button</frontend_type>
192
+ <frontend_model>apptrian_imageoptimizer/adminhtml_button_empty</frontend_model>
193
+ <sort_order>11</sort_order>
194
+ <show_in_default>1</show_in_default>
195
+ <show_in_website>0</show_in_website>
196
+ <show_in_store>0</show_in_store>
197
+ <depends>
198
+ <enabled>1</enabled>
199
+ </depends>
200
+ </empty>
201
  <heading_cron translate="label">
202
  <label>Cron Settings</label>
203
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
204
+ <sort_order>12</sort_order>
205
  <show_in_default>1</show_in_default>
206
  <show_in_website>0</show_in_website>
207
  <show_in_store>0</show_in_store>
213
  <label>Cron Expression</label>
214
  <frontend_type>text</frontend_type>
215
  <backend_model>apptrian_imageoptimizer/config_cron</backend_model>
216
+ <sort_order>13</sort_order>
217
  <show_in_default>1</show_in_default>
218
  <show_in_website>0</show_in_website>
219
  <show_in_store>0</show_in_store>
app/locale/en_US/Apptrian_ImageOptimizer.csv CHANGED
@@ -1,3 +1,4 @@
 
1
  "(%s of %s files)","(%s of %s files)"
2
  "Batch size must be an integer.","Batch size must be an integer."
3
  "Batch size must be greater than 0.","Batch size must be greater than 0."
@@ -13,6 +14,8 @@
13
  "Optimization operations completed successfully.","Optimization operations completed successfully."
14
  "Optimization failed.","Optimization failed."
15
  "Optimization failed because PHP exec() function is disabled.","Optimization failed because PHP exec() function is disabled."
 
 
16
  "Info","Info"
17
  "Image Optimizer","Image Optimizer"
18
  "Apptrian Extensions","Apptrian Extensions"
@@ -32,6 +35,7 @@
32
  "Progress Bar","Progress Bar"
33
  "Bar on the right represents how many images are optimized.","Bar on the right represents how many images are optimized."
34
  "Every time you click ""Start Optimization Process"" (or cron job executes) depending on ""Batch Size"" value and number of indexed files, progress bar will move.<br />If progress bar does not move most likely reason is file permissions.<br /><strong>Utility binaries located in lib/apptrian/imageoptimizer must be executable which means you have to set right permissions on files inside this directory.</strong><br />If you are getting less than 100% despite you clicked ""Start Optimization Process"" button more than several times and the percentage is stuck to same value that means some of your files are corrupt. To find out which files are corrupt in ""Utility"" section for ""Log Utility Output"" select ""Yes"". Refresh your cache and click ""Start Optimization Process"" button again. After it is done you will find a list of corrupt files in<br />var/log/apptrian_imageoptimizer.log<br />You can inspect the log and fix the files yourself. Do not forget to set ""Log Utility Output"" back to ""No"".","Every time you click ""Start Optimization Process"" (or cron job executes) depending on ""Batch Size"" value and number of indexed files, progress bar will move.<br />If progress bar does not move most likely reason is file permissions.<br /><strong>Utility binaries located in lib/apptrian/imageoptimizer must be executable which means you have to set right permissions on files inside this directory.</strong><br />If you are getting less than 100% despite you clicked ""Start Optimization Process"" button more than several times and the percentage is stuck to same value that means some of your files are corrupt. To find out which files are corrupt in ""Utility"" section for ""Log Utility Output"" select ""Yes"". Refresh your cache and click ""Start Optimization Process"" button again. After it is done you will find a list of corrupt files in<br />var/log/apptrian_imageoptimizer.log<br />You can inspect the log and fix the files yourself. Do not forget to set ""Log Utility Output"" back to ""No""."
 
35
  "Cron Settings","Cron Settings"
36
  "Cron Expression","Cron Expression"
37
  "Cron expression used to trigger image optimization process. Example: 15 4 * * * (once a day at 4:15 AM)<br />WARNING! Do NOT change this if you do not know cron expressions.","Cron expression used to trigger image optimization process. Example: 15 4 * * * (once a day at 4:15 AM)<br />WARNING! Do NOT change this if you do not know cron expressions."
1
+ "Empty Index","Empty Index"
2
  "(%s of %s files)","(%s of %s files)"
3
  "Batch size must be an integer.","Batch size must be an integer."
4
  "Batch size must be greater than 0.","Batch size must be greater than 0."
14
  "Optimization operations completed successfully.","Optimization operations completed successfully."
15
  "Optimization failed.","Optimization failed."
16
  "Optimization failed because PHP exec() function is disabled.","Optimization failed because PHP exec() function is disabled."
17
+ "Empty index operation completed successfully.","Empty index operation completed successfully."
18
+ "Empty index operation failed.","Empty index operation failed."
19
  "Info","Info"
20
  "Image Optimizer","Image Optimizer"
21
  "Apptrian Extensions","Apptrian Extensions"
35
  "Progress Bar","Progress Bar"
36
  "Bar on the right represents how many images are optimized.","Bar on the right represents how many images are optimized."
37
  "Every time you click ""Start Optimization Process"" (or cron job executes) depending on ""Batch Size"" value and number of indexed files, progress bar will move.<br />If progress bar does not move most likely reason is file permissions.<br /><strong>Utility binaries located in lib/apptrian/imageoptimizer must be executable which means you have to set right permissions on files inside this directory.</strong><br />If you are getting less than 100% despite you clicked ""Start Optimization Process"" button more than several times and the percentage is stuck to same value that means some of your files are corrupt. To find out which files are corrupt in ""Utility"" section for ""Log Utility Output"" select ""Yes"". Refresh your cache and click ""Start Optimization Process"" button again. After it is done you will find a list of corrupt files in<br />var/log/apptrian_imageoptimizer.log<br />You can inspect the log and fix the files yourself. Do not forget to set ""Log Utility Output"" back to ""No"".","Every time you click ""Start Optimization Process"" (or cron job executes) depending on ""Batch Size"" value and number of indexed files, progress bar will move.<br />If progress bar does not move most likely reason is file permissions.<br /><strong>Utility binaries located in lib/apptrian/imageoptimizer must be executable which means you have to set right permissions on files inside this directory.</strong><br />If you are getting less than 100% despite you clicked ""Start Optimization Process"" button more than several times and the percentage is stuck to same value that means some of your files are corrupt. To find out which files are corrupt in ""Utility"" section for ""Log Utility Output"" select ""Yes"". Refresh your cache and click ""Start Optimization Process"" button again. After it is done you will find a list of corrupt files in<br />var/log/apptrian_imageoptimizer.log<br />You can inspect the log and fix the files yourself. Do not forget to set ""Log Utility Output"" back to ""No""."
38
+ "This resets above progress bar and you will have to index and optimize all images again.","This resets above progress bar and you will have to index and optimize all images again."
39
  "Cron Settings","Cron Settings"
40
  "Cron Expression","Cron Expression"
41
  "Cron expression used to trigger image optimization process. Example: 15 4 * * * (once a day at 4:15 AM)<br />WARNING! Do NOT change this if you do not know cron expressions.","Cron expression used to trigger image optimization process. Example: 15 4 * * * (once a day at 4:15 AM)<br />WARNING! Do NOT change this if you do not know cron expressions."
package.xml CHANGED
@@ -1,18 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Apptrian_Image_Optimizer</name>
4
- <version>1.2.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Optimize your images, reduce their file size without losing image quality and speed up your site.</summary>
10
  <description>Apptrian Image Optimizer will optimize your images (GIF, JPG, PNG) reduce their file size without losing image quality and speed up your site. Extension is very easy to install and use. You can optimize images by clicking a button in Magento Admin or automatically by a configurable cron job. If you are an advanced user you will be pleased to know that extension is fully configurable. You can change optimization options even swap utilities used for optimization with the ones you like. (By default our extension is using optimization utilities recommended by Google.)</description>
11
- <notes>* Fixed bug with paths over 100 characters and Magento Connect installer</notes>
 
 
 
12
  <authors><author><name>Apptrian</name><user>apptrian</user><email>apptrian@yahoo.com</email></author></authors>
13
- <date>2016-01-01</date>
14
- <time>17:46:06</time>
15
- <contents><target name="magecommunity"><dir name="Apptrian"><dir name="ImageOptimizer"><dir name="Block"><file name="About.php" hash="1f0b5893288d137da06c1e2bb567453c"/><dir name="Adminhtml"><dir name="Button"><file name="Optimize.php" hash="d504453c3196e73869535fe983c5c582"/><file name="Scan.php" hash="ad86aa58d3bf168979267b71a41e776f"/></dir><file name="Stats.php" hash="eb5c3fe7ca3594fb3e1cda2792a106f4"/></dir><file name="Info.php" hash="2fa4d61ebc33de6b010256ecfce136cd"/></dir><dir name="Helper"><file name="Data.php" hash="3e1ed29a9a2f197d93d4cd160931ab7e"/><file name="Utility.php" hash="64ac42fb3ca12f496bcfbc6c9231cc6f"/></dir><dir name="Model"><dir name="Config"><file name="Batchsize.php" hash="bf4ad042fc6502d1c8754050dd348129"/><file name="Cron.php" hash="1f28208e83c65a4951ce2ac8c6977c06"/><file name="Exactpath.php" hash="f2df473492a64874d025097f84a6580f"/><file name="Options.php" hash="06a85187be9f4f7855346fddfb92a409"/><file name="Path.php" hash="d78a4f4c86f9bf03a182084e05984d5f"/><file name="Paths.php" hash="01adac6aca5405469a1e6ae746d28a45"/><file name="Utility.php" hash="bd54ff212ca4766e35190be8322c8b54"/></dir><file name="Cron.php" hash="e0c7c76b32cdcfbb556c68b2c4b96eeb"/><file name="File.php" hash="b5b0538c12a027183c6ea156a81fc126"/><dir name="Resource"><dir name="File"><file name="Collection.php" hash="ef7c84bb8db1c7a4f079f0ac6c744818"/></dir><file name="File.php" hash="fc5647fe2bd389dc415dced7f6c62388"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Apptrian"><file name="ImgoptController.php" hash="cb72f7b4d96517de433f86f5cf872682"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="91890100c30a3d33d347de7bc70dccfa"/><file name="system.xml" hash="afdc48954fb89678c540cee02c7a5a3a"/></dir><dir name="sql"><dir name="apptrian_imageoptimizer_setup"><file name="install-1.0.0.php" hash="d34e04d6467ec06481042445ccfea24b"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="apptrian_imageoptimizer.xml" hash="c70fc8a1883d9fff18cdc18e54014361"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Apptrian_ImageOptimizer.xml" hash="672b4daccf2a9ab8c1560a7515f425ff"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Apptrian_ImageOptimizer.csv" hash="983cf769e514b358f76fb1d39fb03b53"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><file name="apptrian_imageoptimizer.css" hash="7999bc0f0da4cb9d4b36742aec20bb99"/></dir></dir></dir></dir></target><target name="magelib"><dir name="apptrian"><dir name="imageoptimizer"><dir name="elf32"><file name="gifsicle" hash="2583e5ceecf67a058fba2858986bb37f"/><file name="jpegoptim" hash="8a035613dd1a9467e5fe47c88a774104"/><file name="jpegtran" hash="fcef276e1f6b99d42d60abe373f37018"/><file name="optipng" hash="fb1334c73c7a91858a1816b05bfa3133"/></dir><dir name="elf64"><file name="gifsicle" hash="13adc57a621501a27a19443cb587ab2b"/><file name="jpegoptim" hash="8a035613dd1a9467e5fe47c88a774104"/><file name="jpegtran" hash="e6da2f02ac13237f7a8d91f0268ecf85"/><file name="optipng" hash="8fbf61c7e24f90128bbc138ddb671201"/></dir><dir name="win32"><file name="gifsicle.exe" hash="574a9274bbd4aec6a905b64b7da79617"/><file name="jpegoptim.exe" hash="cb4fa736e8b60aebfebff583d0ea6f34"/><file name="jpegtran.exe" hash="2ed29cb5dfb19ad21f3ba3d215f2453e"/><file name="libjpeg-62.dll" hash="48c64a6097bfbe8ca8eaa61ad7936aec"/><file name="optipng.exe" hash="e3d154829ea57a0bdd88b080f6851265"/></dir><dir name="win64"><file name="gifsicle.exe" hash="c7fe0fc6744a4e5303f8d924ee08a8d3"/><file name="jpegoptim.exe" hash="cb4fa736e8b60aebfebff583d0ea6f34"/><file name="jpegtran.exe" hash="dd709e653791c5a9ece818440f0ca089"/><file name="libjpeg-62.dll" hash="b4e05a1406a617e14b2ce7f6c28f382e"/><file name="optipng.exe" hash="e3d154829ea57a0bdd88b080f6851265"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Apptrian_Image_Optimizer</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Optimize your images, reduce their file size without losing image quality and speed up your site.</summary>
10
  <description>Apptrian Image Optimizer will optimize your images (GIF, JPG, PNG) reduce their file size without losing image quality and speed up your site. Extension is very easy to install and use. You can optimize images by clicking a button in Magento Admin or automatically by a configurable cron job. If you are an advanced user you will be pleased to know that extension is fully configurable. You can change optimization options even swap utilities used for optimization with the ones you like. (By default our extension is using optimization utilities recommended by Google.)</description>
11
+ <notes>+ Added "Empty Index" button&#xD;
12
+ * Fixed bug related to uppercase file extensions&#xD;
13
+ * Fixed bug with files which do not exist anymore and their removal from the index&#xD;
14
+ * Fixed bug with utility options validation regex for allowing "=" sign</notes>
15
  <authors><author><name>Apptrian</name><user>apptrian</user><email>apptrian@yahoo.com</email></author></authors>
16
+ <date>2016-02-24</date>
17
+ <time>15:53:03</time>
18
+ <contents><target name="magecommunity"><dir name="Apptrian"><dir name="ImageOptimizer"><dir name="Block"><file name="About.php" hash="1f0b5893288d137da06c1e2bb567453c"/><dir name="Adminhtml"><dir name="Button"><file name="Empty.php" hash="1edbc98ea90b7a599e4c597713786462"/><file name="Optimize.php" hash="d504453c3196e73869535fe983c5c582"/><file name="Scan.php" hash="ad86aa58d3bf168979267b71a41e776f"/></dir><file name="Stats.php" hash="eb5c3fe7ca3594fb3e1cda2792a106f4"/></dir><file name="Info.php" hash="d9bed38465be6f511085c2cf91a36b18"/></dir><dir name="Helper"><file name="Data.php" hash="c56530a2b82c4b79f70aebf14b65cc46"/><file name="Utility.php" hash="64ac42fb3ca12f496bcfbc6c9231cc6f"/></dir><dir name="Model"><dir name="Config"><file name="Batchsize.php" hash="bf4ad042fc6502d1c8754050dd348129"/><file name="Cron.php" hash="1f28208e83c65a4951ce2ac8c6977c06"/><file name="Exactpath.php" hash="f2df473492a64874d025097f84a6580f"/><file name="Options.php" hash="ff963ed03c1f87f35a5f8bac44b4f2fe"/><file name="Path.php" hash="d78a4f4c86f9bf03a182084e05984d5f"/><file name="Paths.php" hash="01adac6aca5405469a1e6ae746d28a45"/><file name="Utility.php" hash="bd54ff212ca4766e35190be8322c8b54"/></dir><file name="Cron.php" hash="e0c7c76b32cdcfbb556c68b2c4b96eeb"/><file name="File.php" hash="b5b0538c12a027183c6ea156a81fc126"/><dir name="Resource"><dir name="File"><file name="Collection.php" hash="ef7c84bb8db1c7a4f079f0ac6c744818"/></dir><file name="File.php" hash="5a27ea3c948ba57c9d0eec386d16df12"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Apptrian"><file name="ImgoptController.php" hash="652bd209086bc0b22b0bad9af4537510"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="3bd857b626d184530407e7be9d024544"/><file name="system.xml" hash="adb38ee54e2153f56b00b3e6b7959bfa"/></dir><dir name="sql"><dir name="apptrian_imageoptimizer_setup"><file name="install-1.0.0.php" hash="d34e04d6467ec06481042445ccfea24b"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="apptrian_imageoptimizer.xml" hash="c70fc8a1883d9fff18cdc18e54014361"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Apptrian_ImageOptimizer.xml" hash="672b4daccf2a9ab8c1560a7515f425ff"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Apptrian_ImageOptimizer.csv" hash="20f3eb4d9c683d264693d8409c424847"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><file name="apptrian_imageoptimizer.css" hash="7999bc0f0da4cb9d4b36742aec20bb99"/></dir></dir></dir></dir></target><target name="magelib"><dir name="apptrian"><dir name="imageoptimizer"><dir name="elf32"><file name="gifsicle" hash="2583e5ceecf67a058fba2858986bb37f"/><file name="jpegoptim" hash="8a035613dd1a9467e5fe47c88a774104"/><file name="jpegtran" hash="fcef276e1f6b99d42d60abe373f37018"/><file name="optipng" hash="fb1334c73c7a91858a1816b05bfa3133"/></dir><dir name="elf64"><file name="gifsicle" hash="13adc57a621501a27a19443cb587ab2b"/><file name="jpegoptim" hash="8a035613dd1a9467e5fe47c88a774104"/><file name="jpegtran" hash="e6da2f02ac13237f7a8d91f0268ecf85"/><file name="optipng" hash="8fbf61c7e24f90128bbc138ddb671201"/></dir><dir name="win32"><file name="gifsicle.exe" hash="574a9274bbd4aec6a905b64b7da79617"/><file name="jpegoptim.exe" hash="cb4fa736e8b60aebfebff583d0ea6f34"/><file name="jpegtran.exe" hash="2ed29cb5dfb19ad21f3ba3d215f2453e"/><file name="libjpeg-62.dll" hash="48c64a6097bfbe8ca8eaa61ad7936aec"/><file name="optipng.exe" hash="e3d154829ea57a0bdd88b080f6851265"/></dir><dir name="win64"><file name="gifsicle.exe" hash="c7fe0fc6744a4e5303f8d924ee08a8d3"/><file name="jpegoptim.exe" hash="cb4fa736e8b60aebfebff583d0ea6f34"/><file name="jpegtran.exe" hash="dd709e653791c5a9ece818440f0ca089"/><file name="libjpeg-62.dll" hash="b4e05a1406a617e14b2ce7f6c28f382e"/><file name="optipng.exe" hash="e3d154829ea57a0bdd88b080f6851265"/></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
21
  </package>