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 +15 -0
- app/code/community/Rapido/ImageOptimizer/Block/Images/List/Grid.php +27 -0
- app/code/community/Rapido/ImageOptimizer/Helper/.Data.php.swo +0 -0
- app/code/community/Rapido/ImageOptimizer/Helper/Data.php +16 -6
- app/code/community/Rapido/ImageOptimizer/Model/Observer.php +49 -0
- app/code/community/Rapido/ImageOptimizer/Model/Status.php +6 -0
- app/code/community/Rapido/ImageOptimizer/controllers/Tools/Image/OptimizerController.php +89 -0
- app/code/community/Rapido/ImageOptimizer/etc/config.xml +3 -3
- app/code/community/Rapido/ImageOptimizer/etc/system.xml +8 -0
- package.xml +5 -5
- shell/imageoptimizer.php +14 -4
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 |
-
|
|
|
118 |
}
|
119 |
try {
|
120 |
// Save converted file details
|
121 |
$object->save();
|
122 |
-
return true;
|
123 |
} catch (Exception $ex) {
|
124 |
// Error saving details
|
125 |
-
return
|
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' =>
|
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.
|
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/
|
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/
|
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.
|
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-
|
14 |
-
<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="
|
16 |
<compatible/>
|
17 |
-
<dependencies><required><php><min>5.
|
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 |
-
}
|
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
|
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(
|
|
|
|
|
|
|
|
|
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 |
-
}
|
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();
|