LiteSpeed_LiteMage - Version 1.1.1

Version Notes

Fixed a Crawler bug introduced in version 1.1 where the second round of crawling would not start properly until the cache was flushed.

Download this release

Release Info

Developer LiteSpeed Technologies
Extension LiteSpeed_LiteMage
Version 1.1.1
Comparing to
See all releases


Code changes from version 1.1.0 to 1.1.1

app/code/community/Litespeed/Litemage/Helper/Data.php CHANGED
@@ -280,7 +280,8 @@ class Litespeed_Litemage_Helper_Data extends Mage_Core_Helper_Abstract
280
  protected function _getStoreWarmUpInfo( $storeId, $vary_dev )
281
  {
282
  $storeInfo = array();
283
- if (!Mage::getStoreConfig(self::STOREXML_WARMUP_EANBLED, $storeId))
 
284
  return $storeInfo;
285
 
286
  $store = Mage::app()->getStore($storeId) ;
@@ -335,7 +336,6 @@ class Litespeed_Litemage_Helper_Data extends Mage_Core_Helper_Abstract
335
 
336
  $env = '' ;
337
 
338
- $priority = Mage::getStoreConfig(self::STOREXML_WARMUP_PRIORITY, $storeId) + $orderAdjust ;
339
  $storeName = $store->getName();
340
  if ( ! $is_default_store ) {
341
  $env .= '/store/' . $store->getCode() . '/storeId/' . $storeId ;
@@ -343,24 +343,29 @@ class Litespeed_Litemage_Helper_Data extends Mage_Core_Helper_Abstract
343
  $env .= $vary_curr . $vary_cgrp . $vary_dev ;
344
  $baseurl = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) ;
345
  $ttl = Mage::getStoreConfig(self::STOREXML_PUBLICTTL, $storeId) ;
346
- $interval = Mage::getStoreConfig(self::STOREXML_WARMUP_INTERVAL, $storeId) ;
347
- if ( $interval == '' || $interval < 600 ) { // for upgrade users, not refreshed conf
348
- $interval = $ttl ;
349
- }
350
 
351
- $listId = 'store' . $storeId ;
352
- $storeInfo[$listId] = array(
353
- 'id' => $listId,
354
- 'storeid' => $storeId,
355
- 'store_name' => $storeName,
356
- 'default_curr' => $default_currency,
357
- 'default_store' => $is_default_store,
358
- 'default_site' => $is_default_site,
359
- 'env' => $env,
360
- 'interval' => $interval,
361
- 'ttl' => $ttl,
362
- 'priority' => $priority,
363
- 'baseurl' => $baseurl) ;
 
 
 
 
 
 
 
 
 
364
 
365
  // check custom list
366
  $custlist = Mage::getStoreConfig(self::STOREXML_WARMUP_CUSTLIST, $storeId) ;
280
  protected function _getStoreWarmUpInfo( $storeId, $vary_dev )
281
  {
282
  $storeInfo = array();
283
+ $enabled = Mage::getStoreConfig(self::STOREXML_WARMUP_EANBLED, $storeId);
284
+ if ($enabled == 0)
285
  return $storeInfo;
286
 
287
  $store = Mage::app()->getStore($storeId) ;
336
 
337
  $env = '' ;
338
 
 
339
  $storeName = $store->getName();
340
  if ( ! $is_default_store ) {
341
  $env .= '/store/' . $store->getCode() . '/storeId/' . $storeId ;
343
  $env .= $vary_curr . $vary_cgrp . $vary_dev ;
344
  $baseurl = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) ;
345
  $ttl = Mage::getStoreConfig(self::STOREXML_PUBLICTTL, $storeId) ;
 
 
 
 
346
 
347
+ if ($enabled == 1) {
348
+ $priority = Mage::getStoreConfig(self::STOREXML_WARMUP_PRIORITY, $storeId) + $orderAdjust ;
349
+
350
+ $interval = Mage::getStoreConfig(self::STOREXML_WARMUP_INTERVAL, $storeId) ;
351
+ if ( $interval == '' || $interval < 600 ) { // for upgrade users, not refreshed conf
352
+ $interval = $ttl ;
353
+ }
354
+
355
+ $listId = 'store' . $storeId ;
356
+ $storeInfo[$listId] = array(
357
+ 'id' => $listId,
358
+ 'storeid' => $storeId,
359
+ 'store_name' => $storeName,
360
+ 'default_curr' => $default_currency,
361
+ 'default_store' => $is_default_store,
362
+ 'default_site' => $is_default_site,
363
+ 'env' => $env,
364
+ 'interval' => $interval,
365
+ 'ttl' => $ttl,
366
+ 'priority' => $priority,
367
+ 'baseurl' => $baseurl ) ;
368
+ }
369
 
370
  // check custom list
371
  $custlist = Mage::getStoreConfig(self::STOREXML_WARMUP_CUSTLIST, $storeId) ;
app/code/community/Litespeed/Litemage/Model/Config/Backend/WarmUp.php CHANGED
@@ -29,6 +29,9 @@ class Litespeed_Litemage_Model_Config_Backend_WarmUp extends Mage_Core_Model_Con
29
  protected function _beforeSave()
30
  {
31
  $value = $this->getValue();
 
 
 
32
  $lines = explode("\n", $value);
33
  $errs = array();
34
  foreach ($lines as $line) {
29
  protected function _beforeSave()
30
  {
31
  $value = $this->getValue();
32
+ if (trim($value) == '')
33
+ return $this;
34
+
35
  $lines = explode("\n", $value);
36
  $errs = array();
37
  foreach ($lines as $line) {
app/code/community/Litespeed/Litemage/Model/Observer/Cron.php CHANGED
@@ -196,12 +196,11 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
196
  }
197
 
198
  try {
199
- $client->multiRequest($urls, $curlOptions);
200
- } catch ( Exception $e ) {
201
- $endReason = 'Error when crawling url ' . implode(' ', $urls) . ' : ' . $e->getMessage();
202
- break ;
203
- }
204
-
205
 
206
  $this->_finishCurPosition() ;
207
 
@@ -217,6 +216,7 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
217
  break;
218
  }
219
  }
 
220
  }
221
  $this->_meta['endreason'] = $endReason;
222
 
@@ -235,10 +235,29 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
235
  return file_get_contents($filename);
236
  }
237
 
238
- protected function _saveCrawlListFileData($listId, $data)
239
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  $filename = $this->_listDir . DS . self::WARMUP_MAP_FILE . '_' . strtolower($listId);
241
- if (!file_put_contents($filename, $data)) {
242
  $this->_debugLog('Failed to save url map file ' . $filename);
243
  }
244
  else {
@@ -368,38 +387,37 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
368
  return $fixed;
369
  }
370
 
371
- protected function _getNextUrls(&$curCookie)
372
- {
373
- $id = $this->_curList['id'];
374
- if ($this->_meta[$id]['endtime'] > 0) {
375
- if ($this->_prepareCurList()) {
376
- return $this->_getNextUrls($curCookie);
 
377
  }
378
  else {
379
- return null;
380
  }
381
  }
382
 
383
- $curpos = $this->_meta[$id]['curpos'];
384
- $curCookie = $this->_curList['fixed'] . $this->_meta[$id]['curvary'];
385
- $urls = array_slice($this->_curList['urls'],
386
- $this->_meta[$id]['curpos'],
387
- $this->_curThreads);
388
- $this->_curList['working'] = count($urls);
389
 
390
- if (empty($urls)) {
391
- return null;
392
  }
393
  else {
394
- $baseurl = $this->_meta[$id]['baseurl'];
395
- foreach ($urls as $key => $val) {
396
- $urls[$key] = $baseurl . $val;
397
  }
 
398
  return $urls ;
399
  }
400
- }
401
 
402
- protected function _finishCurPosition()
403
  {
404
  $now = time();
405
  $id = $this->_curList['id'];
@@ -705,22 +723,7 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
705
  $produrls = array_unique($produrls);
706
  $urls = array_merge($urls, $produrls);
707
 
708
- $this->_meta[$listId]['listsize'] = count($urls);
709
- $this->_meta[$listId]['gentime'] = time();
710
- $this->_meta[$listId]['curpos'] = 0;
711
- //$this->_meta[$listId]['queried'] = 0;
712
- $this->_meta['lastupdate'] = $this->_meta[$listId]['gentime'];
713
- $header = $this->_meta[$listId]['gentime'] . "\t"
714
- . $this->_meta[$listId]['listsize'] . "\t"
715
- . $this->_meta[$listId]['env'] . "\n";
716
-
717
- if ( $this->_isDebug ) {
718
- $this->_debugLog('Generate url map for ' . $listId . ' url count =' . $this->_meta[$listId]['listsize']);
719
- }
720
-
721
- $buf = $header . implode("\n", $urls);
722
-
723
- $this->_saveCrawlListFileData($listId, $buf);
724
 
725
  return $urls;
726
  }
@@ -755,19 +758,7 @@ class Litespeed_Litemage_Model_Observer_Cron extends Varien_Event_Observer
755
  $urls = array_unique($urls);
756
  }
