rapido_image_optimizer - Version 15.125.3

Version Notes

stable version V2

Download this release

Release Info

Developer Ray Zhang
Extension rapido_image_optimizer
Version 15.125.3
Comparing to
See all releases


Code changes from version 15.98.2 to 15.125.3

app/code/community/Rapido/ImageOptimizer/Block/Api/Version.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Rapido_ImageOptimizer_Block_Api_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
4
+ {
5
+
6
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
7
+ {
8
+ $this->setElement($element);
9
+ return Mage::getConfig()->getModuleConfig("Rapido_ImageOptimizer")->version;
10
+ }
11
+
12
+
13
+
14
+
15
+ }
app/code/community/Rapido/ImageOptimizer/Block/Images/List/Grid.php CHANGED
@@ -106,6 +106,33 @@ class Rapido_ImageOptimizer_Block_Images_List_Grid extends Mage_Adminhtml_Block_
106
  return $this;
107
  }
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  public function getRowUrl($row)
110
  {
111
  return false;
106
  return $this;
107
  }
108
 
109
+ protected function _prepareMassaction()
110
+ {
111
+ $this->setMassactionIdField('entity_id');
112
+ $this->getMassactionBlock()->setFormFieldName('image_ids');
113
+ $this->getMassactionBlock()->setUseSelectAll(true);
114
+
115
+ $this->getMassactionBlock()->addItem(
116
+ 'revert',
117
+ array(
118
+ 'label' => Mage::helper('rapido_imageoptimizer')
119
+ ->__('Revert Image'),
120
+ 'url' => $this->getUrl('adminhtml/tools_image_optimizer/revert'),
121
+ )
122
+ );
123
+
124
+ $this->getMassactionBlock()->addItem(
125
+ 'retry',
126
+ array(
127
+ 'label' => Mage::helper('rapido_imageoptimizer')
128
+ ->__('Queue to optimize'),
129
+ 'url' => $this->getUrl('adminhtml/tools_image_optimizer/retry'),
130
+ )
131
+ );
132
+
133
+ return $this;
134
+ }
135
+
136
  public function getRowUrl($row)
