Version Notes
Release 2.4.0 notes:
- Provide free default transform field to extend default transformation capabilities
- Update documentation
- Update automated tests
Download this release
Release Info
Developer | Cloudinary |
Extension | Cloudinary_Cloudinary |
Version | 2.4.0 |
Comparing to | |
See all releases |
Code changes from version 2.3.0 to 2.4.0
- app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/System/Config/Form/Free.php +26 -0
- app/code/community/Cloudinary/Cloudinary/Model/Configuration.php +10 -1
- app/code/community/Cloudinary/Cloudinary/Model/SynchronisedMediaUnifier.php +2 -2
- app/code/community/Cloudinary/Cloudinary/Model/System/Config/Free.php +105 -0
- app/code/community/Cloudinary/Cloudinary/Model/System/Config/Source/Dropdown/Quality.php +4 -0
- app/code/community/Cloudinary/Cloudinary/controllers/Adminhtml/CloudinaryajaxController.php +61 -0
- app/code/community/Cloudinary/Cloudinary/etc/config.xml +1 -1
- app/code/community/Cloudinary/Cloudinary/etc/system.xml +10 -0
- app/design/adminhtml/default/default/template/cloudinary/system/config/free.phtml +99 -0
- lib/CloudinaryExtension/Image/Transformation.php +10 -2
- lib/CloudinaryExtension/Image/Transformation/Freeform.php +37 -0
- package.xml +8 -6
app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/System/Config/Form/Free.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Cloudinary_Cloudinary_Block_Adminhtml_System_Config_Form_Free extends Mage_Adminhtml_Block_System_Config_Form_Field
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
parent::__construct();
|
8 |
+
$this->setTemplate('cloudinary/system/config/free.phtml');
|
9 |
+
}
|
10 |
+
|
11 |
+
public function ajaxSampleSecretKey()
|
12 |
+
{
|
13 |
+
return Mage::getModel('adminhtml/url')->getSecretKey('cloudinaryajax', 'sample');
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Get the button and scripts contents
|
18 |
+
*
|
19 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
20 |
+
* @return string
|
21 |
+
*/
|
22 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
23 |
+
{
|
24 |
+
return sprintf('%s%s', $element->getElementHtml(), $this->_toHtml());
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Cloudinary/Cloudinary/Model/Configuration.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
use CloudinaryExtension\Cloud;
|
3 |
use CloudinaryExtension\ConfigurationBuilder;
|
4 |
use CloudinaryExtension\ConfigurationInterface;
|
@@ -8,6 +9,7 @@ use CloudinaryExtension\Image\Transformation\Dpr;
|
|
8 |
use CloudinaryExtension\Image\Transformation\FetchFormat;
|
9 |
use CloudinaryExtension\Image\Transformation\Gravity;
|
10 |
use CloudinaryExtension\Image\Transformation\Quality;
|
|
|
11 |
use CloudinaryExtension\Security\CloudinaryEnvironmentVariable;
|
12 |
use CloudinaryExtension\UploadConfig;
|
13 |
|
@@ -25,6 +27,7 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
|
|
25 |
const CONFIG_DEFAULT_FETCH_FORMAT = 'cloudinary/transformations/cloudinary_fetch_format';
|
26 |
const CONFIG_CDN_SUBDOMAIN = 'cloudinary/configuration/cloudinary_cdn_subdomain';
|
27 |
const CONFIG_FOLDERED_MIGRATION = 'cloudinary/configuration/cloudinary_foldered_migration';
|
|
|
28 |
|
29 |
private $environmentVariable;
|
30 |
|
@@ -60,7 +63,8 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
|
|
60 |
->withGravity(Gravity::fromString($this->getDefaultGravity()))
|
61 |
->withFetchFormat(FetchFormat::fromString($this->getFetchFormat()))
|
62 |
->withQuality(Quality::fromString($this->getImageQuality()))
|
63 |
-
->withDpr(Dpr::fromString($this->getImageDpr()))
|
|
|
64 |
|
65 |
if ($this->isSmartServing()){
|
66 |
$transformation
|
@@ -214,4 +218,9 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
|
|
214 |
{
|
215 |
return Mage::getStoreConfig(self::CONFIG_DEFAULT_DPR);
|
216 |
}
|
|
|
|
|
|
|
|
|
|
|
217 |
}
|
1 |
<?php
|
2 |
+
|
3 |
use CloudinaryExtension\Cloud;
|
4 |
use CloudinaryExtension\ConfigurationBuilder;
|
5 |
use CloudinaryExtension\ConfigurationInterface;
|
9 |
use CloudinaryExtension\Image\Transformation\FetchFormat;
|
10 |
use CloudinaryExtension\Image\Transformation\Gravity;
|
11 |
use CloudinaryExtension\Image\Transformation\Quality;
|
12 |
+
use CloudinaryExtension\Image\Transformation\Freeform;
|
13 |
use CloudinaryExtension\Security\CloudinaryEnvironmentVariable;
|
14 |
use CloudinaryExtension\UploadConfig;
|
15 |
|
27 |
const CONFIG_DEFAULT_FETCH_FORMAT = 'cloudinary/transformations/cloudinary_fetch_format';
|
28 |
const CONFIG_CDN_SUBDOMAIN = 'cloudinary/configuration/cloudinary_cdn_subdomain';
|
29 |
const CONFIG_FOLDERED_MIGRATION = 'cloudinary/configuration/cloudinary_foldered_migration';
|
30 |
+
const CONFIG_GLOBAL_FREEFORM = 'cloudinary/transformations/cloudinary_free_transform_global';
|
31 |
|
32 |
private $environmentVariable;
|
33 |
|
63 |
->withGravity(Gravity::fromString($this->getDefaultGravity()))
|
64 |
->withFetchFormat(FetchFormat::fromString($this->getFetchFormat()))
|
65 |
->withQuality(Quality::fromString($this->getImageQuality()))
|
66 |
+
->withDpr(Dpr::fromString($this->getImageDpr()))
|
67 |
+
->withFreeform(Freeform::fromString($this->getDefaultGlobalFreeform()));
|
68 |
|
69 |
if ($this->isSmartServing()){
|
70 |
$transformation
|
218 |
{
|
219 |
return Mage::getStoreConfig(self::CONFIG_DEFAULT_DPR);
|
220 |
}
|
221 |
+
|
222 |
+
private function getDefaultGlobalFreeform()
|
223 |
+
{
|
224 |
+
return Mage::getStoreConfig(self::CONFIG_GLOBAL_FREEFORM);
|
225 |
+
}
|
226 |
}
|
app/code/community/Cloudinary/Cloudinary/Model/SynchronisedMediaUnifier.php
CHANGED
@@ -35,7 +35,7 @@ class Cloudinary_Cloudinary_Model_SynchronisedMediaUnifier implements Synchroniz
|
|
35 |
return array_reduce(
|
36 |
$this->_synchronisedMediaRepositories,
|
37 |
function($carry, $synchronisedMediaRepository) {
|
38 |
-
return $carry
|
39 |
},
|
40 |
[]
|
41 |
);
|
@@ -49,7 +49,7 @@ class Cloudinary_Cloudinary_Model_SynchronisedMediaUnifier implements Synchroniz
|
|
49 |
return array_reduce(
|
50 |
$this->_synchronisedMediaRepositories,
|
51 |
function($carry, $synchronisedMediaRepository) {
|
52 |
-
return $carry
|
53 |
},
|
54 |
[]
|
55 |
);
|
35 |
return array_reduce(
|
36 |
$this->_synchronisedMediaRepositories,
|
37 |
function($carry, $synchronisedMediaRepository) {
|
38 |
+
return array_merge($carry, $synchronisedMediaRepository->findUnsynchronisedImages());
|
39 |
},
|
40 |
[]
|
41 |
);
|
49 |
return array_reduce(
|
50 |
$this->_synchronisedMediaRepositories,
|
51 |
function($carry, $synchronisedMediaRepository) {
|
52 |
+
return array_merge($carry, $synchronisedMediaRepository->findOrphanedSynchronisedImages());
|
53 |
},
|
54 |
[]
|
55 |
);
|
app/code/community/Cloudinary/Cloudinary/Model/System/Config/Free.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use CloudinaryExtension\CloudinaryImageProvider;
|
4 |
+
use CloudinaryExtension\ConfigurationInterface;
|
5 |
+
use CloudinaryExtension\Image;
|
6 |
+
use CloudinaryExtension\Image\Transformation;
|
7 |
+
use CloudinaryExtension\Image\Transformation\Freeform;
|
8 |
+
|
9 |
+
class Cloudinary_Cloudinary_Model_System_Config_Free extends Mage_Core_Model_Config_Data
|
10 |
+
{
|
11 |
+
const ERROR_FORMAT = 'Incorrect custom transform - %s';
|
12 |
+
const ERROR_DEFAULT = 'please update';
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @var ConfigurationInterface
|
16 |
+
*/
|
17 |
+
private $configuration;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @param string $resourceModel
|
21 |
+
*/
|
22 |
+
protected function _init($resourceModel)
|
23 |
+
{
|
24 |
+
$this->configuration = Mage::getModel('cloudinary_cloudinary/configuration');
|
25 |
+
return parent::_init($resourceModel);
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @return Mage_Core_Model_Abstract
|
30 |
+
*/
|
31 |
+
protected function _beforeSave()
|
32 |
+
{
|
33 |
+
if (!$this->hasAccountConfigured()) {
|
34 |
+
return parent::_beforeSave();
|
35 |
+
}
|
36 |
+
|
37 |
+
$transform = $this->configuration
|
38 |
+
->getDefaultTransformation()
|
39 |
+
->withFreeform(Freeform::fromString($this->getValue()));
|
40 |
+
|
41 |
+
$this->validateImageUrl($this->sampleImageUrl($transform));
|
42 |
+
|
43 |
+
return $this;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param string $url
|
48 |
+
*/
|
49 |
+
public function validateImageUrl($url)
|
50 |
+
{
|
51 |
+
try {
|
52 |
+
$response = $this->httpRequest($url);
|
53 |
+
} catch (Exception $e) {
|
54 |
+
throw new Mage_Core_Exception(sprintf(self::ERROR_FORMAT, self::ERROR_DEFAULT));
|
55 |
+
}
|
56 |
+
|
57 |
+
if ($response->isError()) {
|
58 |
+
throw new Mage_Core_Exception($this->formatError($response));
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @param Zend_Http_Response $response
|
64 |
+
* @return string
|
65 |
+
*/
|
66 |
+
public function formatError(Zend_Http_Response $response)
|
67 |
+
{
|
68 |
+
return sprintf(
|
69 |
+
self::ERROR_FORMAT,
|
70 |
+
$response->getStatus() == 400 ? $response->getHeader('x-cld-error') : self::ERROR_DEFAULT
|
71 |
+
);
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @param string $url
|
76 |
+
* @return Zend_Http_Response
|
77 |
+
*/
|
78 |
+
public function httpRequest($url)
|
79 |
+
{
|
80 |
+
$client = new Varien_Http_Client($url);
|
81 |
+
$client->setMethod(Varien_Http_Client::GET);
|
82 |
+
return $client->request();
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @return bool
|
87 |
+
*/
|
88 |
+
public function hasAccountConfigured()
|
89 |
+
{
|
90 |
+
return (string)$this->configuration->getCloud() !== '';
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @param Transformation $transformation
|
95 |
+
* @return string
|
96 |
+
*/
|
97 |
+
public function sampleImageUrl(Transformation $transformation)
|
98 |
+
{
|
99 |
+
$imageProvider = CloudinaryImageProvider::fromConfiguration($this->configuration);
|
100 |
+
return (string)$imageProvider->retrieveTransformed(
|
101 |
+
Image::fromPath('sample'),
|
102 |
+
$transformation
|
103 |
+
);
|
104 |
+
}
|
105 |
+
}
|
app/code/community/Cloudinary/Cloudinary/Model/System/Config/Source/Dropdown/Quality.php
CHANGED
@@ -41,6 +41,10 @@ class Cloudinary_Cloudinary_Model_System_Config_Source_Dropdown_Quality
|
|
41 |
'value' => '100',
|
42 |
'label' => '100%',
|
43 |
),
|
|
|
|
|
|
|
|
|
44 |
);
|
45 |
}
|
46 |
}
|
41 |
'value' => '100',
|
42 |
'label' => '100%',
|
43 |
),
|
44 |
+
array(
|
45 |
+
'value' => 'auto',
|
46 |
+
'label' => 'Auto',
|
47 |
+
),
|
48 |
);
|
49 |
}
|
50 |
}
|
app/code/community/Cloudinary/Cloudinary/controllers/Adminhtml/CloudinaryajaxController.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use CloudinaryExtension\Image\Transformation;
|
4 |
+
use CloudinaryExtension\Image\Transformation\Freeform;
|
5 |
+
|
6 |
+
class Cloudinary_Cloudinary_Adminhtml_CloudinaryajaxController extends Mage_Adminhtml_Controller_Action
|
7 |
+
{
|
8 |
+
public function sampleAction()
|
9 |
+
{
|
10 |
+
try {
|
11 |
+
$freeTransform = $this->getRequest()->getParam('free');
|
12 |
+
$freeModel = Mage::getModel('cloudinary_cloudinary/system_config_free');
|
13 |
+
$url = $freeModel->sampleImageUrl($this->defaultTransform($freeTransform));
|
14 |
+
$this->validate($freeModel, $url);
|
15 |
+
$this->jsonReponse(
|
16 |
+
200,
|
17 |
+
['url' => $url]
|
18 |
+
);
|
19 |
+
} catch (\Exception $e) {
|
20 |
+
$this->jsonReponse(401, ['error' => $e->getMessage()]);
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @param int $code
|
26 |
+
* @param array $payload
|
27 |
+
*/
|
28 |
+
private function jsonReponse($code, array $payload)
|
29 |
+
{
|
30 |
+
$this->getResponse()
|
31 |
+
->clearHeaders()
|
32 |
+
->setHeader('Content-type', 'application/json')
|
33 |
+
->setHttpResponseCode($code)
|
34 |
+
->setBody(Mage::helper('core')->jsonEncode($payload));
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @param string $freeTransforma
|
39 |
+
* @return Transformation
|
40 |
+
*/
|
41 |
+
private function defaultTransform($freeTransform)
|
42 |
+
{
|
43 |
+
return Mage::getModel('cloudinary_cloudinary/configuration')
|
44 |
+
->getDefaultTransformation()
|
45 |
+
->withFreeform(Freeform::fromString($freeTransform));
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* @param Cloudinary_Cloudinary_Model_System_Config_Free $model
|
50 |
+
* @param string $url
|
51 |
+
* @throws Exception
|
52 |
+
*/
|
53 |
+
private function validate(Cloudinary_Cloudinary_Model_System_Config_Free $model, $url)
|
54 |
+
{
|
55 |
+
if (!$model->hasAccountConfigured()) {
|
56 |
+
throw new \Exception('Cloudinary credentials required');
|
57 |
+
}
|
58 |
+
|
59 |
+
$model->validateImageUrl($url);
|
60 |
+
}
|
61 |
+
}
|
app/code/community/Cloudinary/Cloudinary/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Cloudinary_Cloudinary>
|
5 |
-
<version>2.
|
6 |
</Cloudinary_Cloudinary>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Cloudinary_Cloudinary>
|
5 |
+
<version>2.4.0</version>
|
6 |
</Cloudinary_Cloudinary>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Cloudinary/Cloudinary/etc/system.xml
CHANGED
@@ -124,6 +124,16 @@
|
|
124 |
<show_in_store>1</show_in_store>
|
125 |
<source_model>cloudinary_cloudinary/system_config_source_dropdown_dpr</source_model>
|
126 |
</cloudinary_image_dpr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
</fields>
|
128 |
</transformations>
|
129 |
</groups>
|
124 |
<show_in_store>1</show_in_store>
|
125 |
<source_model>cloudinary_cloudinary/system_config_source_dropdown_dpr</source_model>
|
126 |
</cloudinary_image_dpr>
|
127 |
+
<cloudinary_free_transform_global>
|
128 |
+
<label>Global custom transform</label>
|
129 |
+
<frontend_type>text</frontend_type>
|
130 |
+
<sort_order>5</sort_order>
|
131 |
+
<show_in_default>1</show_in_default>
|
132 |
+
<show_in_website>1</show_in_website>
|
133 |
+
<show_in_store>1</show_in_store>
|
134 |
+
<frontend_model>cloudinary_cloudinary/adminhtml_system_config_form_free</frontend_model>
|
135 |
+
<backend_model>cloudinary_cloudinary/system_config_free</backend_model>
|
136 |
+
</cloudinary_free_transform_global>
|
137 |
</fields>
|
138 |
</transformations>
|
139 |
</groups>
|
app/design/adminhtml/default/default/template/cloudinary/system/config/free.phtml
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<p class="note">
|
2 |
+
<span>
|
3 |
+
Custom transformations will be added to the default image transformations settings chosen above.<br />
|
4 |
+
For information about the full range of transforms available see the
|
5 |
+
<a href="http://cloudinary.com/documentation/image_transformation_reference" target="_blank">Cloudinary documentation</a>.
|
6 |
+
<br />
|
7 |
+
You may need to clear or rebuild the Magento block and full page caches to see the changes in the front end.
|
8 |
+
</span>
|
9 |
+
</p>
|
10 |
+
|
11 |
+
<button id="cloudinary_custom_transform_preview_button" title="Preview" type="button" class="scalable" onclick="cloudinary.updatePreview()" style="margin-top: 10px;">
|
12 |
+
<span><span><span>Preview custom transformation</span></span></span>
|
13 |
+
</button>
|
14 |
+
|
15 |
+
<div id="cloudinary_custom_transform_preview" style="margin-top: 10px;"></div>
|
16 |
+
|
17 |
+
<script language="javascript">
|
18 |
+
|
19 |
+
window.cloudinary = {
|
20 |
+
|
21 |
+
currentTransform: '',
|
22 |
+
|
23 |
+
secret: '<?php echo $this->ajaxSampleSecretKey(); ?>',
|
24 |
+
|
25 |
+
getTransformText: function() {
|
26 |
+
return $('cloudinary_transformations_cloudinary_free_transform_global').value
|
27 |
+
},
|
28 |
+
|
29 |
+
getSampleImageUrl: function() {
|
30 |
+
return '/admin/cloudinaryajax/sample/free/' + this.getTransformText() + '/key/' + this.secret;
|
31 |
+
},
|
32 |
+
|
33 |
+
getImageHtml: function(src) {
|
34 |
+
var id = 'cloudinary_custom_transform_preview_image',
|
35 |
+
style = 'width: auto; height: auto; max-width: 500px; max-height: 500px; min-height: 50px;',
|
36 |
+
footer = '<p>Image size restricted for viewing purposes</p>';
|
37 |
+
return '<img id="' + id + '" src="' + src + '" style="' + style + '" />' + footer;
|
38 |
+
},
|
39 |
+
|
40 |
+
getErrorHtml: function(message) {
|
41 |
+
return '<ul class="messages"><li class="error-msg">' + message + '</li></ul>';
|
42 |
+
},
|
43 |
+
|
44 |
+
updatePreviewImage: function(url) {
|
45 |
+
var $image = $('cloudinary_custom_transform_preview_image');
|
46 |
+
|
47 |
+
if (!$image) {
|
48 |
+
$('cloudinary_custom_transform_preview').update(this.getImageHtml(url));
|
49 |
+
} else {
|
50 |
+
$image.writeAttribute('src', url);
|
51 |
+
}
|
52 |
+
},
|
53 |
+
|
54 |
+
updatePreview: function() {
|
55 |
+
var self = this;
|
56 |
+
|
57 |
+
if (!self.isPreviewActive()) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
self.currentTransform = self.getTransformText();
|
62 |
+
self.setPreviewActiveState(false);
|
63 |
+
|
64 |
+
new Ajax.Request(this.getSampleImageUrl(), {
|
65 |
+
onSuccess: function(response) {
|
66 |
+
self.updatePreviewImage(response.responseJSON.url);
|
67 |
+
},
|
68 |
+
onFailure: function(response) {
|
69 |
+
$('cloudinary_custom_transform_preview').update(self.getErrorHtml(response.responseJSON.error));
|
70 |
+
}
|
71 |
+
});
|
72 |
+
},
|
73 |
+
|
74 |
+
setPreviewActiveState: function(state) {
|
75 |
+
if (state && (this.currentTransform !== this.getTransformText())) {
|
76 |
+
$('cloudinary_custom_transform_preview_button').removeClassName('disabled');
|
77 |
+
} else {
|
78 |
+
$('cloudinary_custom_transform_preview_button').addClassName('disabled');
|
79 |
+
}
|
80 |
+
},
|
81 |
+
|
82 |
+
isPreviewActive: function() {
|
83 |
+
return !$('cloudinary_custom_transform_preview_button').hasClassName('disabled');
|
84 |
+
},
|
85 |
+
|
86 |
+
addPreviewListener: function(id) {
|
87 |
+
var self = this;
|
88 |
+
|
89 |
+
$(id).on('change', function() { self.setPreviewActiveState(true); })
|
90 |
+
$(id).on('keydown', function() { self.setPreviewActiveState(true); })
|
91 |
+
$(id).on('paste', function() { self.setPreviewActiveState(true); })
|
92 |
+
$(id).on('input', function() { self.setPreviewActiveState(true); })
|
93 |
+
}
|
94 |
+
|
95 |
+
};
|
96 |
+
|
97 |
+
window.cloudinary.addPreviewListener('cloudinary_transformations_cloudinary_free_transform_global');
|
98 |
+
|
99 |
+
</script>
|
lib/CloudinaryExtension/Image/Transformation.php
CHANGED
@@ -9,6 +9,7 @@ use CloudinaryExtension\Image\Transformation\Format;
|
|
9 |
use CloudinaryExtension\Image\Transformation\Gravity;
|
10 |
use CloudinaryExtension\Image\Transformation\Quality;
|
11 |
use CloudinaryExtension\Image\Transformation\Crop;
|
|
|
12 |
|
13 |
class Transformation
|
14 |
{
|
@@ -19,6 +20,7 @@ class Transformation
|
|
19 |
private $quality;
|
20 |
private $dpr;
|
21 |
private $flags;
|
|
|
22 |
|
23 |
public function __construct()
|
24 |
{
|
@@ -63,6 +65,12 @@ class Transformation
|
|
63 |
return $this;
|
64 |
}
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
public function addFlags(array $flags = [])
|
67 |
{
|
68 |
$this->flags += $flags;
|
@@ -84,8 +92,8 @@ class Transformation
|
|
84 |
'width' => $this->dimensions ? $this->dimensions->getWidth() : null,
|
85 |
'height' => $this->dimensions ? $this->dimensions->getHeight() : null,
|
86 |
'dpr' => (string)$this->dpr,
|
87 |
-
'flags' => $this->flags
|
|
|
88 |
);
|
89 |
}
|
90 |
}
|
91 |
-
|
9 |
use CloudinaryExtension\Image\Transformation\Gravity;
|
10 |
use CloudinaryExtension\Image\Transformation\Quality;
|
11 |
use CloudinaryExtension\Image\Transformation\Crop;
|
12 |
+
use CloudinaryExtension\Image\Transformation\Freeform;
|
13 |
|
14 |
class Transformation
|
15 |
{
|
20 |
private $quality;
|
21 |
private $dpr;
|
22 |
private $flags;
|
23 |
+
private $freeform;
|
24 |
|
25 |
public function __construct()
|
26 |
{
|
65 |
return $this;
|
66 |
}
|
67 |
|
68 |
+
public function withFreeform(Freeform $freeform)
|
69 |
+
{
|
70 |
+
$this->freeform = $freeform;
|
71 |
+
return $this;
|
72 |
+
}
|
73 |
+
|
74 |
public function addFlags(array $flags = [])
|
75 |
{
|
76 |
$this->flags += $flags;
|
92 |
'width' => $this->dimensions ? $this->dimensions->getWidth() : null,
|
93 |
'height' => $this->dimensions ? $this->dimensions->getHeight() : null,
|
94 |
'dpr' => (string)$this->dpr,
|
95 |
+
'flags' => $this->flags,
|
96 |
+
'raw_transformation' => (string)$this->freeform
|
97 |
);
|
98 |
}
|
99 |
}
|
|
lib/CloudinaryExtension/Image/Transformation/Freeform.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CloudinaryExtension\Image\Transformation;
|
4 |
+
|
5 |
+
class Freeform
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @var string
|
9 |
+
*/
|
10 |
+
private $urlParameters;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Freeform constructor.
|
14 |
+
* @param string $urlParameters
|
15 |
+
*/
|
16 |
+
public function __construct($urlParameters)
|
17 |
+
{
|
18 |
+
$this->urlParameters = $urlParameters;
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @param string $value
|
23 |
+
* @return Freeform
|
24 |
+
*/
|
25 |
+
public static function fromString($value)
|
26 |
+
{
|
27 |
+
return new Freeform($value);
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
public function __toString()
|
34 |
+
{
|
35 |
+
return $this->urlParameters;
|
36 |
+
}
|
37 |
+
}
|
package.xml
CHANGED
@@ -1,20 +1,22 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Cloudinary_Cloudinary</name>
|
4 |
-
<version>2.
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT License (MITL)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Cloudinary - Image Management In The Cloud</summary>
|
10 |
<description>Cloudinary supercharges your images! Upload images to the cloud, deliver optimized via a fast CDN, perform smart resizing and apply effects.</description>
|
11 |
-
<notes> Release 2.
|
12 |
-
- Provide
|
|
|
|
|
13 |
</notes>
|
14 |
<authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
|
15 |
-
<date>2017-05-
|
16 |
-
<time>
|
17 |
-
<contents><target name="magecommunity"><dir name="Cloudinary"><dir name="Cloudinary"><dir name="Block"><dir name="Adminhtml"><dir name="Manage"><file name="Grid.php" hash="b6a05f6ba08c5ba0d08846a7b0a06776"/></dir><file name="Manage.php" hash="9cd8997737c1191cff57dc8530daa26c"/><dir name="Page"><file name="Menu.php" hash="891d6a4c075ba03c9a20658076c86ad0"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Foldered.php" hash="925c3c8b3938495afe4d2f917bd58f95"/></dir><file name="Signup.php" hash="ed6accbe7a4ce16bb0679eaf0c2dbb22"/></dir></dir></dir></dir><dir name="Helper"><file name="Autoloader.php" hash="393b3e2fc25e63ca28157152d2542b18"/><file name="Console.php" hash="7c909e3226c51c05d6da1f6ff9cbbfc9"/><file name="Cron.php" hash="805557370a2006b15444b7a62bbbc65a"/><file name="Data.php" hash="42c9d44f1bbe530e30cf5379846dea65"/><file name="Image.php" hash="af1c1d734793d6b08feaa7e1abd591d0"/></dir><dir name="Model"><dir name="AutoUploadMapping"><file name="Configuration.php" hash="a9c2e1176ec36cea6f5183b24793dc2d"/></dir><dir name="Catalog"><dir name="Product"><file name="Image.php" hash="b5d14bcb836158890152c9fed191f8bc"/><dir name="Media"><file name="Config.php" hash="c2dbac447d4a22c920c19b0d4eb2672e"/></dir><file name="Media.php" hash="05726616a07d7d08933e9654e6107283"/></dir></dir><dir name="Cms"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="792893f6b4e884a8e42847d457a6068c"/></dir></dir><file name="Synchronisation.php" hash="8d830a18f169a0ff5f7d865e3afcb710"/><dir name="Template"><file name="Filter.php" hash="c3fe64f98128043de13e92156a26ab02"/></dir><file name="Uploader.php" hash="021195c01a7e6fd9e72c5a30ebd11554"/><dir name="Wysiwyg"><dir name="Images"><file name="Storage.php" hash="0d23e557d6db06308886d9307fe92665"/></dir></dir></dir><file name="CollectionCounter.php" hash="e69953aee5d966a3ec13d33533f017e0"/><file name="Configuration.php" hash="2054e73d40d952cc0a4f5755107f2502"/><file name="Cron.php" hash="a7296d26862df0d382023d33496bb80a"/><dir name="Exception"><file name="BadFilePathException.php" hash="68135da8dfe2f0589a531b4bd36e3330"/></dir><file name="Image.php" hash="84d42417651e2feefdb1b0c048f61ca4"/><file name="Logger.php" hash="ab5e45b0769c9dbee33025a202a87fee"/><file name="MagentoFolderTranslator.php" hash="37219fc1804d6ad8d1686af8509e1963"/><file name="Migration.php" hash="30f671877307d93904fd823d01d35c1d"/><file name="MigrationError.php" hash="67eca6725679a5dae6eab65efae39c64"/><file name="Observer.php" hash="e8437f1dd16c3251f0b0d69a80aa8f8b"/><dir name="Resource"><dir name="Cms"><dir name="Synchronisation"><file name="Collection.php" hash="226db91ad96a348f0d937781358f9dec"/></dir></dir><dir name="Media"><file name="Collection.php" hash="f54d914a6f79c7b3ab51f822bf64de39"/></dir><file name="Migration.php" hash="69a545d0627016afc03ea097641aa749"/><dir name="MigrationError"><file name="Collection.php" hash="3c5ef530b18b4cd7763a610b84cd3d41"/></dir><file name="MigrationError.php" hash="e6de24a80cb0daed6ead44c699dce535"/><dir name="Synchronisation"><file name="Collection.php" hash="d16275121feb30e57b9b54122e26f05c"/></dir><file name="Synchronisation.php" hash="5b721d854d8f89bc3310e46081be7153"/></dir><file name="Synchronisation.php" hash="05414c5959efc7656b8e101617005d9a"/><file name="SynchronisedMediaUnifier.php" hash="899abd4ef47be0ce3604cfc8790c582a"/><file name="SynchronizationChecker.php" hash="f01a4eab976e491d201206ce838dc686"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Dropdown"><file name="Dpr.php" hash="2b9bfd5f836dbdb5d7224d298264f540"/><file name="Gravity.php" hash="c241498e2093640892170673cd7550cd"/><file name="Quality.php" hash="e0c5902f5c36c96fb8a8ba7cc741ce1f"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CloudinaryController.php" hash="d44f610256d0d7a5633a94977442787b"/></dir></dir><dir name="data"><dir name="cloudinary_setup"><file name="data-upgrade-0.1.0-0.1.1.php" hash="4c6ce6cd9ab0d94654afb4a398fb3d6c"/><file name="data-upgrade-1.1.2-1.1.3.php" hash="fe2026874346017303a8f41a9d0d6c0d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="46e365e2f4b1d543aad248dfcfb99c50"/><file name="config.xml" hash="769c420587a7088db6199738e4474e17"/><file name="system.xml" hash="2116e6b1db2dbaa826938abdafc3e418"/></dir><dir name="sql"><dir name="cloudinary_setup"><file name="install-0.1.0.php" hash="55d93b3dab573c2a932edbb5a2fa4865"/><file name="upgrade-0.1.0-0.1.1.php" hash="6c8d430fbf7b9714586b67db3d455008"/><file name="upgrade-1.1.3-1.1.4.php" hash="d6314fc1843b2061d0d04ae60c4d8091"/><file name="upgrade-1.1.4-1.1.5.php" hash="5b035e4b600cbbc743e9ff6a7b505230"/><file name="upgrade-1.1.5-1.1.6.php" hash="323c5e50635018be420cf524072f6a92"/><file name="upgrade-2.0.0-2.1.0.php" hash="9d053bed5099e064eed808a090755b03"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cloudinary_Cloudinary.xml" hash="9337962a4ccf8a43164d5d71dfd2d756"/></dir></target><target name="magelib"><dir name="CloudinaryExtension"><dir name="AutoUploadMapping"><file name="ApiClient.php" hash="c37bfa114f18192ad34422a277c86afa"/><file name="Configuration.php" hash="0c28915836a4d7ba4390f2831c86aa6f"/><file name="RequestProcessor.php" hash="ef82cf531a21b4879b9facadd8085070"/></dir><file name="Cloud.php" hash="59b0debf9ae297e4e824e39ba819b1d1"/><file name="CloudinaryImageManager.php" hash="94af20e7b144adc4a27ee011aabbefe3"/><file name="CloudinaryImageProvider.php" hash="c4199a5384e6c42316ab4c5c74ed35e3"/><file name="ConfigurationBuilder.php" hash="c8832b207d9228ef14b3c74100ee74c4"/><file name="ConfigurationInterface.php" hash="4129b1e282fb0000b78946f07baa740c"/><file name="CredentialValidator.php" hash="965b0bd024f668aabcc9f30ef2e3c240"/><file name="Credentials.php" hash="71054eb4af7b6496608ffd14912bdbe4"/><dir name="Exception"><file name="ApiError.php" hash="d6fb1e32ca96183e9800c3706de37206"/><file name="FileExists.php" hash="6969387c67deef15a378cb94b9d269ac"/><file name="InvalidCredentials.php" hash="abecc635a25f6c9896c605ad16e1f7d7"/><file name="MigrationError.php" hash="92ea7aa65f4e14e606fa107d33f3ad30"/></dir><file name="FolderTranslator.php" hash="19a335acf751d67bd7efe46829602490"/><dir name="Image"><file name="ImageFactory.php" hash="0a2e066331584d33a9c4ec03787fd6e5"/><file name="LocalImage.php" hash="ab9b814b1a006baf05b9904af3ebce74"/><file name="Synchronizable.php" hash="b842f71ed25718838233207b7748f1bf"/><file name="SynchronizationChecker.php" hash="f2c45545766a81fede68138cf84dd1af"/><dir name="Transformation"><file name="Crop.php" hash="84e57281780a57326c938ac776641e8b"/><file name="Dimensions.php" hash="86a36c564aa41a08da2cf383d611c060"/><file name="Dpr.php" hash="f78cd1bfabaf3088ca8d4af972bfd453"/><file name="FetchFormat.php" hash="c745a6d80b509755cb6ae9fe37b95d76"/><file name="Gravity.php" hash="c1c2adf4dbbeaa6b06d67d2014300559"/><file name="Quality.php" hash="23a857f3910aecf6e45645194ff7f54e"/></dir><file name="Transformation.php" hash="7037bb18dcf82ee729deb6a06344faab"/></dir><file name="Image.php" hash="3090cfbaa3b2a90b5ef4a2a94b165581"/><file name="ImageInterface.php" hash="4a7c7e39d7fda0b0fa99affcac78ec8c"/><file name="ImageProvider.php" hash="a615c472cdc8a6ad7d887133db35c262"/><dir name="Migration"><file name="BatchUploader.php" hash="87d9dcf1c07fb9975283d7e4f577f1b9"/><file name="Logger.php" hash="648b47bb065de0c81b386ac300b4f9a3"/><file name="Queue.php" hash="add92864192b0950c29c91ffe5e5a3ee"/><file name="SynchronizedMediaRepository.php" hash="6b4e07f253aad9b845c68d51a1ab4166"/><file name="Task.php" hash="ac11d06c531d48b38cf88f6e8f2bdc19"/></dir><dir name="Security"><file name="ApiSignature.php" hash="049c7db2684ec2a6cf5bb4efcd064951"/><file name="CloudinaryEnvironmentVariable.php" hash="418af61bdbcfef955df29ac47c54415b"/><file name="ConsoleUrl.php" hash="4e748cfe0f5a0aeab2307c623179c6f9"/><file name="EnvironmentVariable.php" hash="297fa60b819ffc028b9a32dae6eef63d"/><file name="Key.php" hash="ac3a50b59f2a7db1edcf30386759c7ec"/><file name="Secret.php" hash="b1010679976575d57752dbb07f1b94ed"/><file name="SignedConsoleUrl.php" hash="791e1f1080be23423c2ad87f431f6221"/></dir><file name="SynchroniseAssetsRepositoryInterface.php" hash="e0d8e270ae2c74214e82e53e04e3dc0f"/><file name="UploadConfig.php" hash="a68f1ea7b84574ec36a8d2fac9bd6054"/><file name="UploadResponseValidator.php" hash="2d20dba12898b277b20b010d24f18859"/><file name="UrlGenerator.php" hash="06d223e5628c68570a2af4f8fb2306ce"/><file name="ValidateRemoteUrlRequest.php" hash="c2e2eb712e5293ad508a23610dfbbd6d"/></dir><dir name="Cloudinary"><file name="Api.php" hash="d71322346c3625db7c3563cdad191e8c"/><file name="AuthToken.php" hash="bec8b856baf85d89a249c932c3eba39f"/><file name="Cloudinary.php" hash="f2ec7b7bc8fc7c978f7773c3d4ccc5dd"/><file name="CloudinaryField.php" hash="411714580d21b58115ab07737367173a"/><file name="Helpers.php" hash="4db8371fc84d34be49c8ea04eee7d6eb"/><file name="PreloadedFile.php" hash="73cc9e276f96553814f05eae592d11ee"/><file name="Uploader.php" hash="eae92a330d19654028a8d16410616421"/><file name="cacert.pem" hash="c4290b9deb70d0bef2f88b67fc68c8ec"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="cloudinary"><file name="cloudinary.xml" hash="e5a2def3fccdb6a365364dcf23964d08"/></dir></dir><dir name="template"><dir name="cloudinary"><file name="manage.phtml" hash="7630d346f45d7118748b647be3501fa3"/><dir name="system"><dir name="config"><file name="signup.phtml" hash="2a0e06990eb542f22531ac2ebb5996f5"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
|
18 |
<compatible/>
|
19 |
<dependencies><required><php><min>5.4.0</min><max>7.1.0</max></php></required></dependencies>
|
20 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Cloudinary_Cloudinary</name>
|
4 |
+
<version>2.4.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT License (MITL)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Cloudinary - Image Management In The Cloud</summary>
|
10 |
<description>Cloudinary supercharges your images! Upload images to the cloud, deliver optimized via a fast CDN, perform smart resizing and apply effects.</description>
|
11 |
+
<notes> Release 2.4.0 notes:
|
12 |
+
- Provide free default transform field to extend default transformation capabilities
|
13 |
+
- Update documentation
|
14 |
+
- Update automated tests
|
15 |
</notes>
|
16 |
<authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
|
17 |
+
<date>2017-05-24</date>
|
18 |
+
<time>10:42:40</time>
|
19 |
+
<contents><target name="magecommunity"><dir name="Cloudinary"><dir name="Cloudinary"><dir name="Block"><dir name="Adminhtml"><dir name="Manage"><file name="Grid.php" hash="b6a05f6ba08c5ba0d08846a7b0a06776"/></dir><file name="Manage.php" hash="9cd8997737c1191cff57dc8530daa26c"/><dir name="Page"><file name="Menu.php" hash="891d6a4c075ba03c9a20658076c86ad0"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Foldered.php" hash="925c3c8b3938495afe4d2f917bd58f95"/><file name="Free.php" hash="33a3aff8e241d6ca142c6dfb59c1a90b"/></dir><file name="Signup.php" hash="ed6accbe7a4ce16bb0679eaf0c2dbb22"/></dir></dir></dir></dir><dir name="Helper"><file name="Autoloader.php" hash="393b3e2fc25e63ca28157152d2542b18"/><file name="Console.php" hash="7c909e3226c51c05d6da1f6ff9cbbfc9"/><file name="Cron.php" hash="805557370a2006b15444b7a62bbbc65a"/><file name="Data.php" hash="42c9d44f1bbe530e30cf5379846dea65"/><file name="Image.php" hash="af1c1d734793d6b08feaa7e1abd591d0"/></dir><dir name="Model"><dir name="AutoUploadMapping"><file name="Configuration.php" hash="a9c2e1176ec36cea6f5183b24793dc2d"/></dir><dir name="Catalog"><dir name="Product"><file name="Image.php" hash="b5d14bcb836158890152c9fed191f8bc"/><dir name="Media"><file name="Config.php" hash="c2dbac447d4a22c920c19b0d4eb2672e"/></dir><file name="Media.php" hash="05726616a07d7d08933e9654e6107283"/></dir></dir><dir name="Cms"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="792893f6b4e884a8e42847d457a6068c"/></dir></dir><file name="Synchronisation.php" hash="8d830a18f169a0ff5f7d865e3afcb710"/><dir name="Template"><file name="Filter.php" hash="c3fe64f98128043de13e92156a26ab02"/></dir><file name="Uploader.php" hash="021195c01a7e6fd9e72c5a30ebd11554"/><dir name="Wysiwyg"><dir name="Images"><file name="Storage.php" hash="0d23e557d6db06308886d9307fe92665"/></dir></dir></dir><file name="CollectionCounter.php" hash="e69953aee5d966a3ec13d33533f017e0"/><file name="Configuration.php" hash="2a7dd1504e77f3e1b7ffd67e3a1b9f02"/><file name="Cron.php" hash="a7296d26862df0d382023d33496bb80a"/><dir name="Exception"><file name="BadFilePathException.php" hash="68135da8dfe2f0589a531b4bd36e3330"/></dir><file name="Image.php" hash="84d42417651e2feefdb1b0c048f61ca4"/><file name="Logger.php" hash="ab5e45b0769c9dbee33025a202a87fee"/><file name="MagentoFolderTranslator.php" hash="37219fc1804d6ad8d1686af8509e1963"/><file name="Migration.php" hash="30f671877307d93904fd823d01d35c1d"/><file name="MigrationError.php" hash="67eca6725679a5dae6eab65efae39c64"/><file name="Observer.php" hash="e8437f1dd16c3251f0b0d69a80aa8f8b"/><dir name="Resource"><dir name="Cms"><dir name="Synchronisation"><file name="Collection.php" hash="226db91ad96a348f0d937781358f9dec"/></dir></dir><dir name="Media"><file name="Collection.php" hash="f54d914a6f79c7b3ab51f822bf64de39"/></dir><file name="Migration.php" hash="69a545d0627016afc03ea097641aa749"/><dir name="MigrationError"><file name="Collection.php" hash="3c5ef530b18b4cd7763a610b84cd3d41"/></dir><file name="MigrationError.php" hash="e6de24a80cb0daed6ead44c699dce535"/><dir name="Synchronisation"><file name="Collection.php" hash="d16275121feb30e57b9b54122e26f05c"/></dir><file name="Synchronisation.php" hash="5b721d854d8f89bc3310e46081be7153"/></dir><file name="Synchronisation.php" hash="05414c5959efc7656b8e101617005d9a"/><file name="SynchronisedMediaUnifier.php" hash="4467ead90fe094ecbea9657266984492"/><file name="SynchronizationChecker.php" hash="f01a4eab976e491d201206ce838dc686"/><dir name="System"><dir name="Config"><file name="Free.php" hash="a4c47b0b5d60d2e40d12975c98d69eae"/><dir name="Source"><dir name="Dropdown"><file name="Dpr.php" hash="2b9bfd5f836dbdb5d7224d298264f540"/><file name="Gravity.php" hash="c241498e2093640892170673cd7550cd"/><file name="Quality.php" hash="09920e6156a1d6088879cdcea616e312"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CloudinaryController.php" hash="d44f610256d0d7a5633a94977442787b"/><file name="CloudinaryajaxController.php" hash="dbc6b59db79182a6e9069d4a63bc0c0d"/></dir></dir><dir name="data"><dir name="cloudinary_setup"><file name="data-upgrade-0.1.0-0.1.1.php" hash="4c6ce6cd9ab0d94654afb4a398fb3d6c"/><file name="data-upgrade-1.1.2-1.1.3.php" hash="fe2026874346017303a8f41a9d0d6c0d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="46e365e2f4b1d543aad248dfcfb99c50"/><file name="config.xml" hash="23eb36fc50149011960cad7e1fc5a392"/><file name="system.xml" hash="eebd58fc59405594c4599baee1c94365"/></dir><dir name="sql"><dir name="cloudinary_setup"><file name="install-0.1.0.php" hash="55d93b3dab573c2a932edbb5a2fa4865"/><file name="upgrade-0.1.0-0.1.1.php" hash="6c8d430fbf7b9714586b67db3d455008"/><file name="upgrade-1.1.3-1.1.4.php" hash="d6314fc1843b2061d0d04ae60c4d8091"/><file name="upgrade-1.1.4-1.1.5.php" hash="5b035e4b600cbbc743e9ff6a7b505230"/><file name="upgrade-1.1.5-1.1.6.php" hash="323c5e50635018be420cf524072f6a92"/><file name="upgrade-2.0.0-2.1.0.php" hash="9d053bed5099e064eed808a090755b03"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cloudinary_Cloudinary.xml" hash="9337962a4ccf8a43164d5d71dfd2d756"/></dir></target><target name="magelib"><dir name="CloudinaryExtension"><dir name="AutoUploadMapping"><file name="ApiClient.php" hash="c37bfa114f18192ad34422a277c86afa"/><file name="Configuration.php" hash="0c28915836a4d7ba4390f2831c86aa6f"/><file name="RequestProcessor.php" hash="ef82cf531a21b4879b9facadd8085070"/></dir><file name="Cloud.php" hash="59b0debf9ae297e4e824e39ba819b1d1"/><file name="CloudinaryImageManager.php" hash="94af20e7b144adc4a27ee011aabbefe3"/><file name="CloudinaryImageProvider.php" hash="c4199a5384e6c42316ab4c5c74ed35e3"/><file name="ConfigurationBuilder.php" hash="c8832b207d9228ef14b3c74100ee74c4"/><file name="ConfigurationInterface.php" hash="4129b1e282fb0000b78946f07baa740c"/><file name="CredentialValidator.php" hash="965b0bd024f668aabcc9f30ef2e3c240"/><file name="Credentials.php" hash="71054eb4af7b6496608ffd14912bdbe4"/><dir name="Exception"><file name="ApiError.php" hash="d6fb1e32ca96183e9800c3706de37206"/><file name="FileExists.php" hash="6969387c67deef15a378cb94b9d269ac"/><file name="InvalidCredentials.php" hash="abecc635a25f6c9896c605ad16e1f7d7"/><file name="MigrationError.php" hash="92ea7aa65f4e14e606fa107d33f3ad30"/></dir><file name="FolderTranslator.php" hash="19a335acf751d67bd7efe46829602490"/><dir name="Image"><file name="ImageFactory.php" hash="0a2e066331584d33a9c4ec03787fd6e5"/><file name="LocalImage.php" hash="ab9b814b1a006baf05b9904af3ebce74"/><file name="Synchronizable.php" hash="b842f71ed25718838233207b7748f1bf"/><file name="SynchronizationChecker.php" hash="f2c45545766a81fede68138cf84dd1af"/><dir name="Transformation"><file name="Crop.php" hash="84e57281780a57326c938ac776641e8b"/><file name="Dimensions.php" hash="86a36c564aa41a08da2cf383d611c060"/><file name="Dpr.php" hash="f78cd1bfabaf3088ca8d4af972bfd453"/><file name="FetchFormat.php" hash="c745a6d80b509755cb6ae9fe37b95d76"/><file name="Freeform.php" hash="fdcbcea659f8908af54f30492b306fb5"/><file name="Gravity.php" hash="c1c2adf4dbbeaa6b06d67d2014300559"/><file name="Quality.php" hash="23a857f3910aecf6e45645194ff7f54e"/></dir><file name="Transformation.php" hash="35d6080fe0824517319164f3ba4edb44"/></dir><file name="Image.php" hash="3090cfbaa3b2a90b5ef4a2a94b165581"/><file name="ImageInterface.php" hash="4a7c7e39d7fda0b0fa99affcac78ec8c"/><file name="ImageProvider.php" hash="a615c472cdc8a6ad7d887133db35c262"/><dir name="Migration"><file name="BatchUploader.php" hash="87d9dcf1c07fb9975283d7e4f577f1b9"/><file name="Logger.php" hash="648b47bb065de0c81b386ac300b4f9a3"/><file name="Queue.php" hash="add92864192b0950c29c91ffe5e5a3ee"/><file name="SynchronizedMediaRepository.php" hash="6b4e07f253aad9b845c68d51a1ab4166"/><file name="Task.php" hash="ac11d06c531d48b38cf88f6e8f2bdc19"/></dir><dir name="Security"><file name="ApiSignature.php" hash="049c7db2684ec2a6cf5bb4efcd064951"/><file name="CloudinaryEnvironmentVariable.php" hash="418af61bdbcfef955df29ac47c54415b"/><file name="ConsoleUrl.php" hash="4e748cfe0f5a0aeab2307c623179c6f9"/><file name="EnvironmentVariable.php" hash="297fa60b819ffc028b9a32dae6eef63d"/><file name="Key.php" hash="ac3a50b59f2a7db1edcf30386759c7ec"/><file name="Secret.php" hash="b1010679976575d57752dbb07f1b94ed"/><file name="SignedConsoleUrl.php" hash="791e1f1080be23423c2ad87f431f6221"/></dir><file name="SynchroniseAssetsRepositoryInterface.php" hash="e0d8e270ae2c74214e82e53e04e3dc0f"/><file name="UploadConfig.php" hash="a68f1ea7b84574ec36a8d2fac9bd6054"/><file name="UploadResponseValidator.php" hash="2d20dba12898b277b20b010d24f18859"/><file name="UrlGenerator.php" hash="06d223e5628c68570a2af4f8fb2306ce"/><file name="ValidateRemoteUrlRequest.php" hash="c2e2eb712e5293ad508a23610dfbbd6d"/></dir><dir name="Cloudinary"><file name="Api.php" hash="d71322346c3625db7c3563cdad191e8c"/><file name="AuthToken.php" hash="bec8b856baf85d89a249c932c3eba39f"/><file name="Cloudinary.php" hash="f2ec7b7bc8fc7c978f7773c3d4ccc5dd"/><file name="CloudinaryField.php" hash="411714580d21b58115ab07737367173a"/><file name="Helpers.php" hash="4db8371fc84d34be49c8ea04eee7d6eb"/><file name="PreloadedFile.php" hash="73cc9e276f96553814f05eae592d11ee"/><file name="Uploader.php" hash="eae92a330d19654028a8d16410616421"/><file name="cacert.pem" hash="c4290b9deb70d0bef2f88b67fc68c8ec"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="cloudinary"><file name="cloudinary.xml" hash="e5a2def3fccdb6a365364dcf23964d08"/></dir></dir><dir name="template"><dir name="cloudinary"><file name="manage.phtml" hash="7630d346f45d7118748b647be3501fa3"/><dir name="system"><dir name="config"><file name="free.phtml" hash="77ed47576496e0b28ff4eaf155ded5b6"/><file name="signup.phtml" hash="2a0e06990eb542f22531ac2ebb5996f5"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.4.0</min><max>7.1.0</max></php></required></dependencies>
|
22 |
</package>
|