757
 
758
- $this->_meta[$listId]['listsize'] = count($urls);
759
- $this->_meta[$listId]['gentime'] = time();
760
- $this->_meta['lastupdate'] = $this->_meta[$listId]['gentime'];
761
- $header = $this->_meta[$listId]['gentime'] . "\t"
762
- . $this->_meta[$listId]['listsize'] . "\t"
763
- . $this->_meta[$listId]['env'] . "\n";
764
-
765
- if ( $this->_isDebug ) {
766
- $this->_debugLog('Generate url map for ' . $listId . ' url count =' . $this->_meta[$listId]['listsize']);
767
- }
768
-
769
- $buf = $header . implode("\n", $urls);
770
- $this->_saveCrawlListFileData($listId, $buf);
771
 
772
  return $urls;
773
  }
196
  }
197
 
198
  try {
199
+ $client->multiRequest($urls, $curlOptions) ;
200
+ } catch ( Exception $e ) {
201
+ $endReason = 'Error when crawling url ' . implode(' ', $urls) . ' : ' . $e->getMessage() ;
202
+ break ;
203
+ }
 
204
 
205
  $this->_finishCurPosition() ;
206
 
216
  break;
217
  }
218
  }
219
+ sleep(1);
220
  }
221
  $this->_meta['endreason'] = $endReason;