137
  {
138
  return false;
app/code/community/Rapido/ImageOptimizer/Helper/.Data.php.swo ADDED
Binary file
app/code/community/Rapido/ImageOptimizer/Helper/Data.php CHANGED
@@ -8,6 +8,8 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
8
  protected $_excludedir = array();
9
  protected $auth = false;
10
 
 
 
11
  public function collectFiles()
12
  {
13
  $this->_ext = explode(",", $this->getConfig('extensions'));
@@ -59,6 +61,10 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
59
  ->setOriginalChecksum($file['checksum'])
60
  ->setOriginalSize($file['size']);
61
 
 
 
 
 
62
  try {
63
  $img->save();
64
  } catch (Exception $ex) {
@@ -99,12 +105,16 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
99
 
100
  public function convertImage($object)
101
  {
 
 
 
 
102
  $params = array();
103
  $params['file'] = $object->getFullPath();
104
 
105
  // Upload file to ImageConverter
106
  $converted = $this->upload($params);
107
-
108
  if ($converted['success'] == 1) {
109
  $object->setStatus(Rapido_ImageOptimizer_Model_Status::STATUS_PENDING);
110
 
@@ -114,16 +124,17 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
114
  ->setConvertedDate(now());
115
  }
116
  } else {
117
- return false;
 
118
  }
119
  try {
120
  // Save converted file details
121
  $object->save();
122
- return true;
123
  } catch (Exception $ex) {
124
  // Error saving details
125
- return false;
126
  }
 
127
  }
128
 
129
  public function downloadImage($object)
@@ -213,7 +224,6 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
213
  }
214
 
215
  $file = $opts['file'];
216
-
217
  unset($opts['file']);
218
 
219
  $opts['base_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
@@ -275,7 +285,7 @@ class Rapido_ImageOptimizer_Helper_Data extends Mage_Core_Helper_Abstract
275
  array(
276
  'strict' => false,
277
  'maxredirects' => 0,
278
- 'timeout' => 120,
279
  )
280
  );
281
 
8
  protected $_excludedir = array();
9
  protected $auth = false;
10
 
11
+ const MAX_FILE_SIZE = 16000000;
12
+
13
  public function collectFiles()
14
  {
15
  $this->_ext = explode(",", $this->getConfig('extensions'));
61
  ->setOriginalChecksum($file['checksum'])
62
  ->setOriginalSize($file['size']);
63
 
64
+ if ($file['size']>self::MAX_FILE_SIZE) {
65
+ $img->setStatus(Rapido_ImageOptimizer_Model_Status::STATUS_TOBIG);
66
+ }
67
+
68
  try {
69
  $img->save();
70
  } catch (Exception $ex) {
105
 
106
  public function convertImage($object)
107
  {
108
+ if (!$this->getAuth()) {
109
+ return false;
110
+ }
111
+
112
  $params = array();
113
  $params['file'] = $object->getFullPath();
114
 
115
  // Upload file to ImageConverter
116
  $converted = $this->upload($params);
117
+ $return = true;
118
  if ($converted['success'] == 1) {
119
  $object->setStatus(Rapido_ImageOptimizer_Model_Status::STATUS_PENDING);
120
 
124
  ->setConvertedDate(now());
125
  }
126
  } else {
127
+ $object->setStatus(Rapido_ImageOptimizer_Model_Status::STATUS_FAILED);
128
+ $return=false;
129
  }
130
  try {
131
  // Save converted file details
132
  $object->save();
 
133
  } catch (Exception $ex) {
134
  // Error saving details
135
+ $return=false;
136
  }
137
+ return $return;
138
  }
139
 
140
  public function downloadImage($object)
224
  }
225
 
226
  $file = $opts['file'];
 
227
  unset($opts['file']);
228
 
229
  $opts['base_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
285
  array(
286
  'strict' => false,
287
  'maxredirects' => 0,
288
+ 'timeout' => 10,
289
  )
290
  );
291
 
app/code/community/Rapido/ImageOptimizer/Model/Observer.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Rapido_ImageOptimizer_Model_Observer
4
+ {
5
+
6
+ public function collectFiles()
7
+ {
8
+ if (Mage::getStoreConfigFlag('cms/rapido_imageoptimizer/daily_collect_files')) {
9
+ Mage::helper('rapido_imageoptimizer')->collectFiles();
10
+ }
11
+ }
12
+
13
+ public function convertFiles()
14
+ {
15
+ if (Mage::getStoreConfigFlag('cms/rapido_imageoptimizer/hourly_convert_files')) {
16
+ $helper = Mage::helper('rapido_imageoptimizer');
17
+ $amount = Mage::getStoreConfig('cms/rapido_imageoptimizer/max_conversion_amount');
18
+
19
+ $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
20
+ ->addFilter('status', array('eq' => Rapido_ImageOptimizer_Model_Status::STATUS_NEW));
21
+ //->setOrder('original_size', 'DESC');
22
+ if ($amount > 0) {
23
+ $collection->setPageSize($amount);
24
+ }
25
+
26
+ $converted = 0;
27
+ foreach ($collection as $file) {
28
+ if ($helper->convertImage($file)) {
29
+ $converted++;
30
+ }
31
+ }
32
+
33
+ // Download converted images
34
+ $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
35
+ ->addFilter('status', array('eq' => Rapido_ImageOptimizer_Model_Status::STATUS_PENDING));
36
+
37
+ if ($amount > 0) {
38
+ $collection->setPageSize($amount);
39
+ }
40
+
41
+ $converted = 0;
42
+ foreach ($collection as $file) {
43
+ if ($helper->downloadImage($file)) {
44
+ $converted++;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
app/code/community/Rapido/ImageOptimizer/Model/Status.php CHANGED
@@ -7,6 +7,8 @@ class Rapido_ImageOptimizer_Model_Status
7
  const STATUS_CONVERTED = 1;
8
  const STATUS_PENDING = 2;
9
  const STATUS_FAILED = 3;
 
 
10
 
11
  public function toOptionArray()
12
  {
@@ -16,6 +18,8 @@ class Rapido_ImageOptimizer_Model_Status
16
  array('value' => self::STATUS_PENDING, 'label' => Mage::helper('rapido_imageoptimizer')->__('Converting')),
17
  array('value' => self::STATUS_CONVERTED, 'label' => Mage::helper('rapido_imageoptimizer')->__('Converted')),
18
  array('value' => self::STATUS_FAILED, 'label' => Mage::helper('rapido_imageoptimizer')->__('Failed')),
 
 
19
  );
20
  }
21
 
@@ -26,6 +30,8 @@ class Rapido_ImageOptimizer_Model_Status
26
  self::STATUS_PENDING => Mage::helper('rapido_imageoptimizer')->__('Converting'),
27
  self::STATUS_CONVERTED => Mage::helper('rapido_imageoptimizer')->__('Converted'),
28
  self::STATUS_FAILED => Mage::helper('rapido_imageoptimizer')->__('Failed'),
 
 
29
  );
30
  }
31
  }
7
  const STATUS_CONVERTED = 1;
8
  const STATUS_PENDING = 2;
9
  const STATUS_FAILED = 3;
10
+ const STATUS_REVERTED = 4;
11
+ const STATUS_TOBIG = 5;
12
 
13
  public function toOptionArray()
14
  {
18
  array('value' => self::STATUS_PENDING, 'label' => Mage::helper('rapido_imageoptimizer')->__('Converting')),
19
  array('value' => self::STATUS_CONVERTED, 'label' => Mage::helper('rapido_imageoptimizer')->__('Converted')),
20
  array('value' => self::STATUS_FAILED, 'label' => Mage::helper('rapido_imageoptimizer')->__('Failed')),
21
+ array('value' => self::STATUS_REVERTED, 'label' => Mage::helper('rapido_imageoptimizer')->__('Reverted')),
22
+ array('value' => self::STATUS_TOBIG, 'label' => Mage::helper('rapido_imageoptimizer')->__('Filesize to big')),
23
  );
24
  }
25
 
30
  self::STATUS_PENDING => Mage::helper('rapido_imageoptimizer')->__('Converting'),
31
  self::STATUS_CONVERTED => Mage::helper('rapido_imageoptimizer')->__('Converted'),
32
  self::STATUS_FAILED => Mage::helper('rapido_imageoptimizer')->__('Failed'),
33
+ self::STATUS_REVERTED => Mage::helper('rapido_imageoptimizer')->__('Reverted'),
34
+ self::STATUS_TOBIG => Mage::helper('rapido_imageoptimizer')->__('Filesize to big'),
35
  );
