Version Notes
Fixed a bug when ajax response contains ESI block and the ESI urls was encoded by json output.
Download this release
Release Info
Developer | LiteSpeed Technologies |
Extension | LiteSpeed_LiteMage |
Version | 1.3.2 |
Comparing to | |
See all releases |
Code changes from version 1.3.1 to 1.3.2
- app/code/community/Litespeed/Litemage/Block/Core/Esi.php +12 -1
- app/code/community/Litespeed/Litemage/Helper/Data.php +2 -1
- app/code/community/Litespeed/Litemage/Helper/Esi.php +17 -2
- app/code/community/Litespeed/Litemage/Model/EsiData.php +19 -3
- app/code/community/Litespeed/Litemage/Model/Observer/Esi.php +26 -11
- app/code/community/Litespeed/Litemage/controllers/EsiController.php +13 -0
- app/code/community/Litespeed/Litemage/etc/config.xml +2 -2
- app/code/community/Litespeed/Litemage/etc/system.xml +1 -1
- package.xml +5 -9
app/code/community/Litespeed/Litemage/Block/Core/Esi.php
CHANGED
@@ -30,7 +30,7 @@ class Litespeed_Litemage_Block_Core_Esi extends Mage_Core_Block_Abstract
|
|
30 |
public function initByPeer( $peer )
|
31 |
{
|
32 |
$this->_peer = $peer ;
|
33 |
-
|
34 |
|
35 |
$this->_layout = $peer->_layout ;
|
36 |
$this->_nameInLayout = $peer->_nameInLayout ;
|
@@ -71,4 +71,15 @@ class Litespeed_Litemage_Block_Core_Esi extends Mage_Core_Block_Abstract
|
|
71 |
return false ;
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
30 |
public function initByPeer( $peer )
|
31 |
{
|
32 |
$this->_peer = $peer ;
|
33 |
+
parent::setData('litemage_bconf', $peer->getData('litemage_bconf')) ;
|
34 |
|
35 |
$this->_layout = $peer->_layout ;
|
36 |
$this->_nameInLayout = $peer->_nameInLayout ;
|
71 |
return false ;
|
72 |
}
|
73 |
|
74 |
+
public function setData($key, $value=null)
|
75 |
+
{
|
76 |
+
if (is_scalar($key) && is_scalar($value)
|
77 |
+
&& ($key == 'form_action')) {
|
78 |
+
$bconf = $this->getData('litemage_bconf');
|
79 |
+
$bconf['extra'][$key] = $value;
|
80 |
+
parent::setData('litemage_bconf', $bconf);
|
81 |
+
}
|
82 |
+
return parent::setData($key, $value);
|
83 |
+
}
|
84 |
+
|
85 |
}
|
app/code/community/Litespeed/Litemage/Helper/Data.php
CHANGED
@@ -653,7 +653,8 @@ class Litespeed_Litemage_Helper_Data extends Mage_Core_Helper_Abstract
|
|
653 |
'access' => $tagdata['access'],
|
654 |
'valueonly' => $valueonly,
|
655 |
'bn' => $blockName,
|
656 |
-
'bt' => $blockType
|
|
|
657 |
) ;
|
658 |
if ( $startDynamic ) {
|
659 |
$bconf['pc'] = get_class($block) ;
|
653 |
'access' => $tagdata['access'],
|
654 |
'valueonly' => $valueonly,
|
655 |
'bn' => $blockName,
|
656 |
+
'bt' => $blockType,
|
657 |
+
'extra' => array()
|
658 |
) ;
|
659 |
if ( $startDynamic ) {
|
660 |
$bconf['pc'] = get_class($block) ;
|
app/code/community/Litespeed/Litemage/Helper/Esi.php
CHANGED
@@ -344,6 +344,9 @@ class Litespeed_Litemage_Helper_Esi
|
|
344 |
if (!empty($blockHandles)) {
|
345 |
$urlOptions['h'] = implode(',', $blockHandles);
|
346 |
}
|
|
|
|
|
|
|
347 |
$urlOptions = array_merge($urlOptions, $this->getEsiSharedParams());
|
348 |
|
349 |
$esiUrl = $this->_getSubReqUrl('litemage/esi/getBlock', $urlOptions) ;
|
@@ -600,8 +603,9 @@ class Litespeed_Litemage_Helper_Esi
|
|
600 |
$updated = true ;
|
601 |
}
|
602 |
|
603 |
-
if ( $updated )
|
604 |
$this->_setEsiOn() ;
|
|
|
605 |
|
606 |
if ( ($this->_cacheVars['flag'] & self::CHBM_ESI_ON) != 0 ) {
|
607 |
// no need to use comment, will be removed by minify extensions
|
@@ -621,8 +625,19 @@ class Litespeed_Litemage_Helper_Esi
|
|
621 |
$response->setBody($newbody);
|
622 |
}
|
623 |
else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
$response->setBody($combined . $tracker . $responseBody) ;
|
625 |
-
if ($this->_isDebug &&
|
626 |
$this->_config->debugMesg('_updateResponseBody failed to insert combined after <body>');
|
627 |
}
|
628 |
}
|
344 |
if (!empty($blockHandles)) {
|
345 |
$urlOptions['h'] = implode(',', $blockHandles);
|
346 |
}
|
347 |
+
if (!empty($bconf['extra'])) {
|
348 |
+
$urlOptions['extra'] = strtr(base64_encode(serialize($bconf['extra'])), '+/=', '-_,');
|
349 |
+
}
|
350 |
$urlOptions = array_merge($urlOptions, $this->getEsiSharedParams());
|
351 |
|
352 |
$esiUrl = $this->_getSubReqUrl('litemage/esi/getBlock', $urlOptions) ;
|
603 |
$updated = true ;
|
604 |
}
|
605 |
|
606 |
+
if ( $updated ) {
|
607 |
$this->_setEsiOn() ;
|
608 |
+
}
|
609 |
|
610 |
if ( ($this->_cacheVars['flag'] & self::CHBM_ESI_ON) != 0 ) {
|
611 |
// no need to use comment, will be removed by minify extensions
|
625 |
$response->setBody($newbody);
|
626 |
}
|
627 |
else {
|
628 |
+
$isAjax = $this->_cacheVars['internal']['is_ajax'];
|
629 |
+
// json output will add slashes
|
630 |
+
if ($isAjax) {
|
631 |
+
$responseBody = preg_replace_callback('|src=\'.*\\\/litemage\\\/esi\\\/.+\\\/>|',
|
632 |
+
function ($matches) {
|
633 |
+
$b = stripslashes($matches[0]);
|
634 |
+
$c = preg_replace('/\/esi\/([^\/]+)\//', '/esi/$1/ajax/strip/', $b);
|
635 |
+
return $c;
|
636 |
+
},
|
637 |
+
$responseBody);
|
638 |
+
}
|
639 |
$response->setBody($combined . $tracker . $responseBody) ;
|
640 |
+
if ($this->_isDebug && !$isAjax) {
|
641 |
$this->_config->debugMesg('_updateResponseBody failed to insert combined after <body>');
|
642 |
}
|
643 |
}
|
app/code/community/Litespeed/Litemage/Model/EsiData.php
CHANGED
@@ -155,6 +155,9 @@ class Litespeed_Litemage_Model_EsiData
|
|
155 |
public function setRawOutput($rawOutput, $responseCode = 200)
|
156 |
{
|
157 |
$this->_rawOutput = trim($rawOutput);
|
|
|
|
|
|
|
158 |
$this->_responseCode = $responseCode;
|
159 |
if ( $this->_cacheAttr['ttl'] > 0 && ($responseCode != 200)) { // for esi req, 301 and 404 also treat as error, nocache
|
160 |
$this->_cacheAttr['ttl'] = 0 ;
|
@@ -232,7 +235,9 @@ class Litespeed_Litemage_Model_EsiData
|
|
232 |
if ( isset($params['pt']) ) {
|
233 |
$this->_data['pt'] = $params['pt'] ; // dynamic block template
|
234 |
}
|
235 |
-
|
|
|
|
|
236 |
}
|
237 |
|
238 |
protected function _initMessage($params, $configHelper)
|
@@ -269,9 +274,16 @@ class Litespeed_Litemage_Model_EsiData
|
|
269 |
// else exception out
|
270 |
}
|
271 |
|
272 |
-
public function getData()
|
273 |
{
|
274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
|
277 |
protected function _initCombined($params)
|
@@ -342,6 +354,10 @@ class Litespeed_Litemage_Model_EsiData
|
|
342 |
$this->_exceptionOut('missing s_dp_dt') ;
|
343 |
}
|
344 |
}
|
|
|
|
|
|
|
|
|
345 |
return $dparams ;
|
346 |
}
|
347 |
|
155 |
public function setRawOutput($rawOutput, $responseCode = 200)
|
156 |
{
|
157 |
$this->_rawOutput = trim($rawOutput);
|
158 |
+
if (strlen($this->_rawOutput) && isset($this->_data['ajax']) && ($this->_data['ajax'] == 'strip')) {
|
159 |
+
$this->_rawOutput = addslashes($this->_rawOutput);
|
160 |
+
}
|
161 |
$this->_responseCode = $responseCode;
|
162 |
if ( $this->_cacheAttr['ttl'] > 0 && ($responseCode != 200)) { // for esi req, 301 and 404 also treat as error, nocache
|
163 |
$this->_cacheAttr['ttl'] = 0 ;
|
235 |
if ( isset($params['pt']) ) {
|
236 |
$this->_data['pt'] = $params['pt'] ; // dynamic block template
|
237 |
}
|
238 |
+
if ( isset($params['ajax'])) {
|
239 |
+
$this->_data['ajax'] = $params['ajax'];
|
240 |
+
}
|
241 |
}
|
242 |
|
243 |
protected function _initMessage($params, $configHelper)
|
274 |
// else exception out
|
275 |
}
|
276 |
|
277 |
+
public function getData($key='')
|
278 |
{
|
279 |
+
if ($key) {
|
280 |
+
if (isset($this->_data[$key]))
|
281 |
+
return $this->_data[$key];
|
282 |
+
else
|
283 |
+
return null;
|
284 |
+
}
|
285 |
+
else
|
286 |
+
return $this->_data;
|
287 |
}
|
288 |
|
289 |
protected function _initCombined($params)
|
354 |
$this->_exceptionOut('missing s_dp_dt') ;
|
355 |
}
|
356 |
}
|
357 |
+
if (isset($dparams['extra'])) {
|
358 |
+
$extra = base64_decode(strtr($dparams['extra'], '-_,', '+/='));
|
359 |
+
$this->_data['extra'] = unserialize($extra);
|
360 |
+
}
|
361 |
return $dparams ;
|
362 |
}
|
363 |
|
app/code/community/Litespeed/Litemage/Model/Observer/Esi.php
CHANGED
@@ -252,21 +252,36 @@ class Litespeed_Litemage_Model_Observer_Esi extends Varien_Event_Observer
|
|
252 |
|
253 |
// check controller level
|
254 |
$cacheable = false;
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
if ( !$cacheable ) {
|
262 |
return 'route not cacheable';
|
263 |
}
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
|
271 |
foreach ( $nocache[Litespeed_Litemage_Helper_Data::CFG_NOCACHE_URL] as $url ) {
|
272 |
if (substr($url, -1) == '*') {
|
252 |
|
253 |
// check controller level
|
254 |
$cacheable = false;
|
255 |
+
$exactMatch = false;
|
256 |
+
if (in_array($curActionName, $nocache[Litespeed_Litemage_Helper_Data::CFG_CACHE_ROUTE])) {
|
257 |
+
$cacheable = true;
|
258 |
+
$exactMatch = true;
|
259 |
+
}
|
260 |
+
else {
|
261 |
+
foreach ( $nocache[Litespeed_Litemage_Helper_Data::CFG_CACHE_ROUTE] as $route ) {
|
262 |
+
if ( strncmp($route, $curActionName, strlen($route)) == 0 ) {
|
263 |
+
$cacheable = true;
|
264 |
+
break;
|
265 |
+
}
|
266 |
+
}
|
267 |
+
}
|
268 |
if ( !$cacheable ) {
|
269 |
return 'route not cacheable';
|
270 |
}
|
271 |
|
272 |
+
if ($exactMatch) {
|
273 |
+
// only nocache exact match will override
|
274 |
+
if (in_array($curActionName, $nocache[Litespeed_Litemage_Helper_Data::CFG_NOCACHE_ROUTE])) {
|
275 |
+
return 'subroute disabled';
|
276 |
+
}
|
277 |
+
}
|
278 |
+
else {
|
279 |
+
foreach ( $nocache[Litespeed_Litemage_Helper_Data::CFG_NOCACHE_ROUTE] as $route ) {
|
280 |
+
if ( strncmp($route, $curActionName, strlen($route)) == 0 ) {
|
281 |
+
return 'subroute disabled';
|
282 |
+
}
|
283 |
+
}
|
284 |
+
}
|
285 |
|
286 |
foreach ( $nocache[Litespeed_Litemage_Helper_Data::CFG_NOCACHE_URL] as $url ) {
|
287 |
if (substr($url, -1) == '*') {
|
app/code/community/Litespeed/Litemage/controllers/EsiController.php
CHANGED
@@ -194,6 +194,9 @@ class Litespeed_Litemage_EsiController extends Mage_Core_Controller_Front_Action
|
|
194 |
return $out ;
|
195 |
}
|
196 |
try {
|
|
|
|
|
|
|
197 |
$out = $block->toHtml() ;
|
198 |
$tag = $esiData->getCacheAttribute('tag');
|
199 |
if ( $tag == 'E.cart' || $tag == 'E.toplinks') {
|
@@ -219,6 +222,13 @@ class Litespeed_Litemage_EsiController extends Mage_Core_Controller_Front_Action
|
|
219 |
|
220 |
return $out ;
|
221 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
|
223 |
// return esiUrl
|
224 |
protected function _setOriginalReq()
|
@@ -477,6 +487,9 @@ class Litespeed_Litemage_EsiController extends Mage_Core_Controller_Front_Action
|
|
477 |
{
|
478 |
$data = $esiData->getData() ;
|
479 |
$block = new $data['pc']() ;
|
|
|
|
|
|
|
480 |
if ( isset($data['pt']) ) {
|
481 |
$block->setTemplate($data['pt']) ;
|
482 |
$out = $block->renderView() ;
|
194 |
return $out ;
|
195 |
}
|
196 |
try {
|
197 |
+
if ($extra = $esiData->getData('extra')) {
|
198 |
+
$this->_setExtraBlockData($block, $extra);
|
199 |
+
}
|
200 |
$out = $block->toHtml() ;
|
201 |
$tag = $esiData->getCacheAttribute('tag');
|
202 |
if ( $tag == 'E.cart' || $tag == 'E.toplinks') {
|
222 |
|
223 |
return $out ;
|
224 |
}
|
225 |
+
|
226 |
+
protected function _setExtraBlockData($block, $extra)
|
227 |
+
{
|
228 |
+
foreach($extra as $key => $value) {
|
229 |
+
$block->setData($key, $value);
|
230 |
+
}
|
231 |
+
}
|
232 |
|
233 |
// return esiUrl
|
234 |
protected function _setOriginalReq()
|
487 |
{
|
488 |
$data = $esiData->getData() ;
|
489 |
$block = new $data['pc']() ;
|
490 |
+
if (isset($data['extra'])) {
|
491 |
+
$this->_setExtraBlockData($block, $data['extra']);
|
492 |
+
}
|
493 |
if ( isset($data['pt']) ) {
|
494 |
$block->setTemplate($data['pt']) ;
|
495 |
$out = $block->renderView() ;
|
app/code/community/Litespeed/Litemage/etc/config.xml
CHANGED
@@ -26,7 +26,7 @@
|
|
26 |
<config>
|
27 |
<modules>
|
28 |
<Litespeed_Litemage>
|
29 |
-
<version>1.3.
|
30 |
</Litespeed_Litemage>
|
31 |
</modules>
|
32 |
<global>
|
@@ -494,7 +494,7 @@
|
|
494 |
</warmup>
|
495 |
<default>
|
496 |
<!-- Full or partial match on controller full action name for cacheable routes. Space, return, and comma separated -->
|
497 |
-
<cache_routes><![CDATA[catalog cms]]></cache_routes>
|
498 |
<!-- Full or partial match on controller full action name for non-cacheable routes within cacheable routes. Space, return, and comma separated -->
|
499 |
<nocache_subroutes><![CDATA[catalog_product_compare catalogsearch]]></nocache_subroutes>
|
500 |
</default>
|
26 |
<config>
|
27 |
<modules>
|
28 |
<Litespeed_Litemage>
|
29 |
+
<version>1.3.2</version>
|
30 |
</Litespeed_Litemage>
|
31 |
</modules>
|
32 |
<global>
|
494 |
</warmup>
|
495 |
<default>
|
496 |
<!-- Full or partial match on controller full action name for cacheable routes. Space, return, and comma separated -->
|
497 |
+
<cache_routes><![CDATA[catalog cms catalogsearch_term_popular]]></cache_routes>
|
498 |
<!-- Full or partial match on controller full action name for non-cacheable routes within cacheable routes. Space, return, and comma separated -->
|
499 |
<nocache_subroutes><![CDATA[catalog_product_compare catalogsearch]]></nocache_subroutes>
|
500 |
</default>
|
app/code/community/Litespeed/Litemage/etc/system.xml
CHANGED
@@ -27,7 +27,7 @@
|
|
27 |
<config>
|
28 |
<tabs>
|
29 |
<Litespeed_Litemage translate="label">
|
30 |
-
<label>LiteMage Cache 1.3.
|
31 |
<sort_order>5000</sort_order>
|
32 |
</Litespeed_Litemage>
|
33 |
</tabs>
|
27 |
<config>
|
28 |
<tabs>
|
29 |
<Litespeed_Litemage translate="label">
|
30 |
+
<label>LiteMage Cache 1.3.2</label>
|
31 |
<sort_order>5000</sort_order>
|
32 |
</Litespeed_Litemage>
|
33 |
</tabs>
|
package.xml
CHANGED
@@ -1,22 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>LiteSpeed_LiteMage</name>
|
4 |
-
<version>1.3.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://opensource.org/licenses/GPL-3.0 ">GPL v3</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>LiteMage Cache speeds up Magento by automatically integrating Magento with LiteSpeed's superior ESI implementation.</summary>
|
10 |
<description>LiteMage Cache is a powerful Magento page caching utility built into LiteSpeed Web Server. It combines superior ESI implementation with easy set up. LiteMage Cache contains a number of optimizations, including combined subrequests, that give it faster, more efficient performance than other page caching utilities. In addition, because it is part of the web server, LiteMage Cache does away with the communication problems and overhead other page caching solutions suffer from. The LiteMage Magento extension then automatically integrates Magento installations with LiteSpeed's top-of-the-line ESI implementation, combining the greatest Magento performance enhancement possible with a painless set up.</description>
|
11 |
-
<notes>
|
12 |
-
New feature: allow separate cache copies for each defined user group. 
|
13 |
-
New feature: allow crawlers to warm a copy of the site for logged in users.
|
14 |
-
Improved generation of site urls.
|
15 |
-
Bug fix: Fixed a bug caused when ESI blocks have child blocks with special layout handles.</notes>
|
16 |
<authors><author><name>LiteSpeed Technologies</name><user>LiteSpeedTech</user><email>lsong@litespeedtech.com</email></author></authors>
|
17 |
-
<date>2016-
|
18 |
-
<time>
|
19 |
-
<contents><target name="magecommunity"><dir name="Litespeed"><dir name="Litemage"><dir name="Block"><dir name="Adminhtml"><dir name="Cache"><file name="Management.php" hash="126c636bebf6a1933f45781d6e95863d"/></dir><file name="ItemSave.php" hash="399a23c090fd92436793b1e0e38038a1"/></dir><dir name="Core"><file name="Dummy.php" hash="ae50751905056dd3eb34c3222d17a310"/><file name="Esi.php" hash="
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php></required></dependencies>
|
22 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>LiteSpeed_LiteMage</name>
|
4 |
+
<version>1.3.2</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://opensource.org/licenses/GPL-3.0 ">GPL v3</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>LiteMage Cache speeds up Magento by automatically integrating Magento with LiteSpeed's superior ESI implementation.</summary>
|
10 |
<description>LiteMage Cache is a powerful Magento page caching utility built into LiteSpeed Web Server. It combines superior ESI implementation with easy set up. LiteMage Cache contains a number of optimizations, including combined subrequests, that give it faster, more efficient performance than other page caching utilities. In addition, because it is part of the web server, LiteMage Cache does away with the communication problems and overhead other page caching solutions suffer from. The LiteMage Magento extension then automatically integrates Magento installations with LiteSpeed's top-of-the-line ESI implementation, combining the greatest Magento performance enhancement possible with a painless set up.</description>
|
11 |
+
<notes>Fixed a bug when ajax response contains ESI block and the ESI urls was encoded by json output.</notes>
|
|
|
|
|
|
|
|
|
12 |
<authors><author><name>LiteSpeed Technologies</name><user>LiteSpeedTech</user><email>lsong@litespeedtech.com</email></author></authors>
|
13 |
+
<date>2016-12-06</date>
|
14 |
+
<time>16:52:56</time>
|
15 |
+
<contents><target name="magecommunity"><dir name="Litespeed"><dir name="Litemage"><dir name="Block"><dir name="Adminhtml"><dir name="Cache"><file name="Management.php" hash="126c636bebf6a1933f45781d6e95863d"/></dir><file name="ItemSave.php" hash="399a23c090fd92436793b1e0e38038a1"/></dir><dir name="Core"><file name="Dummy.php" hash="ae50751905056dd3eb34c3222d17a310"/><file name="Esi.php" hash="f257f1214462984f13ea9b59aa321325"/><file name="Messages.php" hash="da581eb4adaa1ac4e2d4b86ff30f08d4"/><file name="Xml.php" hash="6c7d088368f06151be14609dde9afade"/></dir><dir name="Inject"><file name="Jsvar.php" hash="cc0590fe211c81d6d29de570503fe8fd"/><file name="Nickname.php" hash="deba1efffd6449b6492bb13aaca4658b"/></dir></dir><dir name="Helper"><file name="Data.php" hash="c0052930b14b703a783d193b3f77c62e"/><file name="Esi.php" hash="9f9ff71626e9f92cf1abea36f6dc6011"/><file name="Viewvary.php" hash="9dfe26a70510a1899f4dcde62d91a21d"/></dir><dir name="Model"><dir name="Config"><dir name="Backend"><file name="WarmUp.php" hash="663ecf7689115059eb94898f37adeb6f"/></dir><dir name="Source"><file name="CustomerGroup.php" hash="f28a5381d6b79f71c054b3072973041b"/><file name="EnableDebugLog.php" hash="27d4b6030f564dfae8c89a84264b1175"/><file name="EnableWarmUp.php" hash="f44aafa2f6ba65a0e4926b7635ff264d"/><file name="FlushCategory.php" hash="b8017a1859b320f05af272f4d4e442e2"/></dir></dir><file name="EsiData.php" hash="b5035683d77cf0840152e654dd431600"/><file name="EsiLayout.php" hash="26bef4ee2a873ecb26ba7f292cfe0fd6"/><dir name="Layout"><file name="EsiUpdate.php" hash="3c98a2961b08f0acb3d334ab932eb397"/><file name="Master.php" hash="5eb57ba3677b76468ccf6f74741dcc63"/><file name="Update.php" hash="a72d4beb502803532af5d1ac2a06a06e"/></dir><dir name="Observer"><file name="Cron.php" hash="82f12d28ef80dff943417b5d997eea36"/><file name="Esi.php" hash="9fd99d56cf3a68928c49198194c43e86"/><file name="Purge.php" hash="84e83b6aa28a72a6c8b86b0656d2f022"/></dir><file name="Session.php" hash="558a80fb45a532af59727ae5657cd380"/><file name="Translate.php" hash="35326b8d2214f516d7dba82519902529"/></dir><dir name="controllers"><file name="AdminController.php" hash="549098ba10e19b066a6d52eab0f7bbb6"/><dir name="Adminhtml"><file name="LitemageCacheController.php" hash="506c63ddec598d39fa8a1dd1e58549d9"/></dir><file name="EsiController.php" hash="caededa86a032af67b594ebb63c6e1ee"/></dir><dir name="etc"><file name="config.xml" hash="b43c42d919f6f2fec57d6cccc940f648"/><file name="system.xml" hash="51f2db730f6d5af87248ecd45ac53253"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="litemage.xml" hash="f4dd1848120e353da9a84a7fd5565093"/></dir><dir name="template"><dir name="litemage"><file name="cache_management.phtml" hash="478836f2a9aa54e6d1e3fbf2164bbfcc"/><file name="category_save.phtml" hash="b29d102b8f90ce4da881a30efa3b2838"/><file name="product_save.phtml" hash="01863cb9acd33ca51db4f2a26e233eec"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="litemage.xml" hash="4c840b12cc6246f68b1b028f0ef1056d"/></dir><dir name="template"><dir name="litemage"><dir name="inject"><file name="jsvar.phtml" hash="5bbd9992e7ba5925d09f21cf03237676"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Litespeed_Litemage.xml" hash="ba0c8904bc89219c6829e37cc14d9bdd"/></dir></target><target name="mage"><dir name="shell"><file name="litemage_purge.php" hash="fbcc05832098dfbda5d30bfe24973fab"/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php></required></dependencies>
|
18 |
</package>
|