222
 
235
  return file_get_contents($filename);
236
  }
237
 
238
+ protected function _saveCrawlListFileData($listId, $urls)
239
  {
240
+ $this->_meta[$listId]['listsize'] = count($urls);
241
+ $this->_meta[$listId]['gentime'] = time();
242
+ $this->_meta[$listId]['endtime'] = 0;
243
+ $this->_meta[$listId]['lastquerytime'] = 0;
244
+ $this->_meta[$listId]['curpos'] = 0;
245
+ $this->_meta[$listId]['curvary'] = '';
246
+ $this->_meta[$listId]['queried'] = 0;
247
+
248
+ $this->_meta['lastupdate'] = $this->_meta[$listId]['gentime'];
249
+ $header = $this->_meta[$listId]['gentime'] . "\t"
250
+ . $this->_meta[$listId]['listsize'] . "\t"
251
+ . $this->_meta[$listId]['env'] . "\n";
252
+
253
+ if ( $this->_isDebug ) {
254
+ $this->_debugLog('Generate url map for ' . $listId . ' url count =' . $this->_meta[$listId]['listsize']);
255
+ }
256
+
257
+ $buf = $header . implode("\n", $urls);
258
+
259
  $filename = $this->_listDir . DS . self::WARMUP_MAP_FILE . '_' . strtolower($listId);
260
+ if (!file_put_contents($filename, $buf)) {
261
  $this->_debugLog('Failed to save url map file ' . $filename);
262
  }
263
  else {
387
  return $fixed;
388
  }
389
 
390
+ protected function _getNextUrls( &$curCookie )
391
+ {
392
+ $this->_curList['working'] = 0 ;
393
+ $id = $this->_curList['id'] ;
394
+ if ( $this->_meta[$id]['endtime'] > 0 ) {
395
+ if ( $this->_prepareCurList() ) {
396
+ return $this->_getNextUrls($curCookie) ;
397
  }
398
  else {
399
+ return null ;
400
  }
401
  }
402
 
403
+ $curpos = $this->_meta[$id]['curpos'] ;
404
+ $curCookie = $this->_curList['fixed'] . $this->_meta[$id]['curvary'] ;
405
+ $urls = array_slice($this->_curList['urls'], $this->_meta[$id]['curpos'], $this->_curThreads) ;
 
 
 
406
 
407
+ if ( empty($urls) ) {
408
+ return null ;
409
  }
410
  else {
411
+ $baseurl = $this->_meta[$id]['baseurl'] ;
412
+ foreach ( $urls as $key => $val ) {
413
+ $urls[$key] = $baseurl . $val ;
414
  }
415
+ $this->_curList['working'] = count($urls) ;
416
  return $urls ;
417
  }
418
+ }
419
 
420
+ protected function _finishCurPosition()
421
  {
422
  $now = time();
423
  $id = $this->_curList['id'];
723
  $produrls = array_unique($produrls);
724
  $urls = array_merge($urls, $produrls);
725
 
726
+ $this->_saveCrawlListFileData($listId, $urls);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
727
 
728
  return $urls;
729
  }
758
  $urls = array_unique($urls);
759
  }