36
  }
37
  }
app/code/community/Rapido/ImageOptimizer/controllers/Tools/Image/OptimizerController.php CHANGED
@@ -33,4 +33,93 @@ class Rapido_ImageOptimizer_Tools_Image_OptimizerController extends Mage_Adminht
33
  }
34
  $this->_redirectReferer();
35
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  }
33
  }
34
  $this->_redirectReferer();
35
  }
36
+
37
+ public function retryAction()
38
+ {
39
+ $ids = $this->getRequest()->getPost('image_ids');
40
+
41
+ $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
42
+ ->addFieldToFilter('status', array('neq' => Rapido_ImageOptimizer_Model_Status::STATUS_CONVERTED))
43
+ ->addFieldToFilter('entity_id', array('IN' => $ids));
44
+
45
+ $collection->setDataToAll('status', Rapido_ImageOptimizer_Model_Status::STATUS_NEW);
46
+
47
+ try {
48
+ $collection->save();
49
+ Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Images queued for retry'));
50
+ } catch (Exception $ex) {
51
+ Mage::getSingleton('adminhtml/session')->addError($this->__('Error changing status'));
52
+ }
53
+
54
+ $this->_redirectReferer();
55
+ }
56
+
57
+ public function revertAction()
58
+ {
59
+ $ids = $this->getRequest()->getPost('image_ids');
60
+
61
+ $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
62
+ ->addFieldToFilter('entity_id', array('in' => $ids));
63
+
64
+ $error = 0;
65
+ $done = 0;
66
+ foreach ($collection as $image) {
67
+ if ($image->getStatus() == Rapido_ImageOptimizer_Model_Status::STATUS_CONVERTED) {
68
+ // Check if there is a backup file created
69
+ $realFileName = $image->getFullPath();
70
+ $originalFileName = $image->getFullPath() . '.original';
71
+ $tmpFileName = $image->getFullPath() . '.tmp';
72
+ if (!file_exists($originalFileName)) {
73
+ $error++;
74
+ Mage::log('Original file '.$originalFileName.' not found');
75
+ continue;
76
+ }
77
+ // Rename real file for extra backup (removed after rename)
78
+ try {
79
+ rename($realFileName, $tmpFileName);
80
+ } catch (Exception $ex) {
81
+ Mage::log($ex->getMessage());
82
+ $error++;
83
+ continue;
84
+ }
85
+
86
+ // Rename backup file to real filename
87
+ try {
88
+ rename($originalFileName, $realFileName);
89
+ } catch (Exception $ex) {
90
+ // If rename failed restore previous image
91
+ rename($tmpFileName, $realFileName);
92
+ Mage::log($ex->getMessage());
93
+ $error++;
94
+ }
95
+
96
+ // Remove tmp backup file
97
+ try {
98
+ unlink($tmpFileName);
99
+ } catch (Exception $ex) {
100
+ Mage::log($ex->getMessage());
101
+ }
102
+ $image->setStatus(Rapido_ImageOptimizer_Model_Status::STATUS_NEW);
103
+ $done++;
104
+ } else {
105
+ Mage::log($image->getData());
106
+ $error++;
107
+ }
108
+ }
109
+
110
+ try {
111
+ $collection->save();
112
+ } catch (Exception $ex) {
113
+ Mage::log($ex->getMessage());
114
+ }
115
+ if ($error>0) {
116
+ Mage::getSingleton('adminhtml/session')->addError($this->__('%s images failed to revert', $error));
117
+ }
118
+
119
+ if ($done>0) {
120
+ Mage::getSingleton('adminhtml/session')->addSuccess($this->__('%s images reverted', $done));
121
+ }
122
+
123
+ $this->_redirectReferer();
124
+ }
125
  }
