Version Notes
[*] Products export from the store become more stable.
[!] Search may didn't work after the new user group was added. Fixed.
[!] Inactive products were shown in the search results widget. Fixed.
[!] Out of stock products were shown in the search results widget. Fixed.
[!] Wrong export of the 'Multiple Select' data attribute of the product. Fixed.
Download this release
Release Info
| Developer | Simbirsk Technologies, Ltd. |
| Extension | Simtech_Searchanise |
| Version | 3.1.4 |
| Comparing to | |
| See all releases | |
Code changes from version 3.1.3 to 3.1.4
- app/code/community/Simtech/Searchanise/Block/Jsinit.php +4 -1
- app/code/community/Simtech/Searchanise/Helper/ApiProducts.php +58 -113
- app/code/community/Simtech/Searchanise/Helper/ApiSe.php +18 -35
- app/code/community/Simtech/Searchanise/Model/Observer.php +0 -40
- app/code/community/Simtech/Searchanise/Model/Queue.php +1 -11
- app/code/community/Simtech/Searchanise/controllers/AsyncController.php +22 -51
- app/code/community/Simtech/Searchanise/controllers/InfoController.php +2 -2
- app/code/community/Simtech/Searchanise/etc/config.xml +2 -2
- app/code/community/Simtech/Searchanise/etc/config_without_search.xml +2 -2
- app/design/adminhtml/default/default/template/searchanise/dashboard.phtml +1 -1
- package.xml +9 -9
app/code/community/Simtech/Searchanise/Block/Jsinit.php
CHANGED
|
@@ -56,12 +56,13 @@ class Simtech_Searchanise_Block_Jsinit extends Mage_Core_Block_Text
|
|
| 56 |
$seServiceUrl = Mage::helper('searchanise/ApiSe')->getServiceUrl();
|
| 57 |
$searchWidgetsLink = Mage::helper('searchanise/ApiSe')->getSearchWidgetsLink(false);
|
| 58 |
|
| 59 |
-
$restrictBy = '';
|
| 60 |
$showOutOfStock = Mage::getStoreConfigFlag(Mage_CatalogInventory_Helper_Data::XML_PATH_SHOW_OUT_OF_STOCK);
|
| 61 |
if ($showOutOfStock) {
|
| 62 |
// nothing
|
| 63 |
} else {
|
| 64 |
$restrictBy .= "Searchanise.AutoCmpParams.restrictBy.is_in_stock = '1';";
|
|
|
|
| 65 |
}
|
| 66 |
|
| 67 |
$priceFormat = Mage::helper('searchanise/ApiSe')->getPriceFormat($store);
|
|
@@ -101,7 +102,9 @@ class Simtech_Searchanise_Block_Jsinit extends Mage_Core_Block_Text
|
|
| 101 |
Searchanise.ResultsParams.union.price.min = '" . Mage::helper('searchanise/ApiSe')->getCurLabelForPricesUsergroup() . "';
|
| 102 |
|
| 103 |
Searchanise.ResultsParams.restrictBy = {};
|
|
|
|
| 104 |
Searchanise.ResultsParams.restrictBy.visibility = '3|4';
|
|
|
|
| 105 |
|
| 106 |
Searchanise.options.PriceFormat = {
|
| 107 |
decimals_separator: '" . addslashes($priceFormat['decimals_separator']) . "',
|
| 56 |
$seServiceUrl = Mage::helper('searchanise/ApiSe')->getServiceUrl();
|
| 57 |
$searchWidgetsLink = Mage::helper('searchanise/ApiSe')->getSearchWidgetsLink(false);
|
| 58 |
|
| 59 |
+
$restrictBy = $resultsRestrictBy = '';
|
| 60 |
$showOutOfStock = Mage::getStoreConfigFlag(Mage_CatalogInventory_Helper_Data::XML_PATH_SHOW_OUT_OF_STOCK);
|
| 61 |
if ($showOutOfStock) {
|
| 62 |
// nothing
|
| 63 |
} else {
|
| 64 |
$restrictBy .= "Searchanise.AutoCmpParams.restrictBy.is_in_stock = '1';";
|
| 65 |
+
$resultsRestrictBy .= "Searchanise.ResultsParams.restrictBy.is_in_stock = '1';";
|
| 66 |
}
|
| 67 |
|
| 68 |
$priceFormat = Mage::helper('searchanise/ApiSe')->getPriceFormat($store);
|
| 102 |
Searchanise.ResultsParams.union.price.min = '" . Mage::helper('searchanise/ApiSe')->getCurLabelForPricesUsergroup() . "';
|
| 103 |
|
| 104 |
Searchanise.ResultsParams.restrictBy = {};
|
| 105 |
+
Searchanise.ResultsParams.restrictBy.status = '1';
|
| 106 |
Searchanise.ResultsParams.restrictBy.visibility = '3|4';
|
| 107 |
+
{$resultsRestrictBy}
|
| 108 |
|
| 109 |
Searchanise.options.PriceFormat = {
|
| 110 |
decimals_separator: '" . addslashes($priceFormat['decimals_separator']) . "',
|
app/code/community/Simtech/Searchanise/Helper/ApiProducts.php
CHANGED
|
@@ -455,7 +455,7 @@ class Simtech_Searchanise_Helper_ApiProducts extends Mage_Core_Helper_Data
|
|
| 455 |
|
| 456 |
if ($textValues != '') {
|
| 457 |
if ($inputType == 'multiselect') {
|
| 458 |
-
$values = explode(',', $textValues);
|
| 459 |
} else {
|
| 460 |
$values[] = $textValues;
|
| 461 |
}
|
|
@@ -507,49 +507,20 @@ class Simtech_Searchanise_Helper_ApiProducts extends Mage_Core_Helper_Data
|
|
| 507 |
return $values;
|
| 508 |
}
|
| 509 |
|
| 510 |
-
public static function getProductAttributes(
|
| 511 |
{
|
| 512 |
-
|
| 513 |
-
static $allAttributes;
|
| 514 |
-
|
| 515 |
-
if (!isset($allAttributes)) {
|
| 516 |
-
$allAttributes = Mage::getResourceModel('catalog/product_attribute_collection');
|
| 517 |
-
$allAttributes
|
| 518 |
-
->setItemObjectClass('catalog/resource_eav_attribute')
|
| 519 |
-
// ->setOrder('position', 'ASC') // not need, because It will slow with "order"
|
| 520 |
-
->load();
|
| 521 |
-
}
|
| 522 |
-
|
| 523 |
-
return $allAttributes;
|
| 524 |
-
}
|
| 525 |
-
|
| 526 |
-
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
|
| 527 |
-
->setItemObjectClass('catalog/resource_eav_attribute');
|
| 528 |
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
// if ($store) {
|
| 532 |
-
// $filters->addStoreLabel($store->getId());
|
| 533 |
-
// }
|
| 534 |
-
// end fixme
|
| 535 |
-
|
| 536 |
-
if (is_array($attributeIds)) {
|
| 537 |
-
$attributes->addFieldToFilter('main_table.attribute_id', array('in' => $attributeIds));
|
| 538 |
-
} else {
|
| 539 |
-
$attributes->addFieldToFilter('main_table.attribute_id', array('eq' => $attributeIds));
|
| 540 |
}
|
| 541 |
-
if ($isPrice) {
|
| 542 |
-
$attributes->addFieldToFilter('main_table.frontend_input', array('eq' => 'price'));
|
| 543 |
-
}
|
| 544 |
-
|
| 545 |
-
$attributes->load();
|
| 546 |
|
| 547 |
-
return $
|
| 548 |
}
|
| 549 |
|
| 550 |
private static function _generateProductAttributes(&$item, $product, $childrenProducts = null, $unitedProducts = null, $store = null)
|
| 551 |
{
|
| 552 |
-
$attributes = self::getProductAttributes(
|
| 553 |
|
| 554 |
if ($attributes) {
|
| 555 |
$requiredAttributes = self::_getRequiredAttributes();
|
|
@@ -1239,11 +1210,6 @@ class Simtech_Searchanise_Helper_ApiProducts extends Mage_Core_Helper_Data
|
|
| 1239 |
|
| 1240 |
return $items;
|
| 1241 |
}
|
| 1242 |
-
|
| 1243 |
-
public static function getSchemaPrices($store = null)
|
| 1244 |
-
{
|
| 1245 |
-
return self::getSchema(null, $store, true);
|
| 1246 |
-
}
|
| 1247 |
|
| 1248 |
public static function getSchemaCustomerGroupsPrices()
|
| 1249 |
{
|
|
@@ -1263,78 +1229,57 @@ class Simtech_Searchanise_Helper_ApiProducts extends Mage_Core_Helper_Data
|
|
| 1263 |
return $items;
|
| 1264 |
}
|
| 1265 |
|
| 1266 |
-
public static function
|
| 1267 |
{
|
| 1268 |
-
|
| 1269 |
-
if (Mage::helper('searchanise/ApiSe')->getResultsWidgetEnabled($store)) {
|
| 1270 |
-
$category_schema[] = array(
|
| 1271 |
-
'name' => 'categories',
|
| 1272 |
-
'title' => Mage::helper('catalog')->__('Category'),
|
| 1273 |
-
'type' => 'text',
|
| 1274 |
-
'weight' => self::WEIGHT_CATEGORIES,
|
| 1275 |
-
'text_search' => 'Y',
|
| 1276 |
-
'facet' => self::_generateFacetFromCustom(Mage::helper('catalog')->__('Category'), 10, 'categories', 'select'),
|
| 1277 |
-
);
|
| 1278 |
-
} else {
|
| 1279 |
-
$category_schema[] = array(
|
| 1280 |
-
'name' => 'categories',
|
| 1281 |
-
'title' => Mage::helper('catalog')->__('Category'),
|
| 1282 |
-
'type' => 'text',
|
| 1283 |
-
'weight' => self::WEIGHT_CATEGORIES,
|
| 1284 |
-
'text_search' => 'Y',
|
| 1285 |
-
);
|
| 1286 |
-
$category_schema[] = array(
|
| 1287 |
-
'name' => 'category_ids',
|
| 1288 |
-
'title' => Mage::helper('catalog')->__('Category') . ' - IDs',
|
| 1289 |
-
'type' => 'text',
|
| 1290 |
-
'weight' => 0,
|
| 1291 |
-
'text_search' => 'N',
|
| 1292 |
-
'facet' => self::_generateFacetFromCustom(Mage::helper('catalog')->__('Category'), 10, 'category_ids', 'select'),
|
| 1293 |
-
);
|
| 1294 |
-
}
|
| 1295 |
|
| 1296 |
-
|
| 1297 |
-
|
| 1298 |
|
| 1299 |
-
|
| 1300 |
-
|
| 1301 |
-
|
| 1302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1303 |
'name' => 'tags',
|
| 1304 |
'title' => Mage::helper('catalog')->__('Product Tags'),
|
| 1305 |
'type' => 'text',
|
| 1306 |
'weight' => self::WEIGHT_TAGS,
|
| 1307 |
'text_search' => 'Y',
|
| 1308 |
-
)
|
| 1309 |
-
);
|
| 1310 |
-
}
|
| 1311 |
-
|
| 1312 |
-
public static function getSchema($attributeIds = Simtech_Searchanise_Model_Queue::NOT_DATA, $store, $isPrice = false)
|
| 1313 |
-
{
|
| 1314 |
-
static $schemas;
|
| 1315 |
-
|
| 1316 |
-
if (isset($schemas[$store->getId()])) {
|
| 1317 |
-
return $schemas[$store->getId()];
|
| 1318 |
-
}
|
| 1319 |
-
|
| 1320 |
-
Mage::app()->setCurrentStore($store->getId());
|
| 1321 |
-
|
| 1322 |
-
$schema = array();
|
| 1323 |
-
|
| 1324 |
-
if ($attributeIds === Simtech_Searchanise_Model_Queue::NOT_DATA) {
|
| 1325 |
-
$schema = self::getSchemaCustomerGroupsPrices();
|
| 1326 |
-
|
| 1327 |
-
if ($items = self::getSchemaCategories($store)) {
|
| 1328 |
-
foreach ($items as $keyItem => $item) {
|
| 1329 |
-
$schema[] = $item;
|
| 1330 |
-
}
|
| 1331 |
-
}
|
| 1332 |
|
| 1333 |
-
if ($items = self::getSchemaTags()) {
|
| 1334 |
-
foreach ($items as $keyItem => $item) {
|
| 1335 |
-
$schema[] = $item;
|
| 1336 |
-
}
|
| 1337 |
-
}
|
| 1338 |
$schema[] = array(
|
| 1339 |
'name' => 'is_in_stock',
|
| 1340 |
'title' => Mage::helper('catalog')->__('Stock Availability'),
|
|
@@ -1342,21 +1287,21 @@ class Simtech_Searchanise_Helper_ApiProducts extends Mage_Core_Helper_Data
|
|
| 1342 |
'weight' => 0,
|
| 1343 |
'text_search' => 'N',
|
| 1344 |
);
|
| 1345 |
-
}
|
| 1346 |
|
| 1347 |
-
|
| 1348 |
-
|
| 1349 |
-
|
| 1350 |
-
|
| 1351 |
-
|
|
|
|
| 1352 |
}
|
| 1353 |
}
|
| 1354 |
}
|
| 1355 |
-
}
|
| 1356 |
|
| 1357 |
-
|
|
|
|
| 1358 |
|
| 1359 |
-
return $
|
| 1360 |
}
|
| 1361 |
|
| 1362 |
public static function getHeader($store = null)
|
| 455 |
|
| 456 |
if ($textValues != '') {
|
| 457 |
if ($inputType == 'multiselect') {
|
| 458 |
+
$values = array_map('trim', explode(',', $textValues));
|
| 459 |
} else {
|
| 460 |
$values[] = $textValues;
|
| 461 |
}
|
| 507 |
return $values;
|
| 508 |
}
|
| 509 |
|
| 510 |
+
public static function getProductAttributes()
|
| 511 |
{
|
| 512 |
+
static $allAttributes;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 513 |
|
| 514 |
+
if (!isset($allAttributes)) {
|
| 515 |
+
$allAttributes = Mage::getResourceModel('catalog/product_attribute_collection')->setItemObjectClass('catalog/resource_eav_attribute')->load();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 517 |
|
| 518 |
+
return $allAttributes;
|
| 519 |
}
|
| 520 |
|
| 521 |
private static function _generateProductAttributes(&$item, $product, $childrenProducts = null, $unitedProducts = null, $store = null)
|
| 522 |
{
|
| 523 |
+
$attributes = self::getProductAttributes();
|
| 524 |
|
| 525 |
if ($attributes) {
|
| 526 |
$requiredAttributes = self::_getRequiredAttributes();
|
| 1210 |
|
| 1211 |
return $items;
|
| 1212 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1213 |
|
| 1214 |
public static function getSchemaCustomerGroupsPrices()
|
| 1215 |
{
|
| 1229 |
return $items;
|
| 1230 |
}
|
| 1231 |
|
| 1232 |
+
public static function getSchema($store)
|
| 1233 |
{
|
| 1234 |
+
static $schemas;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1235 |
|
| 1236 |
+
if (!isset($schemas[$store->getId()])) {
|
| 1237 |
+
Mage::app()->setCurrentStore($store->getId());
|
| 1238 |
|
| 1239 |
+
$schema = self::getSchemaCustomerGroupsPrices();
|
| 1240 |
+
|
| 1241 |
+
if (Mage::helper('searchanise/ApiSe')->getResultsWidgetEnabled($store)) {
|
| 1242 |
+
$schema[] = array(
|
| 1243 |
+
'name' => 'categories',
|
| 1244 |
+
'title' => Mage::helper('catalog')->__('Category'),
|
| 1245 |
+
'type' => 'text',
|
| 1246 |
+
'weight' => self::WEIGHT_CATEGORIES,
|
| 1247 |
+
'text_search' => 'Y',
|
| 1248 |
+
'facet' => self::_generateFacetFromCustom(Mage::helper('catalog')->__('Category'), 10, 'categories', 'select'),
|
| 1249 |
+
);
|
| 1250 |
+
$schema[] = array(
|
| 1251 |
+
'name' => 'category_ids',
|
| 1252 |
+
'title' => Mage::helper('catalog')->__('Category') . ' - IDs',
|
| 1253 |
+
'type' => 'text',
|
| 1254 |
+
'weight' => 0,
|
| 1255 |
+
'text_search' => 'N',
|
| 1256 |
+
);
|
| 1257 |
+
} else {
|
| 1258 |
+
$schema[] = array(
|
| 1259 |
+
'name' => 'categories',
|
| 1260 |
+
'title' => Mage::helper('catalog')->__('Category'),
|
| 1261 |
+
'type' => 'text',
|
| 1262 |
+
'weight' => self::WEIGHT_CATEGORIES,
|
| 1263 |
+
'text_search' => 'Y',
|
| 1264 |
+
);
|
| 1265 |
+
$schema[] = array(
|
| 1266 |
+
'name' => 'category_ids',
|
| 1267 |
+
'title' => Mage::helper('catalog')->__('Category') . ' - IDs',
|
| 1268 |
+
'type' => 'text',
|
| 1269 |
+
'weight' => 0,
|
| 1270 |
+
'text_search' => 'N',
|
| 1271 |
+
'facet' => self::_generateFacetFromCustom(Mage::helper('catalog')->__('Category'), 10, 'category_ids', 'select'),
|
| 1272 |
+
);
|
| 1273 |
+
}
|
| 1274 |
+
|
| 1275 |
+
$schema[] = array(
|
| 1276 |
'name' => 'tags',
|
| 1277 |
'title' => Mage::helper('catalog')->__('Product Tags'),
|
| 1278 |
'type' => 'text',
|
| 1279 |
'weight' => self::WEIGHT_TAGS,
|
| 1280 |
'text_search' => 'Y',
|
| 1281 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1282 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1283 |
$schema[] = array(
|
| 1284 |
'name' => 'is_in_stock',
|
| 1285 |
'title' => Mage::helper('catalog')->__('Stock Availability'),
|
| 1287 |
'weight' => 0,
|
| 1288 |
'text_search' => 'N',
|
| 1289 |
);
|
|
|
|
| 1290 |
|
| 1291 |
+
if ($attributes = self::getProductAttributes()) {
|
| 1292 |
+
foreach ($attributes as $attribute) {
|
| 1293 |
+
if ($items = self::getSchemaAttribute($attribute, $store)) {
|
| 1294 |
+
foreach ($items as $keyItem => $item) {
|
| 1295 |
+
$schema[] = $item;
|
| 1296 |
+
}
|
| 1297 |
}
|
| 1298 |
}
|
| 1299 |
}
|
|
|
|
| 1300 |
|
| 1301 |
+
$schemas[$store->getId()] = $schema;
|
| 1302 |
+
}
|
| 1303 |
|
| 1304 |
+
return $schemas[$store->getId()];
|
| 1305 |
}
|
| 1306 |
|
| 1307 |
public static function getHeader($store = null)
|
app/code/community/Simtech/Searchanise/Helper/ApiSe.php
CHANGED
|
@@ -178,10 +178,15 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 178 |
|
| 179 |
public static function checkSearchaniseResult($searchaniseRequest = null, $store = null)
|
| 180 |
{
|
| 181 |
-
if ((
|
| 182 |
-
|
| 183 |
-
|
| 184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
if ($searchaniseRequest === true) {
|
| 186 |
return true;
|
| 187 |
}
|
|
@@ -601,7 +606,7 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 601 |
public static function getApiKeys()
|
| 602 |
{
|
| 603 |
$ret = array();
|
| 604 |
-
$stores =
|
| 605 |
|
| 606 |
if ($stores != '') {
|
| 607 |
foreach ($stores as $k_store => $store) {
|
|
@@ -1038,7 +1043,7 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 1038 |
public static function getPrivateKeys()
|
| 1039 |
{
|
| 1040 |
$ret = array();
|
| 1041 |
-
$stores =
|
| 1042 |
|
| 1043 |
if (!empty($stores)) {
|
| 1044 |
foreach ($stores as $k_store => $store) {
|
|
@@ -1450,14 +1455,6 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 1450 |
);
|
| 1451 |
Mage::getModel('searchanise/queue')->setData($queueData)->save();
|
| 1452 |
|
| 1453 |
-
$queueData = array(
|
| 1454 |
-
'data' => Simtech_Searchanise_Model_Queue::NOT_DATA,
|
| 1455 |
-
'action' => Simtech_Searchanise_Model_Queue::ACT_UPDATE_ATTRIBUTES,
|
| 1456 |
-
'store_id' => $store->getId(),
|
| 1457 |
-
);
|
| 1458 |
-
|
| 1459 |
-
Mage::getModel('searchanise/queue')->setData($queueData)->save();
|
| 1460 |
-
|
| 1461 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_PRODUCTS, true);
|
| 1462 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_CATEGORIES, true);
|
| 1463 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_PAGES, true);
|
|
@@ -1511,6 +1508,7 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 1511 |
if (!empty($items)) {
|
| 1512 |
$dataForSend = array(
|
| 1513 |
'header' => $header,
|
|
|
|
| 1514 |
'items' => $items,
|
| 1515 |
);
|
| 1516 |
}
|
|
@@ -1531,28 +1529,14 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 1531 |
'pages' => $pages,
|
| 1532 |
);
|
| 1533 |
}
|
| 1534 |
-
} elseif ($q['action'] == Simtech_Searchanise_Model_Queue::ACT_UPDATE_ATTRIBUTES) {
|
| 1535 |
-
$schema = null;
|
| 1536 |
|
| 1537 |
-
|
| 1538 |
-
|
| 1539 |
-
|
| 1540 |
-
} elseif ($data == Simtech_Searchanise_Model_Queue::DATA_FACET_PRICES) {
|
| 1541 |
-
$schema = Mage::helper('searchanise/ApiProducts')->getSchemaPrices($store);
|
| 1542 |
|
| 1543 |
-
|
| 1544 |
-
|
| 1545 |
-
|
| 1546 |
-
|
| 1547 |
-
$schema = Mage::helper('searchanise/ApiProducts')->getSchema($data, $store);
|
| 1548 |
-
}
|
| 1549 |
-
|
| 1550 |
-
if (!empty($schema)) {
|
| 1551 |
-
$dataForSend = array(
|
| 1552 |
-
'header' => $header,
|
| 1553 |
-
'schema' => $schema,
|
| 1554 |
-
);
|
| 1555 |
-
}
|
| 1556 |
}
|
| 1557 |
|
| 1558 |
if (!empty($dataForSend)) {
|
|
@@ -1625,8 +1609,7 @@ class Simtech_Searchanise_Helper_ApiSe
|
|
| 1625 |
|
| 1626 |
public static function echoConnectProgress($text)
|
| 1627 |
{
|
| 1628 |
-
|
| 1629 |
-
//~ echo $text;
|
| 1630 |
}
|
| 1631 |
|
| 1632 |
public static function sendAddonStatusRequest($status = 'enabled', $curStore = NULL)
|
| 178 |
|
| 179 |
public static function checkSearchaniseResult($searchaniseRequest = null, $store = null)
|
| 180 |
{
|
| 181 |
+
if (empty($store)) {
|
| 182 |
+
$store = Mage::app()->getStore();
|
| 183 |
+
}
|
| 184 |
|
| 185 |
+
if (!empty(self::$seStoreIds) && !in_array($store->getId(), self::$seStoreIds)) {
|
| 186 |
+
return false;
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
if (self::getStatusModule($store) == 'Y' && self::checkExportStatus($store) && !empty($searchaniseRequest)) {
|
| 190 |
if ($searchaniseRequest === true) {
|
| 191 |
return true;
|
| 192 |
}
|
| 606 |
public static function getApiKeys()
|
| 607 |
{
|
| 608 |
$ret = array();
|
| 609 |
+
$stores = self::getStores();
|
| 610 |
|
| 611 |
if ($stores != '') {
|
| 612 |
foreach ($stores as $k_store => $store) {
|
| 1043 |
public static function getPrivateKeys()
|
| 1044 |
{
|
| 1045 |
$ret = array();
|
| 1046 |
+
$stores = self::getStores();
|
| 1047 |
|
| 1048 |
if (!empty($stores)) {
|
| 1049 |
foreach ($stores as $k_store => $store) {
|
| 1455 |
);
|
| 1456 |
Mage::getModel('searchanise/queue')->setData($queueData)->save();
|
| 1457 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1458 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_PRODUCTS, true);
|
| 1459 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_CATEGORIES, true);
|
| 1460 |
self::_addTaskByChunk($store, $action = Simtech_Searchanise_Model_Queue::ACT_UPDATE_PAGES, true);
|
| 1508 |
if (!empty($items)) {
|
| 1509 |
$dataForSend = array(
|
| 1510 |
'header' => $header,
|
| 1511 |
+
'schema' => Mage::helper('searchanise/ApiProducts')->getSchema($store),
|
| 1512 |
'items' => $items,
|
| 1513 |
);
|
| 1514 |
}
|
| 1529 |
'pages' => $pages,
|
| 1530 |
);
|
| 1531 |
}
|
|
|
|
|
|
|
| 1532 |
|
| 1533 |
+
} elseif ($q['action'] == Simtech_Searchanise_Model_Queue::ACT_UPDATE_ATTRIBUTES) {
|
| 1534 |
+
$schema = Mage::helper('searchanise/ApiProducts')->getSchema($store);
|
|
|
|
|
|
|
|
|
|
| 1535 |
|
| 1536 |
+
$dataForSend = array(
|
| 1537 |
+
'header' => $header,
|
| 1538 |
+
'schema' => $schema,
|
| 1539 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1540 |
}
|
| 1541 |
|
| 1542 |
if (!empty($dataForSend)) {
|
| 1609 |
|
| 1610 |
public static function echoConnectProgress($text)
|
| 1611 |
{
|
| 1612 |
+
echo $text;
|
|
|
|
| 1613 |
}
|
| 1614 |
|
| 1615 |
public static function sendAddonStatusRequest($status = 'enabled', $curStore = NULL)
|
app/code/community/Simtech/Searchanise/Model/Observer.php
CHANGED
|
@@ -572,46 +572,6 @@ class Simtech_Searchanise_Model_Observer
|
|
| 572 |
*/
|
| 573 |
public function searchaniseAdminhtmlConfigDataSaveAfter(Varien_Event_Observer $observer)
|
| 574 |
{
|
| 575 |
-
$model = $observer->getData('object');
|
| 576 |
-
$section = $model->getSection();
|
| 577 |
-
$storesIds = $model->getStore();
|
| 578 |
-
$website = $model->getWebsite();
|
| 579 |
-
|
| 580 |
-
if (empty($storesIds)) {
|
| 581 |
-
if (!empty($website)) {
|
| 582 |
-
$storesIds = Mage::helper('searchanise/ApiSe')->getStoreByWebsiteCodes($website);
|
| 583 |
-
}
|
| 584 |
-
}
|
| 585 |
-
|
| 586 |
-
$stores = Mage::helper('searchanise/ApiSe')->getStores(null, $storesIds);
|
| 587 |
-
|
| 588 |
-
if (!empty($stores)) {
|
| 589 |
-
if ($section == 'catalog') {
|
| 590 |
-
foreach ($stores as $k => $store) {
|
| 591 |
-
if ($attributes = Mage::helper('searchanise/ApiProducts')->getProductAttributes(null, $store, true)) {
|
| 592 |
-
foreach ($attributes as $attribute) {
|
| 593 |
-
Mage::getModel('searchanise/queue')->addAction(Simtech_Searchanise_Model_Queue::ACT_UPDATE_ATTRIBUTES, $attribute->getId(), $store);
|
| 594 |
-
}
|
| 595 |
-
}
|
| 596 |
-
|
| 597 |
-
// change facet-prices
|
| 598 |
-
{
|
| 599 |
-
$queueData = array(
|
| 600 |
-
'data' => serialize(Simtech_Searchanise_Model_Queue::DATA_FACET_PRICES),
|
| 601 |
-
'action' => Simtech_Searchanise_Model_Queue::ACT_UPDATE_ATTRIBUTES,
|
| 602 |
-
'store_id' => $store->getId(),
|
| 603 |
-
);
|
| 604 |
-
|
| 605 |
-
Mage::getModel('searchanise/queue')->setData($queueData)->save();
|
| 606 |
-
}
|
| 607 |
-
}
|
| 608 |
-
|
| 609 |
-
// Change status module
|
| 610 |
-
} elseif ($section == 'advanced') {
|
| 611 |
-
|
| 612 |
-
}
|
| 613 |
-
}
|
| 614 |
-
|
| 615 |
return $this;
|
| 616 |
}
|
| 617 |
|
| 572 |
*/
|
| 573 |
public function searchaniseAdminhtmlConfigDataSaveAfter(Varien_Event_Observer $observer)
|
| 574 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 575 |
return $this;
|
| 576 |
}
|
| 577 |
|
app/code/community/Simtech/Searchanise/Model/Queue.php
CHANGED
|
@@ -14,17 +14,7 @@
|
|
| 14 |
|
| 15 |
class Simtech_Searchanise_Model_Queue extends Mage_Core_Model_Abstract
|
| 16 |
{
|
| 17 |
-
const NOT_DATA
|
| 18 |
-
const DATA_FACET_TAGS = 'facet_tags';
|
| 19 |
-
const DATA_FACET_PRICES = 'facet_prices';
|
| 20 |
-
|
| 21 |
-
const DATA_CATEGORIES = 'categories';
|
| 22 |
-
|
| 23 |
-
public static $dataTypes = array(
|
| 24 |
-
self::DATA_FACET_TAGS,
|
| 25 |
-
self::DATA_FACET_PRICES,
|
| 26 |
-
self::DATA_CATEGORIES,
|
| 27 |
-
);
|
| 28 |
|
| 29 |
const ACT_PHRASE = 'phrase';
|
| 30 |
|
| 14 |
|
| 15 |
class Simtech_Searchanise_Model_Queue extends Mage_Core_Model_Abstract
|
| 16 |
{
|
| 17 |
+
const NOT_DATA = 'N';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
const ACT_PHRASE = 'phrase';
|
| 20 |
|
app/code/community/Simtech/Searchanise/controllers/AsyncController.php
CHANGED
|
@@ -72,63 +72,34 @@ class Simtech_Searchanise_AsyncController extends Mage_Core_Controller_Front_Act
|
|
| 72 |
{
|
| 73 |
if (Mage::helper('searchanise/ApiSe')->getStatusModule() == 'Y') {
|
| 74 |
$checkKey = Mage::helper('searchanise')->checkPrivateKey();
|
| 75 |
-
|
| 76 |
-
// not need because it checked in the "Async.php" block
|
| 77 |
-
// if (Mage::helper('searchanise/ApiSe')->checkStartAsync()) {
|
| 78 |
-
if (true) {
|
| 79 |
-
$check = true;
|
| 80 |
-
// code if need use httprequest
|
| 81 |
-
// $check = $this->checkNotUseHttpRequest();
|
| 82 |
-
// Mage::app('admin')->setUseSessionInUrl(false);
|
| 83 |
-
// Mage::app('customer')->setUseSessionInUrl(false); // need check: sometimes not work properly (the async script will not start)
|
| 84 |
-
// end code
|
| 85 |
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
}
|
| 98 |
-
$flIgnoreProcessing = false;
|
| 99 |
-
if ($checkKey && $this->getRequest()->getParam('ignore_processing') === 'Y') {
|
| 100 |
-
$flIgnoreProcessing = true;
|
| 101 |
-
}
|
| 102 |
|
| 103 |
-
|
|
|
|
|
|
|
|
|
|
| 104 |
|
| 105 |
-
|
| 106 |
-
echo 'Searchanise status sync: ';
|
| 107 |
-
echo $result;
|
| 108 |
-
}
|
| 109 |
-
|
| 110 |
-
die();
|
| 111 |
-
|
| 112 |
-
} else {
|
| 113 |
-
@ignore_user_abort(false);
|
| 114 |
-
@set_time_limit(Mage::helper('searchanise/ApiSe')->getAjaxAsyncTimeout());
|
| 115 |
-
$asyncUrl = Mage::helper('searchanise/ApiSe')->getAsyncUrl(false, 0, false);
|
| 116 |
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
array(
|
| 121 |
-
Simtech_Searchanise_Helper_ApiSe::NOT_USE_HTTP_REQUEST => Simtech_Searchanise_Helper_ApiSe::NOT_USE_HTTP_REQUEST_KEY,
|
| 122 |
-
),
|
| 123 |
-
array(),
|
| 124 |
-
array(),
|
| 125 |
-
Mage::helper('searchanise/ApiSe')->getAjaxAsyncTimeout(),
|
| 126 |
-
2 // maxredirects
|
| 127 |
-
);
|
| 128 |
-
}
|
| 129 |
}
|
|
|
|
|
|
|
| 130 |
}
|
| 131 |
-
|
| 132 |
return $this;
|
| 133 |
}
|
| 134 |
}
|
| 72 |
{
|
| 73 |
if (Mage::helper('searchanise/ApiSe')->getStatusModule() == 'Y') {
|
| 74 |
$checkKey = Mage::helper('searchanise')->checkPrivateKey();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
+
@ignore_user_abort(true);
|
| 77 |
+
@set_time_limit(0);
|
| 78 |
+
if ($checkKey && $this->getRequest()->getParam('display_errors') === 'Y') {
|
| 79 |
+
@error_reporting(E_ALL | E_STRICT);
|
| 80 |
+
@ini_set('display_errors', 1);
|
| 81 |
+
@ini_set('display_startup_errors', 1);
|
| 82 |
+
} else {
|
| 83 |
+
@error_reporting(0);
|
| 84 |
+
@ini_set('display_errors', 0);
|
| 85 |
+
@ini_set('display_startup_errors', 0);
|
| 86 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
+
$flIgnoreProcessing = false;
|
| 89 |
+
if ($checkKey && $this->getRequest()->getParam('ignore_processing') === 'Y') {
|
| 90 |
+
$flIgnoreProcessing = true;
|
| 91 |
+
}
|
| 92 |
|
| 93 |
+
$result = Mage::helper('searchanise/ApiSe')->async($flIgnoreProcessing);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
|
| 95 |
+
if ($this->checkShowSatusAsync()) {
|
| 96 |
+
echo 'Searchanise status sync: ';
|
| 97 |
+
echo $result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
}
|
| 99 |
+
|
| 100 |
+
exit();
|
| 101 |
}
|
| 102 |
+
|
| 103 |
return $this;
|
| 104 |
}
|
| 105 |
}
|
app/code/community/Simtech/Searchanise/controllers/InfoController.php
CHANGED
|
@@ -136,7 +136,7 @@ class Simtech_Searchanise_InfoController extends Mage_Core_Controller_Front_Acti
|
|
| 136 |
$feed = array(
|
| 137 |
'header' => Mage::helper('searchanise/ApiProducts')->getHeader($store),
|
| 138 |
'items' => $productFeeds,
|
| 139 |
-
'schema' => Mage::helper('searchanise/ApiProducts')->getSchema(
|
| 140 |
'categories' => Mage::helper('searchanise/ApiCategories')->generateCategoriesFeed(Simtech_Searchanise_Model_Queue::NOT_DATA, $store, true),
|
| 141 |
);
|
| 142 |
|
|
@@ -156,7 +156,7 @@ class Simtech_Searchanise_InfoController extends Mage_Core_Controller_Front_Acti
|
|
| 156 |
$feed = array(
|
| 157 |
'header' => Mage::helper('searchanise/ApiProducts')->getHeader($store),
|
| 158 |
'items' => Mage::helper('searchanise/ApiProducts')->generateProductsFeed($productIds, $store, $checkData),
|
| 159 |
-
'schema' => Mage::helper('searchanise/ApiProducts')->getSchema(
|
| 160 |
'categories' => Mage::helper('searchanise/ApiCategories')->generateCategoriesFeed($categoryIds, $store, $checkData),
|
| 161 |
'pages' => Mage::helper('searchanise/ApiPages')->generatePagesFeed($pageIds, $store, $checkData),
|
| 162 |
);
|
| 136 |
$feed = array(
|
| 137 |
'header' => Mage::helper('searchanise/ApiProducts')->getHeader($store),
|
| 138 |
'items' => $productFeeds,
|
| 139 |
+
'schema' => Mage::helper('searchanise/ApiProducts')->getSchema($store),
|
| 140 |
'categories' => Mage::helper('searchanise/ApiCategories')->generateCategoriesFeed(Simtech_Searchanise_Model_Queue::NOT_DATA, $store, true),
|
| 141 |
);
|
| 142 |
|
| 156 |
$feed = array(
|
| 157 |
'header' => Mage::helper('searchanise/ApiProducts')->getHeader($store),
|
| 158 |
'items' => Mage::helper('searchanise/ApiProducts')->generateProductsFeed($productIds, $store, $checkData),
|
| 159 |
+
'schema' => Mage::helper('searchanise/ApiProducts')->getSchema($store),
|
| 160 |
'categories' => Mage::helper('searchanise/ApiCategories')->generateCategoriesFeed($categoryIds, $store, $checkData),
|
| 161 |
'pages' => Mage::helper('searchanise/ApiPages')->generatePagesFeed($pageIds, $store, $checkData),
|
| 162 |
);
|
app/code/community/Simtech/Searchanise/etc/config.xml
CHANGED
|
@@ -15,7 +15,7 @@
|
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Simtech_Searchanise>
|
| 18 |
-
<version>3.1.
|
| 19 |
</Simtech_Searchanise>
|
| 20 |
</modules>
|
| 21 |
<frontend>
|
|
@@ -580,7 +580,7 @@
|
|
| 580 |
<pages_per_pass>50</pages_per_pass>
|
| 581 |
<max_error_count>25</max_error_count>
|
| 582 |
<max_processing_thread>3</max_processing_thread>
|
| 583 |
-
<max_processing_time>
|
| 584 |
<max_search_request_length>8000</max_search_request_length>
|
| 585 |
<service_url>http://www.searchanise.com</service_url>
|
| 586 |
<cron_async_enabled>1</cron_async_enabled>
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Simtech_Searchanise>
|
| 18 |
+
<version>3.1.4</version>
|
| 19 |
</Simtech_Searchanise>
|
| 20 |
</modules>
|
| 21 |
<frontend>
|
| 580 |
<pages_per_pass>50</pages_per_pass>
|
| 581 |
<max_error_count>25</max_error_count>
|
| 582 |
<max_processing_thread>3</max_processing_thread>
|
| 583 |
+
<max_processing_time>120</max_processing_time>
|
| 584 |
<max_search_request_length>8000</max_search_request_length>
|
| 585 |
<service_url>http://www.searchanise.com</service_url>
|
| 586 |
<cron_async_enabled>1</cron_async_enabled>
|
app/code/community/Simtech/Searchanise/etc/config_without_search.xml
CHANGED
|
@@ -15,7 +15,7 @@
|
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Simtech_Searchanise>
|
| 18 |
-
<version>3.1.
|
| 19 |
</Simtech_Searchanise>
|
| 20 |
</modules>
|
| 21 |
<frontend>
|
|
@@ -579,7 +579,7 @@
|
|
| 579 |
<pages_per_pass>50</pages_per_pass>
|
| 580 |
<max_error_count>25</max_error_count>
|
| 581 |
<max_processing_thread>3</max_processing_thread>
|
| 582 |
-
<max_processing_time>
|
| 583 |
<max_search_request_length>8000</max_search_request_length>
|
| 584 |
<service_url>http://www.searchanise.com</service_url>
|
| 585 |
<cron_async_enabled>1</cron_async_enabled>
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Simtech_Searchanise>
|
| 18 |
+
<version>3.1.4</version>
|
| 19 |
</Simtech_Searchanise>
|
| 20 |
</modules>
|
| 21 |
<frontend>
|
| 579 |
<pages_per_pass>50</pages_per_pass>
|
| 580 |
<max_error_count>25</max_error_count>
|
| 581 |
<max_processing_thread>3</max_processing_thread>
|
| 582 |
+
<max_processing_time>120</max_processing_time>
|
| 583 |
<max_search_request_length>8000</max_search_request_length>
|
| 584 |
<service_url>http://www.searchanise.com</service_url>
|
| 585 |
<cron_async_enabled>1</cron_async_enabled>
|
app/design/adminhtml/default/default/template/searchanise/dashboard.phtml
CHANGED
|
@@ -55,7 +55,7 @@
|
|
| 55 |
|
| 56 |
<?php
|
| 57 |
if (!empty($searchaniseOptions['parent_private_key'])) {
|
| 58 |
-
$stores = Mage::
|
| 59 |
|
| 60 |
if (!empty($stores)) {
|
| 61 |
foreach($stores as $keyStore => $store) {
|
| 55 |
|
| 56 |
<?php
|
| 57 |
if (!empty($searchaniseOptions['parent_private_key'])) {
|
| 58 |
+
$stores = Mage::helper('searchanise/ApiSe')->getStores();
|
| 59 |
|
| 60 |
if (!empty($stores)) {
|
| 61 |
foreach($stores as $keyStore => $store) {
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Simtech_Searchanise</name>
|
| 4 |
-
<version>3.1.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://docs.searchanise.com/connector_addon/license_agreement.html">Commercial license: http://docs.searchanise.com/connector_addon/license_agreement.html</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -10,15 +10,15 @@
|
|
| 10 |
<description>Searchanise is a 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.
|
| 11 |

|
| 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>[
|
| 14 |
-
[
|
| 15 |
-
[!]
|
| 16 |
-
[!]
|
| 17 |
-
[!]
|
| 18 |
<authors><author><name>Simbirsk Technologies, Ltd.</name><user>searchanise</user><email>sales@searchanise.com</email></author></authors>
|
| 19 |
-
<date>2016-
|
| 20 |
-
<time>
|
| 21 |
-
<contents><target name="magecommunity"><dir name="Simtech"><dir name="Searchanise"><dir name="Block"><file name="Async.php" hash="7fb3859416e0d468235082ca41c5a96b"/><file name="Autocomplete.php" hash="efc89ac3f897be3bc307fba6a36778f0"/><file name="Jsinit.php" hash="
|
| 22 |
<compatible/>
|
| 23 |
<dependencies><required><php><min>5.2.13</min><max>10.0.0</max></php></required></dependencies>
|
| 24 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Simtech_Searchanise</name>
|
| 4 |
+
<version>3.1.4</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://docs.searchanise.com/connector_addon/license_agreement.html">Commercial license: http://docs.searchanise.com/connector_addon/license_agreement.html</license>
|
| 7 |
<channel>community</channel>
|
| 10 |
<description>Searchanise is a 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.
|
| 11 |

|
| 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>[*] Products export from the store become more stable.<br>
|
| 14 |
+
[!] Search may didn't work after the new user group was added. Fixed.<br>
|
| 15 |
+
[!] Inactive products were shown in the search results widget. Fixed.<br>
|
| 16 |
+
[!] Out of stock products were shown in the search results widget. Fixed.<br>
|
| 17 |
+
[!] Wrong export of the 'Multiple Select' data attribute of the product. Fixed.<br></notes>
|
| 18 |
<authors><author><name>Simbirsk Technologies, Ltd.</name><user>searchanise</user><email>sales@searchanise.com</email></author></authors>
|
| 19 |
+
<date>2016-11-21</date>
|
| 20 |
+
<time>12:44:19</time>
|
| 21 |
+
<contents><target name="magecommunity"><dir name="Simtech"><dir name="Searchanise"><dir name="Block"><file name="Async.php" hash="7fb3859416e0d468235082ca41c5a96b"/><file name="Autocomplete.php" hash="efc89ac3f897be3bc307fba6a36778f0"/><file name="Jsinit.php" hash="1434dc8d8161e9f4d25f89d5fb76fdf5"/><dir name="Product"><dir name="List"><file name="Toolbar.php" hash="5477041c73350c0f32fdaf5b7c6b99fc"/></dir></dir><file name="Result.php" hash="dec7b27ab9511c956680eb60eba9b95e"/><file name="Resultwidget.php" hash="9b3ec31ad83ca02ca79bbdfc785f8afe"/></dir><dir name="Helper"><file name="ApiCategories.php" hash="06a5d63372280ef0feaa833b23388a09"/><file name="ApiPages.php" hash="40b2c244bb969d3d1a3202e34059e14e"/><file name="ApiProducts.php" hash="bd8955cc6736fd709a1510a78126ef8e"/><file name="ApiSe.php" hash="60542609fd0a8cfe3ca992915dd9344b"/><file name="Data.php" hash="5b0ef0e2a1d184eef83c0768176eea35"/></dir><dir name="Model"><file name="Advanced.php" hash="e0c92b53cec8fbbfdd79690612c7ee84"/><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="Mysql4"><dir name="Advanced"><file name="Collection.php" hash="82f14d57f16becba0a576bfa35dc18cf"/></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="431fd272a82b1a2c9cfc54426a708c9d"/></dir><dir name="Product"><file name="Collection.php" hash="362189f7cf1b9f641bcf3b2867a24053"/></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="35c5d8d8460b2dd9d3fdabc1135ad7be"/><file name="Queue.php" hash="dad05d5dda35cbbf6148c2bad13f9787"/><file name="Request.php" hash="02d5d46fdbd7923cbc407c40df1d68c0"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="cca207daff9020bd8c7af40a8955f2dd"/></dir><dir name="Eav"><dir name="Mysql4"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="05320757b9289edac4f15230cd06c0e1"/><file name="Price.php" hash="ed4e21a18c552e3a92b21ff6e8bc5d61"/></dir></dir><dir name="Product"><file name="Action.php" hash="006e3c8c775cf31a8b9c66fb934c9d2d"/></dir></dir></dir><dir name="Fulltext"><file name="Collection.php" hash="9733be52c1a429364a01d3ed730ac1f2"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="206e81ee170a56fac499169e66ad782d"/><file name="Price.php" hash="57d56f6841c0e2b89c21947aa2a23e86"/></dir></dir><dir name="Product"><file name="Collection.php" hash="b347fc43ae62f9c6a0d797cc265c38ef"/></dir><file name="Store.php" hash="6a337d4b6561aa96b96236d66cc9aa30"/></dir><file name="Searchanise.php" hash="a925b75ff5b088f447cc3369c33335a1"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Searchanise"><dir name="Sync"><file name="Modes.php" hash="806d2debaa75419b57d036ae59808c98"/></dir><file name="TypeAsync.php" hash="11d1aa481094ccbeab365b1fed33440d"/></dir></dir></dir></dir><dir name="Tag"><file name="Relation.php" hash="598f81fd8b2ac77baf24211c2ed03e55"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="SearchaniseController.php" hash="b05fe6f1b3d318a7186ec60b15e0fb04"/></dir><file name="AsyncController.php" hash="0b93b97c95a5bdd19f528e4de403add8"/><file name="InfoController.php" hash="49f89219f996b46487f39cd818afb24c"/><file name="ResultController.php" hash="260d0eec9bcb5d2048cf2f0c0040a1cc"/></dir><dir name="etc"><file name="config.xml" hash="f7b001da947e8e232197177a62573ce2"/><file name="config_without_search.xml" hash="b6250383c8be36206e50b66d8cf90508"/><file name="system.xml" hash="37878b17367297f32cbfde40b981d03e"/></dir><dir name="sql"><dir name="searchanise_setup"><file name="mysql4-install-0.1.0.php" hash="754324c8783e9cc24de86396e1587e73"/><file name="mysql4-upgrade-3.1.1-3.1.2.php" hash="e231089afcc5e6a0e3e75f754a80a6f7"/></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="31feeecd593c462b146587ce3db07132"/></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="0e2795c2e3c5f5af5544bb8471d67037"/></dir><dir name="template"><dir name="searchanise"><file name="resultwidget.phtml" hash="f4cf9ce97294275b5ae9d8e2252be41b"/></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="955cdb2011b7abf04227aae37db5bb0b"/></dir></target></contents>
|
| 22 |
<compatible/>
|
| 23 |
<dependencies><required><php><min>5.2.13</min><max>10.0.0</max></php></required></dependencies>
|
| 24 |
</package>
|
