Version Notes
Release 2.5.0 notes:
- Configurable logging
- Synchronisation cache
- Ensure images only deleted from Cloudinary when module active
- Provision to download log files from admin panel
Download this release
Release Info
Developer | Cloudinary |
Extension | Cloudinary_Cloudinary |
Version | 2.5.0 |
Comparing to | |
See all releases |
Code changes from version 2.4.0 to 2.5.0
- app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/Log.php +34 -0
- app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/Log/Grid.php +5 -0
- app/code/community/Cloudinary/Cloudinary/Model/Configuration.php +18 -0
- app/code/community/Cloudinary/Cloudinary/Model/Logger.php +53 -3
- app/code/community/Cloudinary/Cloudinary/Model/Observer.php +6 -0
- app/code/community/Cloudinary/Cloudinary/Model/SynchronizationChecker.php +51 -2
- app/code/community/Cloudinary/Cloudinary/controllers/Adminhtml/CloudinarylogController.php +124 -0
- app/code/community/Cloudinary/Cloudinary/etc/adminhtml.xml +7 -0
- app/code/community/Cloudinary/Cloudinary/etc/config.xml +14 -1
- app/code/community/Cloudinary/Cloudinary/etc/system.xml +28 -0
- app/design/adminhtml/default/default/layout/cloudinary/cloudinary.xml +14 -0
- app/design/adminhtml/default/default/template/cloudinary/log.phtml +50 -0
- package.xml +9 -8
app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/Log.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Cloudinary_Cloudinary_Block_Adminhtml_Log extends Mage_Adminhtml_Block_Widget_Grid_Container
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
$this->_blockGroup = 'cloudinary_cloudinary';
|
8 |
+
$this->_controller = 'adminhtml_log';
|
9 |
+
$this->_headerText = Mage::helper('cloudinary_cloudinary')->__('Logs');
|
10 |
+
|
11 |
+
parent::__construct();
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @param int $bytes
|
16 |
+
* @param int $precision
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
public function formatBytes($bytes, $precision = 2)
|
20 |
+
{
|
21 |
+
if ($bytes <= 0) {
|
22 |
+
return '0 Bytes';
|
23 |
+
}
|
24 |
+
|
25 |
+
$base = log((int)$bytes, 1024);
|
26 |
+
$suffixes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
27 |
+
|
28 |
+
return sprintf(
|
29 |
+
'%s %s',
|
30 |
+
round(pow(1024, $base - floor($base)), $precision),
|
31 |
+
$suffixes[floor($base)]
|
32 |
+
);
|
33 |
+
}
|
34 |
+
}
|
app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/Log/Grid.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Cloudinary_Cloudinary_Block_Adminhtml_Log_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
4 |
+
{
|
5 |
+
}
|
app/code/community/Cloudinary/Cloudinary/Model/Configuration.php
CHANGED
@@ -28,6 +28,8 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
|
|
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 |
|
@@ -167,6 +169,22 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
|
|
167 |
return Mage::getModel('cloudinary_cloudinary/autoUploadMapping_configuration')->isActive();
|
168 |
}
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
private function setStoreConfig($configPath, $value)
|
171 |
{
|
172 |
Mage::getModel('core/config')->saveConfig($configPath, $value)->reinit();
|
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 |
+
const CONFIG_LOG_ACTIVE = 'cloudinary/log/cloudinary_log_active';
|
32 |
+
const CONFIG_LOG_FILENAME = 'cloudinary/log/cloudinary_log_filename';
|
33 |
|
34 |
private $environmentVariable;
|
35 |
|
169 |
return Mage::getModel('cloudinary_cloudinary/autoUploadMapping_configuration')->isActive();
|
170 |
}
|
171 |
|
172 |
+
/**
|
173 |
+
* @return bool
|
174 |
+
*/
|
175 |
+
public function hasLoggingActive()
|
176 |
+
{
|
177 |
+
return Mage::getStoreConfig(self::CONFIG_LOG_ACTIVE) == "1";
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* @return string
|
182 |
+
*/
|
183 |
+
public function getLoggingFilename()
|
184 |
+
{
|
185 |
+
return Mage::getStoreConfig(self::CONFIG_LOG_FILENAME);
|
186 |
+
}
|
187 |
+
|
188 |
private function setStoreConfig($configPath, $value)
|
189 |
{
|
190 |
Mage::getModel('core/config')->saveConfig($configPath, $value)->reinit();
|
app/code/community/Cloudinary/Cloudinary/Model/Logger.php
CHANGED
@@ -3,22 +3,39 @@
|
|
3 |
class Cloudinary_Cloudinary_Model_Logger extends Mage_Core_Model_Abstract implements \CloudinaryExtension\Migration\Logger
|
4 |
{
|
5 |
const SIGNATURE_TEMPLATE = "%s::%s ";
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
7 |
public function warning($message, array $context = array())
|
8 |
{
|
9 |
-
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
12 |
public function notice($message, array $context = array())
|
13 |
{
|
14 |
-
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
public function error($message, array $context = array())
|
18 |
{
|
19 |
-
|
20 |
}
|
21 |
|
|
|
|
|
|
|
22 |
public function debugLog($message)
|
23 |
{
|
24 |
if (Mage::getIsDeveloperMode()){
|
@@ -26,6 +43,39 @@ class Cloudinary_Cloudinary_Model_Logger extends Mage_Core_Model_Abstract implem
|
|
26 |
}
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
/**
|
30 |
* Add extra information to a log entry: class and funcion name from which the log is called
|
31 |
* @return string
|
3 |
class Cloudinary_Cloudinary_Model_Logger extends Mage_Core_Model_Abstract implements \CloudinaryExtension\Migration\Logger
|
4 |
{
|
5 |
const SIGNATURE_TEMPLATE = "%s::%s ";
|
6 |
+
const ALPHANUM_REGEX = '/[^A-Za-z0-9]/';
|
7 |
+
const IGNORE_GLOBAL_LOG_FLAG = true;
|
8 |
|
9 |
+
/**
|
10 |
+
* @param string $message
|
11 |
+
* @param array $context
|
12 |
+
*/
|
13 |
public function warning($message, array $context = array())
|
14 |
{
|
15 |
+
$this->log($message, Zend_Log::WARN);
|
16 |
}
|
17 |
|
18 |
+
/**
|
19 |
+
* @param string $message
|
20 |
+
* @param array $context
|
21 |
+
*/
|
22 |
public function notice($message, array $context = array())
|
23 |
{
|
24 |
+
$this->log($message, Zend_Log::NOTICE);
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* @param string $message
|
29 |
+
* @param array $context
|
30 |
+
*/
|
31 |
public function error($message, array $context = array())
|
32 |
{
|
33 |
+
$this->log($message, Zend_Log::ERR);
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* @param string $message
|
38 |
+
*/
|
39 |
public function debugLog($message)
|
40 |
{
|
41 |
if (Mage::getIsDeveloperMode()){
|
43 |
}
|
44 |
}
|
45 |
|
46 |
+
/**
|
47 |
+
* @param string $message
|
48 |
+
* @param string $type
|
49 |
+
*/
|
50 |
+
private function log($message, $type)
|
51 |
+
{
|
52 |
+
if ($this->isActive()) {
|
53 |
+
Mage::log($message, $type, $this->filename(), self::IGNORE_GLOBAL_LOG_FLAG);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @return bool
|
59 |
+
*/
|
60 |
+
public function isActive()
|
61 |
+
{
|
62 |
+
return Mage::getModel('cloudinary_cloudinary/configuration')->hasLoggingActive();
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @return string|null
|
67 |
+
*/
|
68 |
+
public function filename()
|
69 |
+
{
|
70 |
+
$filename = preg_replace(
|
71 |
+
self::ALPHANUM_REGEX,
|
72 |
+
'',
|
73 |
+
Mage::getModel('cloudinary_cloudinary/configuration')->getLoggingFilename()
|
74 |
+
);
|
75 |
+
|
76 |
+
return $filename ? sprintf('%s.log', $filename) : null;
|
77 |
+
}
|
78 |
+
|
79 |
/**
|
80 |
* Add extra information to a log entry: class and funcion name from which the log is called
|
81 |
* @return string
|
app/code/community/Cloudinary/Cloudinary/Model/Observer.php
CHANGED
@@ -49,7 +49,13 @@ class Cloudinary_Cloudinary_Model_Observer extends Mage_Core_Model_Abstract
|
|
49 |
*/
|
50 |
public function deleteImagesFromCloudinary(EventObserver $event)
|
51 |
{
|
|
|
52 |
$configuration = Mage::getModel('cloudinary_cloudinary/configuration');
|
|
|
|
|
|
|
|
|
|
|
53 |
$imageProvider = CloudinaryImageProvider::fromConfiguration($configuration);
|
54 |
|
55 |
foreach ($this->getImagesToDelete($event->getProduct()) as $image) {
|
49 |
*/
|
50 |
public function deleteImagesFromCloudinary(EventObserver $event)
|
51 |
{
|
52 |
+
/** @var ConfigurationInterface $configuration */
|
53 |
$configuration = Mage::getModel('cloudinary_cloudinary/configuration');
|
54 |
+
|
55 |
+
if (!$configuration->isEnabled()) {
|
56 |
+
return;
|
57 |
+
}
|
58 |
+
|
59 |
$imageProvider = CloudinaryImageProvider::fromConfiguration($configuration);
|
60 |
|
61 |
foreach ($this->getImagesToDelete($event->getProduct()) as $image) {
|
app/code/community/Cloudinary/Cloudinary/Model/SynchronizationChecker.php
CHANGED
@@ -4,6 +4,13 @@ use CloudinaryExtension\Image\SynchronizationChecker as SynchronizationCheckerIn
|
|
4 |
|
5 |
class Cloudinary_Cloudinary_Model_SynchronizationChecker implements SynchronizationCheckerInterface
|
6 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
public function isSynchronized($imageName)
|
8 |
{
|
9 |
if (!$imageName) {
|
@@ -14,6 +21,29 @@ class Cloudinary_Cloudinary_Model_SynchronizationChecker implements Synchronizat
|
|
14 |
return true;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
$coll = Mage::getModel('cloudinary_cloudinary/synchronisation')->getCollection();
|
18 |
$table = $coll->getMainTable();
|
19 |
// case sensitive check
|
@@ -22,10 +52,29 @@ class Cloudinary_Cloudinary_Model_SynchronizationChecker implements Synchronizat
|
|
22 |
}
|
23 |
|
24 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
* @return bool
|
26 |
*/
|
27 |
-
private function
|
28 |
{
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
}
|
31 |
}
|
4 |
|
5 |
class Cloudinary_Cloudinary_Model_SynchronizationChecker implements SynchronizationCheckerInterface
|
6 |
{
|
7 |
+
const CACHE_NAME = 'cloudinary';
|
8 |
+
const CACHE_TAG = 'CLOUDINARY';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @param string $imageName
|
12 |
+
* @return bool
|
13 |
+
*/
|
14 |
public function isSynchronized($imageName)
|
15 |
{
|
16 |
if (!$imageName) {
|
21 |
return true;
|
22 |
}
|
23 |
|
24 |
+
$cache = Mage::app()->getCacheInstance();
|
25 |
+
|
26 |
+
if ($cache->canUse(self::CACHE_NAME)) {
|
27 |
+
return $this->cachedSynchronizationCheck($cache, $imageName);
|
28 |
+
}
|
29 |
+
|
30 |
+
return $this->synchronizationCheck($imageName);
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @return bool
|
35 |
+
*/
|
36 |
+
private function hasAutoUploadMapping()
|
37 |
+
{
|
38 |
+
return Mage::getModel('cloudinary_cloudinary/autoUploadMapping_configuration')->isActive();
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param $imageName
|
43 |
+
* @return bool
|
44 |
+
*/
|
45 |
+
private function synchronizationCheck($imageName)
|
46 |
+
{
|
47 |
$coll = Mage::getModel('cloudinary_cloudinary/synchronisation')->getCollection();
|
48 |
$table = $coll->getMainTable();
|
49 |
// case sensitive check
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
+
* @param string $imageName
|
56 |
+
* @return string
|
57 |
+
*/
|
58 |
+
private function cacheKey($imageName)
|
59 |
+
{
|
60 |
+
return sprintf('cloudinary_%s', md5($imageName));
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* @param Mage_Core_Model_Cache $cache
|
65 |
+
* @param string $imageName
|
66 |
* @return bool
|
67 |
*/
|
68 |
+
private function cachedSynchronizationCheck(Mage_Core_Model_Cache $cache, $imageName)
|
69 |
{
|
70 |
+
$key = $this->cacheKey($imageName);
|
71 |
+
$value = $cache->load($key);
|
72 |
+
|
73 |
+
if ($value === false) {
|
74 |
+
$value = $this->synchronizationCheck($imageName) ? '1' : '0';
|
75 |
+
$cache->save($value, $key, [self::CACHE_TAG]);
|
76 |
+
}
|
77 |
+
|
78 |
+
return $value === '1' ? true : false;
|
79 |
}
|
80 |
}
|
app/code/community/Cloudinary/Cloudinary/controllers/Adminhtml/CloudinarylogController.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Cloudinary_Cloudinary_Adminhtml_CloudinarylogController extends Mage_Adminhtml_Controller_Action
|
4 |
+
{
|
5 |
+
const LOG_MISSING_ERROR = 'No logs have been made to logfile: %s';
|
6 |
+
const LOG_PERMISSION_ERROR = 'The log file cannot be read by your web server. Please check file permissions.';
|
7 |
+
|
8 |
+
private function configurePage()
|
9 |
+
{
|
10 |
+
$this->_title($this->__('Download Cloudinary log file'))
|
11 |
+
->_setActiveMenu('cloudinary_cloudinary/log');
|
12 |
+
}
|
13 |
+
|
14 |
+
public function indexAction()
|
15 |
+
{
|
16 |
+
$this->loadLayout();
|
17 |
+
$this->configurePage();
|
18 |
+
|
19 |
+
$logSizeInBytes = 0;
|
20 |
+
$error = '';
|
21 |
+
$downloadUrl = Mage::helper('adminhtml')->getUrl('adminhtml/cloudinarylog/download');
|
22 |
+
$filename = $this->logFilename();
|
23 |
+
|
24 |
+
try {
|
25 |
+
$stat = $this->fileStat($filename, $this->logPath($filename));
|
26 |
+
$logSizeInBytes = $stat['size'];
|
27 |
+
} catch (Exception $e) {
|
28 |
+
$error = $e->getMessage();
|
29 |
+
}
|
30 |
+
|
31 |
+
$block = $this->getLayout()->getBlock('cloudinary_log');
|
32 |
+
$block->assign('logSizeInBytes', $logSizeInBytes);
|
33 |
+
$block->assign('error', $error);
|
34 |
+
$block->assign('downloadUrl', $downloadUrl);
|
35 |
+
$block->assign('name', $filename);
|
36 |
+
$block->assign('isActive', Mage::getModel('cloudinary_cloudinary/logger')->isActive());
|
37 |
+
|
38 |
+
$this->renderLayout();
|
39 |
+
}
|
40 |
+
|
41 |
+
public function downloadAction()
|
42 |
+
{
|
43 |
+
$filename = $this->logFilename();
|
44 |
+
$filepath = $this->logPath($filename);
|
45 |
+
|
46 |
+
try {
|
47 |
+
$this->_prepareDownloadResponse($filename, array('type' => 'filename', 'value' => $filepath));
|
48 |
+
} catch (Exception $e) {
|
49 |
+
$this->_getSession()->addError($e->getMessage());
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param $filename
|
55 |
+
* @param $filepath
|
56 |
+
* @return mixed
|
57 |
+
* @throws Exception
|
58 |
+
*/
|
59 |
+
private function fileStat($filename, $filepath)
|
60 |
+
{
|
61 |
+
$ioAdapter = new Varien_Io_File();
|
62 |
+
|
63 |
+
try {
|
64 |
+
$ioAdapter->open(array('path' => $ioAdapter->dirname($filepath)));
|
65 |
+
$this->validateFileExists($ioAdapter, $filepath);
|
66 |
+
} catch (Exception $e) {
|
67 |
+
throw new Exception(sprintf(self::LOG_MISSING_ERROR, $filename));
|
68 |
+
}
|
69 |
+
|
70 |
+
try {
|
71 |
+
$ioAdapter->streamOpen($filepath, 'r');
|
72 |
+
} catch (Exception $e) {
|
73 |
+
throw new Exception(self::LOG_PERMISSION_ERROR);
|
74 |
+
}
|
75 |
+
|
76 |
+
$stat = $ioAdapter->streamStat();
|
77 |
+
$ioAdapter->streamClose();
|
78 |
+
|
79 |
+
return $stat;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @param Varien_Io_File $adapter
|
84 |
+
* @param $filepath
|
85 |
+
* @throws Exception
|
86 |
+
*/
|
87 |
+
private function validateFileExists(Varien_Io_File $adapter, $filepath)
|
88 |
+
{
|
89 |
+
if (!$adapter->fileExists($filepath)) {
|
90 |
+
throw new Exception(sprintf(self::LOG_MISSING_ERROR, $filepath));
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* @param string $filename
|
96 |
+
* @return string
|
97 |
+
*/
|
98 |
+
private function logPath($filename)
|
99 |
+
{
|
100 |
+
return sprintf('%s%s', $this->logDirectory(), $filename);
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @return string
|
105 |
+
*/
|
106 |
+
private function logFilename()
|
107 |
+
{
|
108 |
+
$customLogFilename = Mage::getModel('cloudinary_cloudinary/logger')->filename();
|
109 |
+
|
110 |
+
if ($customLogFilename) {
|
111 |
+
return $customLogFilename;
|
112 |
+
}
|
113 |
+
|
114 |
+
return Mage::getStoreConfig('dev/log/file') ?: 'system.log';
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* @return string
|
119 |
+
*/
|
120 |
+
private function logDirectory()
|
121 |
+
{
|
122 |
+
return Mage::getBaseDir('var') . DS . 'log' . DS;
|
123 |
+
}
|
124 |
+
}
|
app/code/community/Cloudinary/Cloudinary/etc/adminhtml.xml
CHANGED
@@ -9,6 +9,10 @@
|
|
9 |
<title>Manage</title>
|
10 |
<action>adminhtml/cloudinary</action>
|
11 |
</cloudinary>
|
|
|
|
|
|
|
|
|
12 |
<console module="cloudinary_cloudinary">
|
13 |
<title>Open Cloudinary Console</title>
|
14 |
</console>
|
@@ -28,6 +32,9 @@
|
|
28 |
<cloudinary module="cloudinary_cloudinary">
|
29 |
<title>Manage</title>
|
30 |
</cloudinary>
|
|
|
|
|
|
|
31 |
<console module="cloudinary_cloudinary">
|
32 |
<title>Open Cloudinary Console</title>
|
33 |
</console>
|
9 |
<title>Manage</title>
|
10 |
<action>adminhtml/cloudinary</action>
|
11 |
</cloudinary>
|
12 |
+
<log>
|
13 |
+
<title>Logs</title>
|
14 |
+
<action>adminhtml/cloudinarylog</action>
|
15 |
+
</log>
|
16 |
<console module="cloudinary_cloudinary">
|
17 |
<title>Open Cloudinary Console</title>
|
18 |
</console>
|
32 |
<cloudinary module="cloudinary_cloudinary">
|
33 |
<title>Manage</title>
|
34 |
</cloudinary>
|
35 |
+
<log>
|
36 |
+
<title>Logs</title>
|
37 |
+
</log>
|
38 |
<console module="cloudinary_cloudinary">
|
39 |
<title>Open Cloudinary Console</title>
|
40 |
</console>
|
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>
|
@@ -115,6 +115,15 @@
|
|
115 |
</setup>
|
116 |
</cloudinary_setup>
|
117 |
</resources>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
</global>
|
119 |
<adminhtml>
|
120 |
<events>
|
@@ -157,6 +166,10 @@
|
|
157 |
<configuration>
|
158 |
<cloudinary_cdn_subdomain>1</cloudinary_cdn_subdomain>
|
159 |
</configuration>
|
|
|
|
|
|
|
|
|
160 |
</cloudinary>
|
161 |
</default>
|
162 |
<crontab>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Cloudinary_Cloudinary>
|
5 |
+
<version>2.5.0</version>
|
6 |
</Cloudinary_Cloudinary>
|
7 |
</modules>
|
8 |
<global>
|
115 |
</setup>
|
116 |
</cloudinary_setup>
|
117 |
</resources>
|
118 |
+
<cache>
|
119 |
+
<types>
|
120 |
+
<cloudinary translate="label,description" module="cloudinary">
|
121 |
+
<label>Cloudinary</label>
|
122 |
+
<description>Cache of all images migrated to Cloudinary. Not required when using auto upload mapping.</description>
|
123 |
+
<tags>CLOUDINARY</tags>
|
124 |
+
</cloudinary>
|
125 |
+
</types>
|
126 |
+
</cache>
|
127 |
</global>
|
128 |
<adminhtml>
|
129 |
<events>
|
166 |
<configuration>
|
167 |
<cloudinary_cdn_subdomain>1</cloudinary_cdn_subdomain>
|
168 |
</configuration>
|
169 |
+
<log>
|
170 |
+
<cloudinary_log_active>0</cloudinary_log_active>
|
171 |
+
<cloudinary_log_filename>cloudinary</cloudinary_log_filename>
|
172 |
+
</log>
|
173 |
</cloudinary>
|
174 |
</default>
|
175 |
<crontab>
|
app/code/community/Cloudinary/Cloudinary/etc/system.xml
CHANGED
@@ -136,6 +136,34 @@
|
|
136 |
</cloudinary_free_transform_global>
|
137 |
</fields>
|
138 |
</transformations>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
</groups>
|
140 |
</cloudinary>
|
141 |
</sections>
|
136 |
</cloudinary_free_transform_global>
|
137 |
</fields>
|
138 |
</transformations>
|
139 |
+
<log translate="label">
|
140 |
+
<label>Logging</label>
|
141 |
+
<show_in_default>1</show_in_default>
|
142 |
+
<sort_order>4</sort_order>
|
143 |
+
<show_in_website>1</show_in_website>
|
144 |
+
<show_in_store>1</show_in_store>
|
145 |
+
<fields>
|
146 |
+
<cloudinary_log_active>
|
147 |
+
<label>Enable Logging</label>
|
148 |
+
<frontend_type>select</frontend_type>
|
149 |
+
<sort_order>1</sort_order>
|
150 |
+
<show_in_default>1</show_in_default>
|
151 |
+
<show_in_website>1</show_in_website>
|
152 |
+
<show_in_store>1</show_in_store>
|
153 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
154 |
+
</cloudinary_log_active>
|
155 |
+
<cloudinary_log_filename>
|
156 |
+
<label>Filename for Logging</label>
|
157 |
+
<comment>Leave blank to use system default.</comment>
|
158 |
+
<frontend_type>text</frontend_type>
|
159 |
+
<validate>validate-alphanum</validate>
|
160 |
+
<sort_order>2</sort_order>
|
161 |
+
<show_in_default>1</show_in_default>
|
162 |
+
<show_in_website>1</show_in_website>
|
163 |
+
<show_in_store>1</show_in_store>
|
164 |
+
</cloudinary_log_filename>
|
165 |
+
</fields>
|
166 |
+
</log>
|
167 |
</groups>
|
168 |
</cloudinary>
|
169 |
</sections>
|
app/design/adminhtml/default/default/layout/cloudinary/cloudinary.xml
CHANGED
@@ -14,4 +14,18 @@
|
|
14 |
</action>
|
15 |
</reference>
|
16 |
</adminhtml_cloudinary_index>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
</layout>
|
14 |
</action>
|
15 |
</reference>
|
16 |
</adminhtml_cloudinary_index>
|
17 |
+
<adminhtml_cloudinarylog_index>
|
18 |
+
<reference name="content">
|
19 |
+
<block type="cloudinary_cloudinary/adminhtml_log" name="cloudinary_log" template="cloudinary/log.phtml"></block>
|
20 |
+
</reference>
|
21 |
+
<reference name="head">
|
22 |
+
<action method="addItem">
|
23 |
+
<type>js_css</type>
|
24 |
+
<name>prototype/windows/themes/default.css</name>
|
25 |
+
</action>
|
26 |
+
<action method="addCss">
|
27 |
+
<name>lib/prototype/windows/themes/magento.css</name>
|
28 |
+
</action>
|
29 |
+
</reference>
|
30 |
+
</adminhtml_cloudinarylog_index>
|
31 |
</layout>
|
app/design/adminhtml/default/default/template/cloudinary/log.phtml
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$logSize = $error ? 'File does not exist' : $this->formatBytes($logSizeInBytes);
|
4 |
+
|
5 |
+
?>
|
6 |
+
|
7 |
+
<div class="content-header">
|
8 |
+
<table cellspacing="0">
|
9 |
+
<tbody>
|
10 |
+
<tr>
|
11 |
+
<td style="width:50%;"><h3 class="icon-head">Download log file</h3></td>
|
12 |
+
</tr>
|
13 |
+
</tbody>
|
14 |
+
</table>
|
15 |
+
</div>
|
16 |
+
|
17 |
+
<?php if ($error): ?>
|
18 |
+
<ul class="messages">
|
19 |
+
<li class="error-msg"><?php echo $error; ?></li>
|
20 |
+
</ul>
|
21 |
+
<?php endif ?>
|
22 |
+
|
23 |
+
<div class="grid">
|
24 |
+
<table cellspacing="0" class="data" style="width: 600px;">
|
25 |
+
<tbody>
|
26 |
+
<tr class="even">
|
27 |
+
<td>Cloudinary logging enabled</td>
|
28 |
+
<td><?php echo $isActive ? 'Yes' : 'No'; ?></td>
|
29 |
+
</tr>
|
30 |
+
|
31 |
+
<tr>
|
32 |
+
<td>Cloudinary logfile name</td>
|
33 |
+
<td><?php echo $name; ?></td>
|
34 |
+
</tr>
|
35 |
+
|
36 |
+
<tr class="even">
|
37 |
+
<td>Cloudinary logfile size</td>
|
38 |
+
<td><?php echo $logSize; ?></td>
|
39 |
+
</tr>
|
40 |
+
</tbody>
|
41 |
+
</table>
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<?php if (!$error && $logSizeInBytes): ?>
|
45 |
+
<div style="margin-top: 5px;">
|
46 |
+
<a class="form-button" href="<?php echo $downloadUrl; ?>" style="text-decoration: none;">
|
47 |
+
Download <?php echo $name; ?>
|
48 |
+
</a>
|
49 |
+
</div>
|
50 |
+
<?php endif ?>
|
package.xml
CHANGED
@@ -1,22 +1,23 @@
|
|
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 |
-
-
|
13 |
-
-
|
14 |
-
-
|
|
|
15 |
</notes>
|
16 |
<authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
|
17 |
-
<date>2017-
|
18 |
-
<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>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Cloudinary_Cloudinary</name>
|
4 |
+
<version>2.5.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.5.0 notes:
|
12 |
+
- Configurable logging
|
13 |
+
- Synchronisation cache
|
14 |
+
- Ensure images only deleted from Cloudinary when module active
|
15 |
+
- Provision to download log files from admin panel
|
16 |
</notes>
|
17 |
<authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
|
18 |
+
<date>2017-06-07</date>
|
19 |
+
<time>08:51:41</time>
|
20 |
+
<contents><target name="magecommunity"><dir name="Cloudinary"><dir name="Cloudinary"><dir name="Block"><dir name="Adminhtml"><dir name="Log"><file name="Grid.php" hash="1f8c277b31e21a8d28bcb57716a9a1f7"/></dir><file name="Log.php" hash="d76ab8c1f2ab39137a2726437c6e487a"/><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="4b8ac252cc6f92ff759dfbd15cd6427b"/><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="19f93cb1c0276bc522749ef60c03c351"/><file name="MagentoFolderTranslator.php" hash="37219fc1804d6ad8d1686af8509e1963"/><file name="Migration.php" hash="30f671877307d93904fd823d01d35c1d"/><file name="MigrationError.php" hash="67eca6725679a5dae6eab65efae39c64"/><file name="Observer.php" hash="495e2bed7358f9de02c7f5246504e6fe"/><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="35e9c5ad347357d92e921e65056303a6"/><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"/><file name="CloudinarylogController.php" hash="6178610f821e3d2a51985c45136b8ab1"/></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="d5a79ab9eb0a35136765515b658190a7"/><file name="config.xml" hash="f1341a286aff1223be229a6f358575f2"/><file name="system.xml" hash="f324ceb7e0149053ded243b7108d78ee"/></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="838ecf0a99f37118d4f0ddf36f0712ba"/></dir></dir><dir name="template"><dir name="cloudinary"><file name="log.phtml" hash="ca027cf9501afc17dda51355c0243771"/><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>
|
21 |
<compatible/>
|
22 |
<dependencies><required><php><min>5.4.0</min><max>7.1.0</max></php></required></dependencies>
|
23 |
</package>
|