app/code/community/Rapido/ImageOptimizer/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Rapido_ImageOptimizer>
5
- <version>15.98.1</version>
6
  </Rapido_ImageOptimizer>
7
  </modules>
8
 
@@ -73,7 +73,7 @@
73
  <cron_expr>30 3 * * *</cron_expr>
74
  </schedule>
75
  <run>
76
- <model>rapido_imageoptimizer/cron::collectFiles</model>
77
  </run>
78
  </rapido_imageoptimizer_collect>
79
  <rapido_imageoptimizer_convert>
@@ -81,7 +81,7 @@
81
  <cron_expr>* * * * *</cron_expr>
82
  </schedule>
83
  <run>
84
- <model>rapido_imageoptimizer/cron::convertFiles</model>
85
  </run>
86
  </rapido_imageoptimizer_convert>
87
  </jobs>
2
  <config>
3
  <modules>
4
  <Rapido_ImageOptimizer>
5
+ <version>15.125.3</version>
6
  </Rapido_ImageOptimizer>
7
  </modules>
8
 
73
  <cron_expr>30 3 * * *</cron_expr>
74
  </schedule>
75
  <run>
76
+ <model>rapido_imageoptimizer/observer::collectFiles</model>
77
  </run>
78
  </rapido_imageoptimizer_collect>