760
 
761
+ $this->_saveCrawlListFileData($listId, $urls);
 
 
 
 
 
 
 
 
 
 
 
 
762
 
763
  return $urls;
764
  }
app/code/community/Litespeed/Litemage/etc/config.xml CHANGED
@@ -26,7 +26,7 @@
26
  <config>
27
  <modules>
28
  <Litespeed_Litemage>
29
- <version>1.1.0</version>
30
  </Litespeed_Litemage>
31
  </modules>
32
  <global>
26
  <config>
27
  <modules>
28
  <Litespeed_Litemage>
29
+ <version>1.1.1</version>
30
  </Litespeed_Litemage>
31
  </modules>
32
  <global>
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.1.0</label>
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.1.1</label>
31
  <sort_order>5000</sort_order>
32
  </Litespeed_Litemage>
33
  </tabs>
package.xml CHANGED
@@ -1,25 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>LiteSpeed_LiteMage</name>
4
- <version>1.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/GPL-3.0">GPLv3</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>Added a Home Page TTL setting.&#xD;
12
- Added support for multiple custom URL warm-up list per store with different intervals and priorities&#xD;
13
- Added support for setting a different default vary cookie name through .htaccess to avoid conflicts with other LiteSpeed Cache plugins.&#xD;
14
- Updated esi:include URLs to be compatible with LiteSpeed Load Balancer&#x2019;s PageSpeed module.&#xD;
15
- Improved ESI block detection and hole punching accuracy.&#xD;
16
- URL Blacklist will now perform an exact match unless an &#x201C;*&#x201D; is added.&#xD;
17
- Fixed a bug where non-cacheable pages that redirected to a 404 page where mistakenly cached.&#xD;
18
- </notes>
19
  <authors><author><name>LiteSpeed Technologies</name><user>LiteSpeedTech</user><email>lsong@litespeedtech.com</email></author></authors>
20
- <date>2016-05-19</date>
21
- <time>19:16:06</time>
22
- <contents><target name="magecommunity"><dir name="Litespeed"><dir name="Litemage"><dir name="Block"><dir name="Adminhtml"><dir name="Cache"><file name="Management.php" hash="a16c9978a7177adf4aacc00a4a18476a"/></dir></dir><dir name="Core"><file name="Esi.php" hash="32da90253e38aedf67a8c4619bfc983b"/><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="3edf87b7d3f3da4093110bd4c98e0738"/></dir></dir><dir name="Helper"><file name="Data.php" hash="1e0673cf17d4d2e6792c9860d241b173"/><file name="Esi.php" hash="54036ce774753a7a4922d4d804b60562"/><file name="Viewvary.php" hash="00b51b413114123c8e5d7bfd44e1cfdc"/></dir><dir name="Model"><dir name="Config"><dir name="Backend"><file name="WarmUp.php" hash="ead7a41a31fc643d8f628e05a599eecb"/></dir><dir name="Source"><file name="CustomerGroup.php" hash="2aa52d9a1614a545035267958be0656f"/><file name="EnableWarmUp.php" hash="d32dd158463297672dfb58628007a88c"/></dir></dir><file name="EsiData.php" hash="5a7fa9094a5286e317a15d7dc133676b"/><file name="EsiLayout.php" hash="8e382410414f467c69e818380872113e"/><dir name="Layout"><file name="EsiUpdate.php" hash="d11658321942742ba38cad1a7558f1f6"/><file name="Master.php" hash="1fae1314f099070df8637f53e0d2d1f2"/><file name="Update.php" hash="bc4b131d642853f009b6278b06843885"/></dir><dir name="Observer"><file name="Cron.php" hash="339c53fc7ec3ee29b9be89116560d97a"/><file name="Esi.php" hash="916293a6e45da6d2f2663a9f3908e4e8"/><file name="Purge.php" hash="aa3672d74e943a63a6267c2e4025e05c"/></dir><file name="Session.php" hash="558a80fb45a532af59727ae5657cd380"/><file name="Translate.php" hash="35326b8d2214f516d7dba82519902529"/></dir><dir name="controllers"><file name="AdminController.php" hash="d4d81dfdcb28354a7aabd9d9f6f10c86"/><dir name="Adminhtml"><file name="LitemageCacheController.php" hash="18b8cd29b5cf0fe20bd8d18d515fd79d"/></dir><file name="EsiController.php" hash="8bce324af8bfbcd085fe4b8f020e4db8"/></dir><dir name="etc"><file name="config.xml" hash="077e4129dcca238a48268db02b84ca41"/><file name="system.xml" hash="ab3318f299851672578fe36d0ed2d4b4"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="litemage.xml" hash="70c8a6fc5f5eaf99b8c0648a33bb3b7d"/></dir><dir name="template"><dir name="litemage"><file name="cache_management.phtml" hash="3ffb2b9e4351d0e99669c3025a565179"/></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></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php></required></dependencies>
25
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>LiteSpeed_LiteMage</name>
4
+ <version>1.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/GPL-3.0">GPLv3</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 Crawler bug introduced in version 1.1 where the second round of crawling would not start properly until the cache was flushed.</notes>
 
 
 
 
 
 
 
