Simtech_Searchanise - Version 1.1.2

Version Notes

[+] Automatic catalog re-indexation on extension update.

[!] Relevance sorting improved (inverse relevance sorting removed).

[!] If a sync error occurs, it is now indicated in the Searchanise admin panel.

[!] Indexation would not start on creating a storefront or changing a storefront status. Fixed.

[!] SEO-friendly links are used for products.

Download this release

Release Info

Developer Simbirsk Technologies, Ltd.
Extension Simtech_Searchanise
Version 1.1.2
Comparing to
See all releases


Code changes from version 1.1.1 to 1.1.2

app/code/community/Simtech/Searchanise/Block/Async.php CHANGED
@@ -11,29 +11,45 @@
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
 
14
  class Simtech_Searchanise_Block_Async extends Mage_Core_Block_Text
15
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  protected function _toHtml()
17
  {
18
  $html = '';
19
 
20
  if (Mage::helper('searchanise/ApiSe')->checkStatusModule()) {
21
  if (Mage::app()->getStore()->isAdmin()) {
22
- if (Mage::helper('searchanise/ApiSe')->checkAutoInstall()) {
 
 
 
 
 
23
  $textNotification = Mage::helper('searchanise')->__('Searchanise was successfully installed. Catalog indexation in process. <a href="%s">Searchanise Admin Panel</a>.', Mage::helper('searchanise/ApiSe')->getModuleUrl());
 
24
 
 
25
  Mage::helper('searchanise/ApiSe')->setNotification('N', Mage::helper('searchanise')->__('Notice'), $textNotification);
26
-
27
- $autoInstallInBackground = false;
28
- // not used because notification will not show
29
- if ($autoInstallInBackground) {
30
- $signupUrl = Mage::helper("adminhtml")->getUrl(Mage::helper('searchanise/ApiSe')->getConnectLink());
31
- $html .= "\n<object data=\"$signupUrl\" width=\"0\" height=\"0\"></object>\n";
32
- } else {
33
- if (Mage::helper('searchanise/ApiSe')->signup(null, false) == true) {
34
- Mage::helper('searchanise/ApiSe')->queueImport(null, false);
35
- }
36
- }
37
  } else {
38
  Mage::helper('searchanise/ApiSe')->showNotificationAsyncCompleted();
39
  }
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
14
+
15
  class Simtech_Searchanise_Block_Async extends Mage_Core_Block_Text
16
  {
17
+ private function _startSignup()
18
+ {
19
+ // not used because notification will not show
20
+ $autoInstallInBackground = false;
21
+
22
+ if ($autoInstallInBackground) {
23
+ $signupUrl = Mage::helper("adminhtml")->getUrl(Mage::helper('searchanise/ApiSe')->getConnectLink());
24
+ $html .= "\n<object data=\"$signupUrl\" width=\"0\" height=\"0\"></object>\n";
25
+ } else {
26
+ if (Mage::helper('searchanise/ApiSe')->signup(null, false) == true) {
27
+ Mage::helper('searchanise/ApiSe')->queueImport(null, false);
28
+ }
29
+ }
30
+
31
+ return true;
32
+ }
33
+
34
  protected function _toHtml()
35
  {
36
  $html = '';
37
 
38
  if (Mage::helper('searchanise/ApiSe')->checkStatusModule()) {
39
  if (Mage::app()->getStore()->isAdmin()) {
40
+ $textNotification = '';
41
+ if (Mage::helper('searchanise/ApiSe')->checkModuleIsUpdated()) {
42
+ Mage::helper('searchanise/ApiSe')->updateInsalledModuleVersion();
43
+ $textNotification = Mage::helper('searchanise')->__('Searchanise was successfully updated. Catalog indexation in process. <a href="%s">Searchanise Admin Panel</a>.', Mage::helper('searchanise/ApiSe')->getModuleUrl());
44
+
45
+ } elseif (Mage::helper('searchanise/ApiSe')->checkAutoInstall()) {
46
  $textNotification = Mage::helper('searchanise')->__('Searchanise was successfully installed. Catalog indexation in process. <a href="%s">Searchanise Admin Panel</a>.', Mage::helper('searchanise/ApiSe')->getModuleUrl());
47
+ }
48
 
49
+ if ($textNotification != '') {
50
  Mage::helper('searchanise/ApiSe')->setNotification('N', Mage::helper('searchanise')->__('Notice'), $textNotification);
51
+ $this->_startSignup();
52
+
 
 
 
 
 
 
 
 
 
53
  } else {
54
  Mage::helper('searchanise/ApiSe')->showNotificationAsyncCompleted();
55
  }
app/code/community/Simtech/Searchanise/Block/Jsinit.php CHANGED
@@ -11,6 +11,7 @@
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
 
14
  class Simtech_Searchanise_Block_Jsinit extends Mage_Core_Block_Text
15
  {
16
  protected function _toHtml()
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
14
+
15
  class Simtech_Searchanise_Block_Jsinit extends Mage_Core_Block_Text
16
  {
17
  protected function _toHtml()
app/code/community/Simtech/Searchanise/Helper/ApiSe.php CHANGED
@@ -425,7 +425,33 @@ class Simtech_Searchanise_Helper_ApiSe
425
 
426
  return $ret;
427
  }
428
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
429
  public static function getServerVersion()
430
  {
431
  return self::getSetting('server_version');
@@ -715,6 +741,9 @@ class Simtech_Searchanise_Helper_ApiSe
715
  return;
716
  }
717
  self::setNotificationAsyncComleted(false);
 
 
 
718
 
719
  Mage::getModel('searchanise/queue')->addAction(Simtech_Searchanise_Model_Queue::ACT_PREPARE_FULL_IMPORT, NULL, $curStore);
720
 
@@ -843,11 +872,11 @@ class Simtech_Searchanise_Helper_ApiSe
843
  return self::getExportStatus($store) == self::EXPORT_STATUS_DONE;
844
  }
845
 
846
- public static function getExportStatuses()
847
  {
848
  $ret = array();
849
- $stores = Mage::app()->getStores();
850
-
851
  if (!empty($stores)) {
852
  foreach ($stores as $store) {
853
  $ret[$store->getId()] = self::getExportStatus($store);
@@ -976,7 +1005,8 @@ class Simtech_Searchanise_Helper_ApiSe
976
  self::sendAddonStatusRequest('disabled', $store);
977
  }
978
  }
979
-
 
980
  continue;
981
  }
982
 
@@ -1056,31 +1086,35 @@ class Simtech_Searchanise_Helper_ApiSe
1056
  return $connected;
1057
  }
1058
 
1059
- public static function getMinMaxProductId()
1060
  {
1061
  $start = 0;
1062
  $max = 0;
1063
- $start_collection = Mage::getModel('catalog/product')
1064
  ->getCollection()
1065
  ->addAttributeToSort('entity_id', Varien_Data_Collection::SORT_ORDER_ASC)
1066
- ->setPageSize(1)
1067
- ->load()
1068
- ->toArray();
 
 
1069
 
1070
- $max_collection = Mage::getModel('catalog/product')
1071
  ->getCollection()
1072
  ->addAttributeToSort('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
1073
- ->setPageSize(1)
1074
- ->load()
1075
- ->toArray();
1076
-
1077
- if (!empty($start_collection)) {
1078
- $start = reset($start_collection);
 
 
1079
  $start = (int) $start['entity_id'];
1080
  }
1081
 
1082
- if (!empty($max_collection)) {
1083
- $max = reset($max_collection);
1084
  $max = (int) $max['entity_id'];
1085
  }
1086
 
@@ -1178,18 +1212,41 @@ class Simtech_Searchanise_Helper_ApiSe
1178
 
1179
  return $filterableInSearchFiltersIds;
1180
  }
1181
-
1182
  public static function checkStartAsync()
1183
  {
1184
  $ret = false;
1185
  $q = Mage::getModel('searchanise/queue')->getNextQueue();
1186
-
1187
  if (!empty($q)) {
1188
  //Note: $q['started'] can be in future.
1189
  if ($q['status'] == Simtech_Searchanise_Model_Queue::STATUS_PROCESSING && ($q['started'] + self::getMaxProcessingTime() > self::getTime())) {
1190
  $ret = false;
1191
 
1192
- } elseif ($q['error_count'] == self::getMaxErrorCount()) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
  $ret = false;
1194
 
1195
  } else {
@@ -1235,7 +1292,7 @@ class Simtech_Searchanise_Helper_ApiSe
1235
  return Simtech_Searchanise_Model_Queue::STATUS_PROCESSING;
1236
  }
1237
 
1238
- if ($q['error_count'] == self::getMaxErrorCount()) {
1239
  self::setExportStatus(self::EXPORT_STATUS_SYNC_ERROR, $store);
1240
 
1241
  return Simtech_Searchanise_Model_Queue::STATUS_DISABLED;
@@ -1269,7 +1326,7 @@ class Simtech_Searchanise_Helper_ApiSe
1269
 
1270
  $sqls_arr = array();
1271
 
1272
- list($start, $max) = self::getMinMaxProductId();
1273
 
1274
  do {
1275
  $end = $start + $step;
425
 
426
  return $ret;
427
  }
428
+
429
+ public static function setInsalledModuleVersion($value = null)
430
+ {
431
+ self::setSetting('installed_module_version', $value, self::CONFIG_PREFIX);
432
+
433
+ return true;
434
+ }
435
+
436
+ public static function getInsalledModuleVersion()
437
+ {
438
+ return (string) self::getSetting('installed_module_version', self::CONFIG_PREFIX);
439
+ }
440
+
441
+ public static function updateInsalledModuleVersion()
442
+ {
443
+ $currentVersion = (string) Mage::getConfig()->getModuleConfig("Simtech_Searchanise")->version;
444
+
445
+ return self::setInsalledModuleVersion($currentVersion);
446
+ }
447
+
448
+ public static function checkModuleIsUpdated()
449
+ {
450
+ $currentVersion = Mage::getConfig()->getModuleConfig("Simtech_Searchanise")->version;
451
+
452
+ return self::getInsalledModuleVersion() != $currentVersion;
453
+ }
454
+
455
  public static function getServerVersion()
456
  {
457
  return self::getSetting('server_version');
741
  return;
742
  }
743
  self::setNotificationAsyncComleted(false);
744
+
745
+ // Delete all exist queue, need if exists error
746
+ Mage::getModel('searchanise/queue')->clearActions($curStore);
747
 
748
  Mage::getModel('searchanise/queue')->addAction(Simtech_Searchanise_Model_Queue::ACT_PREPARE_FULL_IMPORT, NULL, $curStore);
749
 
872
  return self::getExportStatus($store) == self::EXPORT_STATUS_DONE;
873
  }
874
 
875
+ public static function getExportStatuses($store = null)
876
  {
877
  $ret = array();
878
+ $stores = self::getStores($store);
879
+
880
  if (!empty($stores)) {
881
  foreach ($stores as $store) {
882
  $ret[$store->getId()] = self::getExportStatus($store);
1005
  self::sendAddonStatusRequest('disabled', $store);
1006
  }
1007
  }
1008
+ $connected = true;
1009
+
1010
  continue;
1011
  }
1012
 
1086
  return $connected;
1087
  }
1088
 
1089
+ public static function getMinMaxProductId($store = null)
1090
  {
1091
  $start = 0;
1092
  $max = 0;
1093
+ $startCollection = Mage::getModel('catalog/product')
1094
  ->getCollection()
1095
  ->addAttributeToSort('entity_id', Varien_Data_Collection::SORT_ORDER_ASC)
1096
+ ->setPageSize(1);
1097
+ if ($store) {
1098
+ $startCollection = $startCollection->addStoreFilter($store);
1099
+ }
1100
+ $startCollection = $startCollection->load()->toArray();
1101
 
1102
+ $maxCollection = Mage::getModel('catalog/product')
1103
  ->getCollection()
1104
  ->addAttributeToSort('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
1105
+ ->setPageSize(1);
1106
+ if ($store) {
1107
+ $maxCollection = $maxCollection->addStoreFilter($store);
1108
+ }
1109
+ $maxCollection = $maxCollection->load()->toArray();
1110
+
1111
+ if (!empty($startCollection)) {
1112
+ $start = reset($startCollection);
1113
  $start = (int) $start['entity_id'];
1114
  }
1115
 
1116
+ if (!empty($maxCollection)) {
1117
+ $max = reset($maxCollection);
1118
  $max = (int) $max['entity_id'];
1119
  }
1120
 
1212
 
1213
  return $filterableInSearchFiltersIds;
1214
  }
1215
+
1216
  public static function checkStartAsync()
1217
  {
1218
  $ret = false;
1219
  $q = Mage::getModel('searchanise/queue')->getNextQueue();
1220
+
1221
  if (!empty($q)) {
1222
  //Note: $q['started'] can be in future.
1223
  if ($q['status'] == Simtech_Searchanise_Model_Queue::STATUS_PROCESSING && ($q['started'] + self::getMaxProcessingTime() > self::getTime())) {
1224
  $ret = false;
1225
 
1226
+ } elseif ($q['error_count'] >= self::getMaxErrorCount()) {
1227
+ if ($q['store_id']) {
1228
+ $store = Mage::app()->getStore($q['store_id']);
1229
+ } else {
1230
+ $store = null;
1231
+ }
1232
+
1233
+ $statuses = self::getExportStatuses($store);
1234
+ if ($statuses) {
1235
+ foreach ($statuses as $statusKey => $status) {
1236
+ if ($status != self::EXPORT_STATUS_SYNC_ERROR) {
1237
+ if ($store) {
1238
+ self::setExportStatus(self::EXPORT_STATUS_SYNC_ERROR, $store);
1239
+ } else {
1240
+ $stores = self::getStores();
1241
+ foreach ($stores as $stKey => $_st) {
1242
+ self::setExportStatus(self::EXPORT_STATUS_SYNC_ERROR, $_st);
1243
+ }
1244
+ break;
1245
+ }
1246
+ }
1247
+ }
1248
+ }
1249
+
1250
  $ret = false;
1251
 
1252
  } else {
1292
  return Simtech_Searchanise_Model_Queue::STATUS_PROCESSING;
1293
  }
1294
 
1295
+ if ($q['error_count'] >= self::getMaxErrorCount()) {
1296
  self::setExportStatus(self::EXPORT_STATUS_SYNC_ERROR, $store);
1297
 
1298
  return Simtech_Searchanise_Model_Queue::STATUS_DISABLED;
1326
 
1327
  $sqls_arr = array();
1328
 
1329
+ list($start, $max) = self::getMinMaxProductId($store);
1330
 
1331
  do {
1332
  $end = $start + $step;
app/code/community/Simtech/Searchanise/Helper/ApiXML.php CHANGED
@@ -529,8 +529,11 @@ class Simtech_Searchanise_Helper_ApiXML extends Mage_Core_Helper_Data
529
 
530
  private static function getProducts($productIds = null, $store = null, $flagAddMinimalPrice = false, $customerGroupId = null)
531
  {
532
- Mage::app("default")->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
533
-
 
 
 
534
  $products = Mage::getModel('catalog/product')
535
  ->getCollection()
536
  ->addAttributeToSelect('*')
@@ -569,10 +572,6 @@ class Simtech_Searchanise_Helper_ApiXML extends Mage_Core_Helper_Data
569
  // Main functions //
570
  public static function generateProductsXML($productIds = null, $store = null, $flagAddMinimalPrice = false)
571
  {
572
- if ($store) {
573
- // need for generate correct url
574
- Mage::app()->setCurrentStore($store->getId());
575
- }
576
  $ret = '';
577
 
578
  $products = self::getProducts($productIds, $store, $flagAddMinimalPrice);
529
 
530
  private static function getProducts($productIds = null, $store = null, $flagAddMinimalPrice = false, $customerGroupId = null)
531
  {
532
+ // need for generate correct url
533
+ if ($store) {
534
+ Mage::app()->setCurrentStore($store->getId());
535
+ }
536
+
537
  $products = Mage::getModel('catalog/product')
538
  ->getCollection()
539
  ->addAttributeToSelect('*')
572
  // Main functions //
573
  public static function generateProductsXML($productIds = null, $store = null, $flagAddMinimalPrice = false)
574
  {
 
 
 
 
575
  $ret = '';
576
 
577
  $products = self::getProducts($productIds, $store, $flagAddMinimalPrice);
app/code/community/Simtech/Searchanise/Helper/Data.php CHANGED
@@ -101,7 +101,7 @@ class Simtech_Searchanise_Helper_Data extends Mage_Core_Helper_Abstract
101
  if (in_array($type, self::$_searchaniseTypes)) {
102
  if ($type == self::TEXT_FIND) {
103
  $params['sortBy'] = 'relevance';
104
- $params['sortOrder'] = 'desc';
105
 
106
  } elseif ($type == self::TEXT_ADVANCED_FIND) {
107
  $params['sortBy'] = 'title';
101
  if (in_array($type, self::$_searchaniseTypes)) {
102
  if ($type == self::TEXT_FIND) {
103
  $params['sortBy'] = 'relevance';
104
+ $params['sortOrder'] = 'asc';
105
 
106
  } elseif ($type == self::TEXT_ADVANCED_FIND) {
107
  $params['sortBy'] = 'title';
app/code/community/Simtech/Searchanise/Model/Observer.php CHANGED
@@ -350,10 +350,10 @@ class Simtech_Searchanise_Model_Observer
350
  $isActiveOld = null;
351
  $storeOld = Mage::app()->getStore($store->getId());
352
 
353
- if (empty($storeOld)) {
354
  $isActiveOld = $storeOld->getIsActive();
355
  }
356
-
357
  if ($isActiveOld != $isActive) {
358
  if (Mage::helper('searchanise/ApiSe')->signup($store, false, false) == true) {
359
  if ($isActive) {
350
  $isActiveOld = null;
351
  $storeOld = Mage::app()->getStore($store->getId());
352
 
353
+ if ($storeOld) {
354
  $isActiveOld = $storeOld->getIsActive();
355
  }
356
+
357
  if ($isActiveOld != $isActive) {
358
  if (Mage::helper('searchanise/ApiSe')->signup($store, false, false) == true) {
359
  if ($isActive) {
app/code/community/Simtech/Searchanise/Model/Queue.php CHANGED
@@ -91,30 +91,46 @@ class Simtech_Searchanise_Model_Queue extends Mage_Core_Model_Abstract
91
  return true;
92
  }
93
 
94
- public function getNextQueueArray($queue_id = null)
95
  {
96
  $collection = $this->getCollection()
97
  ->addOrder('queue_id', 'ASC')
98
  ->setPageSize(1);
99
 
100
- if (!empty($queue_id)) {
101
- $collection->addFieldToFilter('queue_id', array("gt" => $queue_id));
102
  }
103
-
 
 
 
 
 
104
  return $collection->load()->toArray();
105
  }
106
 
107
- public function getNextQueue($queue_id = null)
108
  {
109
  $q = array();
110
- $queue_arr = self::getNextQueueArray();
111
 
112
- if (!empty($queue_arr['items'])) {
113
- $q = reset($queue_arr['items']);
114
  }
115
 
116
  return $q;
117
  }
 
 
 
 
 
 
 
 
 
 
 
118
 
119
  public function addAction($action, $data = NULL, $cur_store = null, $cur_store_id = null)
120
  {
@@ -130,11 +146,8 @@ class Simtech_Searchanise_Model_Queue extends Mage_Core_Model_Abstract
130
  $stores = Mage::helper('searchanise/ApiSe')->getStores($cur_store, $cur_store_id);
131
 
132
  if ($action == self::ACT_PREPARE_FULL_IMPORT && !empty($cur_store)) {
133
- // Trucate queue for all
134
- Mage::getModel('searchanise/queue')
135
- ->getCollection()
136
- ->addFilter('store_id', $cur_store->getId())
137
- ->clear();
138
  }
139
 
140
  foreach ($data as $d) {
@@ -235,11 +248,10 @@ class Simtech_Searchanise_Model_Queue extends Mage_Core_Model_Abstract
235
  $product = Mage::getModel('catalog/product')
236
  ->load($productId);
237
 
238
- if (!empty($product)) {
239
- $storeIds = $product->getStoreIds();
 
240
  }
241
-
242
- Mage::getModel('searchanise/queue')->addAction(Simtech_Searchanise_Model_Queue::ACT_UPDATE, $productId, null, $storeIds);
243
  }
244
  }
245
 
91
  return true;
92
  }
93
 
94
+ public function getNextQueueArray($queueId = null, $flagIgnoreError = false)
95
  {
96
  $collection = $this->getCollection()
97
  ->addOrder('queue_id', 'ASC')
98
  ->setPageSize(1);
99
 
100
+ if (!empty($queueId)) {
101
+ $collection = $collection->addFieldToFilter('queue_id', array('gt' => $queueId));
102
  }
103
+
104
+ // Not use in current version.
105
+ if ($flagIgnoreError) {
106
+ $collection = $collection->addFieldToFilter('error_count', array('lt' => Mage::helper('searchanise/ApiSe')->getMaxErrorCount()));
107
+ }
108
+
109
  return $collection->load()->toArray();
110
  }
111
 
112
+ public function getNextQueue($queueId = null)
113
  {
114
  $q = array();
115
+ $queueArr = self::getNextQueueArray($queueId);
116
 
117
+ if (!empty($queueArr['items'])) {
118
+ $q = reset($queueArr['items']);
119
  }
120
 
121
  return $q;
122
  }
123
+
124
+ public function clearActions($store = null)
125
+ {
126
+ $collection = Mage::getModel('searchanise/queue')->getCollection();
127
+
128
+ if ($store) {
129
+ $collection = $collection->addFilter('store_id', $store->getId());
130
+ }
131
+
132
+ return $collection->load()->delete();
133
+ }
134
 
135
  public function addAction($action, $data = NULL, $cur_store = null, $cur_store_id = null)
136
  {
146
  $stores = Mage::helper('searchanise/ApiSe')->getStores($cur_store, $cur_store_id);
147
 
148
  if ($action == self::ACT_PREPARE_FULL_IMPORT && !empty($cur_store)) {
149
+ // Truncate queue for all
150
+ Mage::getModel('searchanise/queue')->clearActions($cur_store);
 
 
 
151
  }
152
 
153
  foreach ($data as $d) {
248
  $product = Mage::getModel('catalog/product')
249
  ->load($productId);
250
 
251
+ if ($product) {
252
+ $storeIds = $product->getStoreIds();
253
+ Mage::getModel('searchanise/queue')->addAction(Simtech_Searchanise_Model_Queue::ACT_UPDATE, $productId, null, $storeIds);
254
  }
 
 
255
  }
256
  }
257
 
app/code/community/Simtech/Searchanise/Model/Searchanise.php CHANGED
@@ -122,6 +122,8 @@ class Simtech_Searchanise_Model_Searchanise extends Mage_Core_Model_Abstract
122
  }
123
 
124
  if ($attribute == 'relevance') {
 
 
125
  $product_ids = $this
126
  ->getSearchaniseRequest()
127
  ->getProductIdsString();
122
  }
123
 
124
  if ($attribute == 'relevance') {
125
+ // 'relevance' always 'asc'
126
+ $dir = 'asc';
127
  $product_ids = $this
128
  ->getSearchaniseRequest()
129
  ->getProductIdsString();
app/code/community/Simtech/Searchanise/controllers/AsyncController.php CHANGED
@@ -36,8 +36,6 @@ class Simtech_Searchanise_AsyncController extends Mage_Core_Controller_Front_Act
36
  */
37
  public function preDispatch()
38
  {
39
- Mage::app()->setCurrentStore('admin');
40
-
41
  // Do not start standart session
42
  $this->setFlag('', self::FLAG_NO_START_SESSION, 1);
43
  $this->setFlag('', self::FLAG_NO_CHECK_INSTALLATION, 1);
36
  */
37
  public function preDispatch()
38
  {
 
 
39
  // Do not start standart session
40
  $this->setFlag('', self::FLAG_NO_START_SESSION, 1);
41
  $this->setFlag('', self::FLAG_NO_CHECK_INSTALLATION, 1);
app/code/community/Simtech/Searchanise/controllers/InfoController.php CHANGED
@@ -63,6 +63,11 @@ class Simtech_Searchanise_InfoController extends Mage_Core_Controller_Front_Acti
63
  Mage::helper('searchanise/ApiSe')->checkImportIsDone();
64
 
65
  $options = Mage::helper('searchanise/ApiSe')->getAddonOptions();
 
 
 
 
 
66
 
67
  if ($visual) {
68
  Mage::helper('searchanise/ApiSe')->printR($options);
63
  Mage::helper('searchanise/ApiSe')->checkImportIsDone();
64
 
65
  $options = Mage::helper('searchanise/ApiSe')->getAddonOptions();
66
+ if (!$options) {
67
+ $options = array();
68
+ }
69
+ $options['next_queue'] = Mage::getModel('searchanise/queue')->getNextQueue();
70
+ $options['type_async'] = Mage::helper('searchanise/ApiSe')->getTypeAsync();
71
 
72
  if ($visual) {
73
  Mage::helper('searchanise/ApiSe')->printR($options);
app/code/community/Simtech/Searchanise/etc/config.xml CHANGED
@@ -15,7 +15,7 @@
15
  <config>
16
  <modules>
17
  <Simtech_Searchanise>
18
- <version>1.1.0</version>
19
  </Simtech_Searchanise>
20
  </modules>
21
  <frontend>
15
  <config>
16
  <modules>
17
  <Simtech_Searchanise>
18
+ <version>1.1.2</version>
19
  </Simtech_Searchanise>
20
  </modules>
21
  <frontend>
app/code/community/Simtech/Searchanise/sql/searchanise_setup/mysql4-install-0.1.0.php CHANGED
@@ -11,6 +11,7 @@
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
 
14
  $installer = $this;
15
 
16
  $installer->startSetup();
@@ -26,7 +27,7 @@ $installer->run(
26
  `value` text COMMENT 'Config Value',
27
  PRIMARY KEY (`config_id`),
28
  UNIQUE KEY `UNQ_CORE_CONFIG_DATA_SCOPE_SCOPE_ID_PATH` (`scope`,`scope_id`,`path`)
29
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Config Data' AUTO_INCREMENT=94;
30
 
31
  DROP TABLE IF EXISTS {$this->getTable('searchanise_queue')};
32
  CREATE TABLE IF NOT EXISTS {$this->getTable('searchanise_queue')} (
@@ -39,7 +40,7 @@ $installer->run(
39
  `status` enum('pending','processing') DEFAULT 'pending',
40
  PRIMARY KEY (`queue_id`),
41
  KEY `status` (`status`)
42
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
43
  "
44
  );
45
 
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/
14
+
15
  $installer = $this;
16
 
17
  $installer->startSetup();
27
  `value` text COMMENT 'Config Value',
28
  PRIMARY KEY (`config_id`),
29
  UNIQUE KEY `UNQ_CORE_CONFIG_DATA_SCOPE_SCOPE_ID_PATH` (`scope`,`scope_id`,`path`)
30
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Config Data Searchanise';
31
 
32
  DROP TABLE IF EXISTS {$this->getTable('searchanise_queue')};
33
  CREATE TABLE IF NOT EXISTS {$this->getTable('searchanise_queue')} (
40
  `status` enum('pending','processing') DEFAULT 'pending',
41
  PRIMARY KEY (`queue_id`),
42
  KEY `status` (`status`)
43
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Queue tasks for Searchanise';
44
  "
45
  );
46
 
app/design/adminhtml/default/default/layout/searchanise.xml CHANGED
@@ -12,6 +12,7 @@
12
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
13
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
14
  ****************************************************************************/-->
 
15
  <layout version="0.1.0">
16
  <default>
17
  <reference name="before_body_end">
12
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
13
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
14
  ****************************************************************************/-->
15
+
16
  <layout version="0.1.0">
17
  <default>
18
  <reference name="before_body_end">
app/design/adminhtml/default/default/template/searchanise/dashboard.phtml CHANGED
@@ -1,4 +1,5 @@
1
- <?php /***************************************************************************
 
2
  * *
3
  * (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev *
4
  * *
@@ -14,7 +15,7 @@
14
  <div class="content-header">
15
  <table cellspacing="0">
16
  <tr>
17
- <td><h3 class="head-dashboard">Searchanise (beta)</h3></td>
18
  </tr>
19
  </table>
20
  </div>
1
+ <?php
2
+ /***************************************************************************
3
  * *
4
  * (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev *
5
  * *
15
  <div class="content-header">
16
  <table cellspacing="0">
17
  <tr>
18
+ <td><h3 class="head-dashboard"><?php echo Mage::helper('searchanise')->__('Searchanise');?></h3></td>
19
  </tr>
20
  </table>
21
  </div>
app/design/frontend/base/default/layout/searchanise.xml CHANGED
@@ -12,6 +12,7 @@
12
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
13
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
14
  ****************************************************************************/-->
 
15
  <layout version="0.1.0">
16
  <default>
17
  <reference name="head">
12
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
13
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
14
  ****************************************************************************/-->
15
+
16
  <layout version="0.1.0">
17
  <default>
18
  <reference name="head">
app/design/frontend/default/default/template/catalogsearch/form.mini.phtml CHANGED
@@ -11,6 +11,7 @@
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/?>
 
14
  <form id="search_mini_form" action="<?php echo $this->helper('catalogsearch')->getResultUrl() ?>" method="get">
15
  <div class="form-search">
16
  <label for="search"><?php echo $this->__('Search:') ?></label>
11
  * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE *
12
  * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. *
13
  ****************************************************************************/?>
14
+
15
  <form id="search_mini_form" action="<?php echo $this->helper('catalogsearch')->getResultUrl() ?>" method="get">
16
  <div class="form-search">
17
  <label for="search"><?php echo $this->__('Search:') ?></label>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Simtech_Searchanise</name>
4
- <version>1.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="https://searchanise.atlassian.net/wiki/display/DD/LICENSE+AGREEMENT">Commercial license: https://searchanise.atlassian.net/wiki/display/DD/LICENSE+AGREEMENT</license>
7
  <channel>community</channel>
@@ -10,11 +10,15 @@
10
  <description>Searchanise is a free SaaS solution providing fast and smart search for online stores. It provides rapid search results and instant search suggestions presented in a fancy and customizable widget.&#xD;
11
  &#xD;
12
  With the help of Searchanise Connector Add-on you will be able to connect your store to the service and start using the search widget in no time. Power up your store right now!</description>
13
- <notes>[!] Fixed an error that would occur on Magento Community 1.5 catalog indexation.</notes>
 
 
 
 
14
  <authors><author><name>Simbirsk Technologies, Ltd.</name><user>searchanise</user><email>sales@searchanise.com</email></author></authors>
15
- <date>2013-06-03</date>
16
- <time>09:58:13</time>
17
- <contents><target name="magecommunity"><dir name="Simtech"><dir name="Searchanise"><dir name="Block"><file name="Async.php" hash="973ab1c442dc6ebe91565d313387d2f6"/><file name="Autocomplete.php" hash="efc89ac3f897be3bc307fba6a36778f0"/><file name="Jsinit.php" hash="71ba588cf3f94768a76fca4f52c563e9"/><dir name="Product"><dir name="List"><file name="Toolbar.php" hash="7191058de95d20a86b65c27b3c73b064"/></dir><file name="Result.php" hash="4e767e273ee21a38332ac226af878291"/></dir><file name="Result.php" hash="dec7b27ab9511c956680eb60eba9b95e"/></dir><dir name="Helper"><file name="ApiSe.php" hash="c1f3fda5d9096518890d817067ee5a47"/><file name="ApiXML.php" hash="acdf8d896bf8aa3caadee7c052f039b1"/><file name="Data.php" hash="8eefead1610d937cf9470ec45c364781"/></dir><dir name="Model"><file name="Advanced.php" hash="2a22ebcf7ac75b54681ef8a27bad2e47"/><dir name="Config"><file name="Data.php" hash="ddc558d22208f0ebc1e4378c9d050022"/></dir><file name="Config.php" hash="00ca3c7955f3ff2283c636a2074b6f03"/><dir name="Import"><dir name="Entity"><file name="Product.php" hash="4997af528b36f0f576d1c01402e14b03"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="Category.php" hash="e290ab29f2d50e1acbbbb37496150ea4"/><file name="Price.php" hash="743887b32bf012274ad8a371fff96411"/></dir></dir><file name="Layer.php" hash="3e8c975d649ae6e20fcc69d35779c97c"/><file name="LayerCatalogSearch.php" hash="61728092fdb9cf42490afacdc4e731fd"/><dir name="Mysql4"><dir name="Advanced"><file name="Collection.php" hash="dd8c6f3cbb0621a5a7320f3104e68da6"/></dir><dir name="Config"><file name="Collection.php" hash="470218c1eb3f1cc1ca0e6d0e93e1b097"/></dir><file name="Config.php" hash="c95dc8ecd7ab4f955b6eaf4710ab960e"/><dir name="Fulltext"><file name="Collection.php" hash="5646955503a90020f87cfd861ac07e73"/></dir><dir name="Product"><file name="Collection.php" hash="28b478eb328502ce03e389404d9f54b5"/><file name="CollectionTag.php" hash="def509d1365374e6dede36be17e75bf3"/></dir><dir name="Queue"><file name="Collection.php" hash="30ca0f8640bdc443deb94cd2e71010c8"/></dir><file name="Queue.php" hash="286351623e8f011a21519f8d9c3e3151"/><file name="Store.php" hash="0126a4291d7dad6641bf59abb0f64cc4"/></dir><file name="Observer.php" hash="04178f446ade0ad2084922f1b0815fe6"/><file name="Queue.php" hash="4906e1669bac61e66f3d690c646c9ba3"/><file name="Request.php" hash="581cda79900b00e16610d0ac679dc02b"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="12933839daa74d17ac82fca89071bc0a"/></dir><dir name="Eav"><dir name="Mysql4"><dir name="Product"><file name="Action.php" hash="006e3c8c775cf31a8b9c66fb934c9d2d"/></dir></dir></dir><dir name="Fulltext"><file name="Collection.php" hash="b9e2e4884a7ecee0000e6a41c0e6d3e2"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4fd102cb09e8e80e50f9cbf1f621adbb"/><file name="Price.php" hash="0b3302f2d99f5f0d62d7fcd705825db0"/></dir></dir><dir name="Product"><file name="Collection.php" hash="6072bf2a7a4713f3db2fa96014e7453a"/><file name="CollectionTag.php" hash="e89307da7c26ee153c3f9dead94dcd13"/></dir><file name="Store.php" hash="8dd81bf57d38af2b4640bbf14063d3f8"/></dir><file name="Searchanise.php" hash="165cf4d8bfad9b53501376e367c0388c"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Searchanise"><file name="TypeAsync.php" hash="11d1aa481094ccbeab365b1fed33440d"/></dir></dir></dir></dir><dir name="Tag"><file name="Relation.php" hash="598f81fd8b2ac77baf24211c2ed03e55"/></dir></dir><dir name="controllers"><file name="AdvancedController.php" hash="7500f6075382cd8a14816e424da2348f"/><file name="AsyncController.php" hash="f652d0034b42fca3f38f215b869183ac"/><file name="CategoryController.php" hash="909f99c5cf7f85405fc76ebe976c2c8e"/><file name="IndexController.php" hash="e3234ca51a7669741e29ff7c38789989"/><file name="InfoController.php" hash="2dd9fd33883fca3010989d5f468cccf3"/><file name="OptionsController.php" hash="56785c8ea24472c2047268b2d9e8e878"/><file name="ProductController.php" hash="6633fde99f35ffeaa05884f0e0d98da7"/><file name="ResultController.php" hash="434b72272ebb222f775b8010f72ffdde"/><file name="ResyncController.php" hash="0612f929d375427326821dfc12186be8"/><file name="SignupController.php" hash="80f87a63d6272f98a068dde35f1d140e"/></dir><dir name="etc"><file name="config.xml" hash="b934796e46d8682af31b801303b5f4e3"/><file name="system.xml" hash="881fb083ae8711b7dadadd6ab954f764"/></dir><dir name="sql"><dir name="searchanise_setup"><file name="mysql4-install-0.1.0.php" hash="36781ba462935d4026358fb3a1f7c842"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="searchanise"><file name="dashboard.phtml" hash="c76131581bb8dfc21a1f9aa492179b01"/></dir></dir><dir name="layout"><file name="searchanise.xml" hash="1eaff51919b0b8c227fdf1b975ebe6b2"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="searchanise.xml" hash="9a1338f1522adad70042119c25ab64d9"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="template"><dir name="catalogsearch"><file name="form.mini.phtml" hash="937e73ae35afdf220d96132e3ee13424"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Simtech_Searchanise.xml" hash="04148681a6648bd370ab62140cbf2ad9"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Simtech_Searchanise.csv" hash="1bdb7fddc596dac1460bc3054c425187"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Simtech_Searchanise</name>
4
+ <version>1.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="https://searchanise.atlassian.net/wiki/display/DD/LICENSE+AGREEMENT">Commercial license: https://searchanise.atlassian.net/wiki/display/DD/LICENSE+AGREEMENT</license>
7
  <channel>community</channel>
10
  <description>Searchanise is a free SaaS solution providing fast and smart search for online stores. It provides rapid search results and instant search suggestions presented in a fancy and customizable widget.&#xD;
11
  &#xD;
12
  With the help of Searchanise Connector Add-on you will be able to connect your store to the service and start using the search widget in no time. Power up your store right now!</description>
13
+ <notes>[+] Automatic catalog re-indexation on extension update.&lt;br&gt;&#xD;
14
+ [!] Relevance sorting improved (inverse relevance sorting removed).&lt;br&gt;&#xD;
15
+ [!] If a sync error occurs, it is now indicated in the Searchanise admin panel.&lt;br&gt;&#xD;
16
+ [!] Indexation would not start on creating a storefront or changing a storefront status. Fixed.&lt;br&gt;&#xD;
17
+ [!] SEO-friendly links are used for products.</notes>
18
  <authors><author><name>Simbirsk Technologies, Ltd.</name><user>searchanise</user><email>sales@searchanise.com</email></author></authors>
19
+ <date>2013-06-10</date>
20
+ <time>12:21:55</time>
21
+ <contents><target name="magecommunity"><dir name="Simtech"><dir name="Searchanise"><dir name="Block"><file name="Async.php" hash="030cb7d25ba09e32b2e8ab647cf0a2fe"/><file name="Autocomplete.php" hash="efc89ac3f897be3bc307fba6a36778f0"/><file name="Jsinit.php" hash="44d40c5d699abc2ac75a6e172dedd84b"/><dir name="Product"><dir name="List"><file name="Toolbar.php" hash="7191058de95d20a86b65c27b3c73b064"/></dir><file name="Result.php" hash="4e767e273ee21a38332ac226af878291"/></dir><file name="Result.php" hash="dec7b27ab9511c956680eb60eba9b95e"/></dir><dir name="Helper"><file name="ApiSe.php" hash="0c57b2c4241dd22a0c75f11155fe959a"/><file name="ApiXML.php" hash="f8c581b66207a8b26407ee590ed24b9c"/><file name="Data.php" hash="bcf04ec6f1da7818a16c5c3d9cbb2d5f"/></dir><dir name="Model"><file name="Advanced.php" hash="2a22ebcf7ac75b54681ef8a27bad2e47"/><dir name="Config"><file name="Data.php" hash="ddc558d22208f0ebc1e4378c9d050022"/></dir><file name="Config.php" hash="00ca3c7955f3ff2283c636a2074b6f03"/><dir name="Import"><dir name="Entity"><file name="Product.php" hash="4997af528b36f0f576d1c01402e14b03"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="Category.php" hash="e290ab29f2d50e1acbbbb37496150ea4"/><file name="Price.php" hash="743887b32bf012274ad8a371fff96411"/></dir></dir><file name="Layer.php" hash="3e8c975d649ae6e20fcc69d35779c97c"/><file name="LayerCatalogSearch.php" hash="61728092fdb9cf42490afacdc4e731fd"/><dir name="Mysql4"><dir name="Advanced"><file name="Collection.php" hash="dd8c6f3cbb0621a5a7320f3104e68da6"/></dir><dir name="Config"><file name="Collection.php" hash="470218c1eb3f1cc1ca0e6d0e93e1b097"/></dir><file name="Config.php" hash="c95dc8ecd7ab4f955b6eaf4710ab960e"/><dir name="Fulltext"><file name="Collection.php" hash="5646955503a90020f87cfd861ac07e73"/></dir><dir name="Product"><file name="Collection.php" hash="28b478eb328502ce03e389404d9f54b5"/><file name="CollectionTag.php" hash="def509d1365374e6dede36be17e75bf3"/></dir><dir name="Queue"><file name="Collection.php" hash="30ca0f8640bdc443deb94cd2e71010c8"/></dir><file name="Queue.php" hash="286351623e8f011a21519f8d9c3e3151"/><file name="Store.php" hash="0126a4291d7dad6641bf59abb0f64cc4"/></dir><file name="Observer.php" hash="a6b739682ff1eccdc2090e99bf052473"/><file name="Queue.php" hash="f73d67d10fb1a42934902e945e11c084"/><file name="Request.php" hash="581cda79900b00e16610d0ac679dc02b"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="12933839daa74d17ac82fca89071bc0a"/></dir><dir name="Eav"><dir name="Mysql4"><dir name="Product"><file name="Action.php" hash="006e3c8c775cf31a8b9c66fb934c9d2d"/></dir></dir></dir><dir name="Fulltext"><file name="Collection.php" hash="b9e2e4884a7ecee0000e6a41c0e6d3e2"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4fd102cb09e8e80e50f9cbf1f621adbb"/><file name="Price.php" hash="0b3302f2d99f5f0d62d7fcd705825db0"/></dir></dir><dir name="Product"><file name="Collection.php" hash="6072bf2a7a4713f3db2fa96014e7453a"/><file name="CollectionTag.php" hash="e89307da7c26ee153c3f9dead94dcd13"/></dir><file name="Store.php" hash="8dd81bf57d38af2b4640bbf14063d3f8"/></dir><file name="Searchanise.php" hash="507813e92908000315aabc4256c5a05c"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Searchanise"><file name="TypeAsync.php" hash="11d1aa481094ccbeab365b1fed33440d"/></dir></dir></dir></dir><dir name="Tag"><file name="Relation.php" hash="598f81fd8b2ac77baf24211c2ed03e55"/></dir></dir><dir name="controllers"><file name="AdvancedController.php" hash="7500f6075382cd8a14816e424da2348f"/><file name="AsyncController.php" hash="da396c439c66a41ee58b3ae8997e1c46"/><file name="CategoryController.php" hash="909f99c5cf7f85405fc76ebe976c2c8e"/><file name="IndexController.php" hash="e3234ca51a7669741e29ff7c38789989"/><file name="InfoController.php" hash="dbd63cac996bc86387fd762827a506e9"/><file name="OptionsController.php" hash="56785c8ea24472c2047268b2d9e8e878"/><file name="ProductController.php" hash="6633fde99f35ffeaa05884f0e0d98da7"/><file name="ResultController.php" hash="434b72272ebb222f775b8010f72ffdde"/><file name="ResyncController.php" hash="0612f929d375427326821dfc12186be8"/><file name="SignupController.php" hash="80f87a63d6272f98a068dde35f1d140e"/></dir><dir name="etc"><file name="config.xml" hash="5d25d2b7d52bd0abb13381a40a33e36e"/><file name="system.xml" hash="881fb083ae8711b7dadadd6ab954f764"/></dir><dir name="sql"><dir name="searchanise_setup"><file name="mysql4-install-0.1.0.php" hash="754324c8783e9cc24de86396e1587e73"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="searchanise"><file name="dashboard.phtml" hash="8b9793a009151951e1e1f8e4cecb4db2"/></dir></dir><dir name="layout"><file name="searchanise.xml" hash="68baa611d05db05f8816ea2a8260e961"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="searchanise.xml" hash="5e904fee02cbd42324a297d513b9f582"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="template"><dir name="catalogsearch"><file name="form.mini.phtml" hash="fcf8e06e66801a36c96f20ca5d187123"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Simtech_Searchanise.xml" hash="04148681a6648bd370ab62140cbf2ad9"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Simtech_Searchanise.csv" hash="1bdb7fddc596dac1460bc3054c425187"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
24
  </package>