79
  <rapido_imageoptimizer_convert>
81
  <cron_expr>* * * * *</cron_expr>
82
  </schedule>
83
  <run>
84
+ <model>rapido_imageoptimizer/observer::convertFiles</model>
85
  </run>
86
  </rapido_imageoptimizer_convert>
87
  </jobs>
app/code/community/Rapido/ImageOptimizer/etc/system.xml CHANGED
@@ -11,6 +11,14 @@
11
  <show_in_website>0</show_in_website>
12
  <show_in_store>0</show_in_store>
13
  <fields>
 
 
 
 
 
 
 
 
14
  <api_user translate="label comment">
15
  <label>API Username</label>
16
  <comment>Supplied API Username</comment>
11
  <show_in_website>0</show_in_website>
12
  <show_in_store>0</show_in_store>
13
  <fields>
14
+ <version>
15
+ <label>Extension Version</label>
16
+ <frontend_model>Rapido_ImageOptimizer_Block_Api_Version</frontend_model>
17
+ <sort_order>1</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>0</show_in_website>
20
+ <show_in_store>0</show_in_store>
21
+ </version>
22
  <api_user translate="label comment">
23
  <label>API Username</label>
24
  <comment>Supplied API Username</comment>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>rapido_image_optimizer</name>
4
- <version>15.98.2</version>
5
  <stability>stable</stability>
6
  <license>OSL v.3.0</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>Saving average more than 50% on your catalog, product or theming images. The Magento image optimizer is very easy to install and use. After a initial collection of all your images, Rapido will automatic optimize your image in the cloud and send back your new optimized image in the correct directory.</description>
11
  <notes>stable version V2</notes>
12
  <authors><author><name>Ray Bogman</name><user>ray</user><email>ray@rapido.nu</email></author><author><name>Vladimir Kerkhoff</name><user>vladimir</user><email>vladimir@rapido.nu</email></author></authors>
13
- <date>2015-04-30</date>
14
- <time>15:46:52</time>
15
- <contents><target name="mageetc"><dir name="modules"><file name="Rapido_ImageOptimizer.xml" hash="286537ce1815e69868528298e44823b1"/></dir></target><target name="magecommunity"><dir name="Rapido"><dir name="ImageOptimizer"><dir name="Block"><dir name="Api"><file name="Check.php" hash="60a28dce8ddcaaea2bf56db279def1b6"/></dir><dir name="Images"><dir name="List"><file name="Grid.php" hash="351aac2ae85f704156e80fa33aef4253"/><file name="Totals.php" hash="d6c3748a0f7a0c7706e57cf3895289f6"/></dir><file name="List.php" hash="d7370ef213beea7b47937c938eb5c742"/></dir></dir><dir name="Helper"><file name="Data.php" hash="ff388f9a3e135089b37115070d12701d"/></dir><dir name="Model"><file name="Cron.php" hash="7ad58f715c924fa3bd136a22578d42f4"/><file name="Images.php" hash="cac2e6eba424d2fad5784766a04a37e4"/><dir name="Resource"><dir name="Images"><file name="Collection.php" hash="d1147185c37a76404967ea2b97fda2e4"/></dir><file name="Images.php" hash="2b6103da1da24b25e1753b391c5475f6"/></dir><file name="Status.php" hash="474dab85d3da28ad13096ec3da82935c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Amount.php" hash="019a0cbd6db1e0a74343aa256186f870"/><file name="Extensions.php" hash="b61b25303820d60a2552948f3446949a"/></dir></dir></dir></dir><dir name="controllers"><dir name="Tools"><dir name="Image"><file name="OptimizerController.php" hash="cf527840d0d97f2e28dab03140f507d0"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="9243d31a493db1fd7667d47cb15e1929"/><file name="config.xml" hash="fb7953c7499a92b109591085be125acf"/><file name="system.xml" hash="14f7c018de58e44a58cd5cd21b9ef2e8"/></dir><dir name="sql"><dir name="rapido_imageoptimizer_setup"><file name="install-1.0.0.php" hash="d78f69c5bed79580d8ec87718a9fe664"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="rapido"><file name="imageoptimizer.xml" hash="7d7beb42d6fb83aa4843fcd9e82d7140"/></dir></dir><dir name="template"><dir name="rapido"><dir name="imageoptimizer"><file name="totals.phtml" hash="e5f565e62a6e26383e310c3d02952eac"/><dir name="widget"><dir name="grid"><file name="container.phtml" hash="2d66e4e4d9d6d69ffa40d968c19bc412"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="shell"><file name="imageoptimizer.php" hash="1ae38fa7d018bdba72838c02e30ba27a"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="rapido"><file name="imageoptimizer.css" hash="cfd060bbe60aae6f0c32af4cd5b00e91"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
- <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>rapido_image_optimizer</name>
4
+ <version>15.125.3</version>
5
  <stability>stable</stability>