12
  <authors><author><name>LiteSpeed Technologies</name><user>LiteSpeedTech</user><email>lsong@litespeedtech.com</email></author></authors>
13
+ <date>2016-05-31</date>
14
+ <time>15:02:47</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="a16c9978a7177adf4aacc00a4a18476a"/></dir></dir><dir name="Core"><file name="Esi.php" hash="32da90253e38aedf67a8c4619bfc983b"/><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="3edf87b7d3f3da4093110bd4c98e0738"/></dir></dir><dir name="Helper"><file name="Data.php" hash="0b4db22d27711c3c5b79da2b35b9841d"/><file name="Esi.php" hash="54036ce774753a7a4922d4d804b60562"/><file name="Viewvary.php" hash="00b51b413114123c8e5d7bfd44e1cfdc"/></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="2aa52d9a1614a545035267958be0656f"/><file name="EnableWarmUp.php" hash="d32dd158463297672dfb58628007a88c"/></dir></dir><file name="EsiData.php" hash="5a7fa9094a5286e317a15d7dc133676b"/><file name="EsiLayout.php" hash="8e382410414f467c69e818380872113e"/><dir name="Layout"><file name="EsiUpdate.php" hash="d11658321942742ba38cad1a7558f1f6"/><file name="Master.php" hash="1fae1314f099070df8637f53e0d2d1f2"/><file name="Update.php" hash="bc4b131d642853f009b6278b06843885"/></dir><dir name="Observer"><file name="Cron.php" hash="eba0ab40c49edeaa4b0d589ca4fabe9a"/><file name="Esi.php" hash="916293a6e45da6d2f2663a9f3908e4e8"/><file name="Purge.php" hash="aa3672d74e943a63a6267c2e4025e05c"/></dir><file name="Session.php" hash="558a80fb45a532af59727ae5657cd380"/><file name="Translate.php" hash="35326b8d2214f516d7dba82519902529"/></dir><dir name="controllers"><file name="AdminController.php" hash="d4d81dfdcb28354a7aabd9d9f6f10c86"/><dir name="Adminhtml"><file name="LitemageCacheController.php" hash="18b8cd29b5cf0fe20bd8d18d515fd79d"/></dir><file name="EsiController.php" hash="8bce324af8bfbcd085fe4b8f020e4db8"/></dir><dir name="etc"><file name="config.xml" hash="eb83dcbb7d4082987e86e840c487aa98"/><file name="system.xml" hash="07ffb6d9f6b58f0485eb8cd0e0cbaafa"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="litemage.xml" hash="70c8a6fc5f5eaf99b8c0648a33bb3b7d"/></dir><dir name="template"><dir name="litemage"><file name="cache_management.phtml" hash="3ffb2b9e4351d0e99669c3025a565179"/></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></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php></required></dependencies>
18
  </package>