6
  <license>OSL v.3.0</license>
7
  <channel>community</channel>
10
  <description>Saving average more than 50% on your catalog, product or theming images. The Magento image optimizer is very easy to install and use. After a initial collection of all your images, Rapido will automatic optimize your image in the cloud and send back your new optimized image in the correct directory.</description>
11
  <notes>stable version V2</notes>
12
  <authors><author><name>Ray Bogman</name><user>ray</user><email>ray@rapido.nu</email></author><author><name>Vladimir Kerkhoff</name><user>vladimir</user><email>vladimir@rapido.nu</email></author></authors>
13
+ <date>2015-05-06</date>
14
+ <time>08:18:08</time>
15
+ <contents><target name="mageetc"><dir name="modules"><file name="Rapido_ImageOptimizer.xml" hash="286537ce1815e69868528298e44823b1"/></dir></target><target name="magecommunity"><dir name="Rapido"><dir name="ImageOptimizer"><dir name="Block"><dir name="Api"><file name="Check.php" hash="60a28dce8ddcaaea2bf56db279def1b6"/><file name="Version.php" hash="a67af2e1efaa03b8c42e915b3d2edb99"/></dir><dir name="Images"><dir name="List"><file name="Grid.php" hash="6387d5a9b72c907475a48f17a944bdf7"/><file name="Totals.php" hash="d6c3748a0f7a0c7706e57cf3895289f6"/></dir><file name="List.php" hash="d7370ef213beea7b47937c938eb5c742"/></dir></dir><dir name="Helper"><file name="Data.php" hash="cc20b9de1466c421d49f6dc7399c60ad"/><file name=".Data.php.swo" hash="938843203987c1cc4375ca207af1e248"/></dir><dir name="Model"><file name="Cron.php" hash="7ad58f715c924fa3bd136a22578d42f4"/><file name="Images.php" hash="cac2e6eba424d2fad5784766a04a37e4"/><file name="Observer.php" hash="928f67581b63689d6eae2c5fb017335d"/><dir name="Resource"><dir name="Images"><file name="Collection.php" hash="d1147185c37a76404967ea2b97fda2e4"/></dir><file name="Images.php" hash="2b6103da1da24b25e1753b391c5475f6"/></dir><file name="Status.php" hash="fcab9d88496dba363a656350e78b917c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Amount.php" hash="019a0cbd6db1e0a74343aa256186f870"/><file name="Extensions.php" hash="b61b25303820d60a2552948f3446949a"/></dir></dir></dir></dir><dir name="controllers"><dir name="Tools"><dir name="Image"><file name="OptimizerController.php" hash="1b3bb78aec7858ddf8a6084e9b354e89"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="9243d31a493db1fd7667d47cb15e1929"/><file name="config.xml" hash="56c7b36061cf7a12b934e7807fdbdfd4"/><file name="system.xml" hash="02ea54c31d20a2776ee93417fef98b07"/></dir><dir name="sql"><dir name="rapido_imageoptimizer_setup"><file name="install-1.0.0.php" hash="d78f69c5bed79580d8ec87718a9fe664"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="rapido"><file name="imageoptimizer.xml" hash="7d7beb42d6fb83aa4843fcd9e82d7140"/></dir></dir><dir name="template"><dir name="rapido"><dir name="imageoptimizer"><file name="totals.phtml" hash="e5f565e62a6e26383e310c3d02952eac"/><dir name="widget"><dir name="grid"><file name="container.phtml" hash="2d66e4e4d9d6d69ffa40d968c19bc412"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="shell"><file name="imageoptimizer.php" hash="710c37c5338b15603fa96b3009c63436"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="rapido"><file name="imageoptimizer.css" hash="cfd060bbe60aae6f0c32af4cd5b00e91"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
+ <dependencies><required><php><min>5.4.0</min><max>5.5.0</max></php></required></dependencies>
18
  </package>
shell/imageoptimizer.php CHANGED
@@ -22,21 +22,31 @@ class Rapido_Shell_ImageOptimizer extends Mage_Shell_Abstract
22
  if (isset($this->_args['collect'])) {
23
  $amount = $helper->collectFiles();
24
  echo Mage::helper('rapido_imageoptimizer')->__('%s new image files collected!', $amount) . "\n\n";
25
- } else if (isset($this->_args['convert'])) {
26
  $amount = $this->getArg('amount');
 
27
 
28
  if (!$amount || $amount>500) {
29
  $amount = 500;
30
  }
31
 
 
 
 
 
 
32
  $converted = 0;
33
  $downloaded = 0;
34
- for ($i=0; $i<($amount/5); $i++) {
35
  // Convert files
36
  $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
37
  ->addFilter('status', array('eq' => Rapido_ImageOptimizer_Model_Status::STATUS_NEW))
38
  ->setOrder('original_size', 'DESC')
39
- ->setPageSize(5);
 
 
 
 
40
 
41
  foreach ($collection as $file) {
42
  if ($helper->convertImage($file)) {
@@ -62,7 +72,7 @@ class Rapido_Shell_ImageOptimizer extends Mage_Shell_Abstract
62
  $downloaded
63
  ) . "\n\n";
64
 
65
- } else if (isset($this->_args['test'])) {
66
  var_dump($helper->checkApi());
67
  } else {
68
  echo $this->usageHelp();
22
  if (isset($this->_args['collect'])) {
23
  $amount = $helper->collectFiles();
24
  echo Mage::helper('rapido_imageoptimizer')->__('%s new image files collected!', $amount) . "\n\n";
25
+ } elseif (isset($this->_args['convert'])) {
26
  $amount = $this->getArg('amount');
27
+ $id = $this->getArg('id');
28
 
29
  if (!$amount || $amount>500) {
30
  $amount = 500;
31
  }
32
 
33
+ $step = $amount;
34
+ if ($amount>5) {
35
+ $step = 5;
36
+ }
37
+
38
  $converted = 0;
39
  $downloaded = 0;
40
+ for ($i=0; $i<($amount/$step); $i++) {
41
  // Convert files
42
  $collection = Mage::getResourceModel('rapido_imageoptimizer/images_collection')
43
  ->addFilter('status', array('eq' => Rapido_ImageOptimizer_Model_Status::STATUS_NEW))
44
  ->setOrder('original_size', 'DESC')
45
+ ->setPageSize($step);
46
+
47
+ if ($id) {
48
+ $collection->addFilter('entity_id', $id);
49
+ }
50
 
51
  foreach ($collection as $file) {
52
  if ($helper->convertImage($file)) {
72
  $downloaded
73
  ) . "\n\n";
74
 
75
+ } elseif (isset($this->_args['test'])) {
76
  var_dump($helper->checkApi());
77
  } else {
78
  echo $this->usageHelp();