Version Notes
Bugfixes.
Download this release
Release Info
| Developer | Carlos Escribano Rey |
| Extension | Doofinder_Feed |
| Version | 1.8.8 |
| Comparing to | |
| See all releases | |
Code changes from version 1.8.7 to 1.8.8
- app/code/community/Doofinder/Feed/Block/Adminhtml/Log/View.php +1 -1
- app/code/community/Doofinder/Feed/Block/Adminhtml/Map/Additional.php +1 -1
- app/code/community/Doofinder/Feed/Block/Integration.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Buttons/Generate.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Buttons/ViewLog.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Locks.php +89 -0
- app/code/community/Doofinder/Feed/Block/Settings/Panel/Crondescription.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Panel/Datetime.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Panel/Description.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Panel/File.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Panel/Layerdescription.php +1 -1
- app/code/community/Doofinder/Feed/Block/Settings/Panel/Message.php +1 -1
- app/code/community/Doofinder/Feed/Helper/Data.php +4 -3
- app/code/community/Doofinder/Feed/Helper/Log.php +33 -3
- app/code/community/Doofinder/Feed/Helper/Tax.php +1 -1
- app/code/community/Doofinder/Feed/Model/Adminhtml/System/Config/Backend/Cron.php +1 -1
- app/code/community/Doofinder/Feed/Model/Config.php +2 -2
- app/code/community/Doofinder/Feed/Model/Cron.php +1 -1
- app/code/community/Doofinder/Feed/Model/Generator.php +37 -18
- app/code/community/Doofinder/Feed/Model/Log.php +1 -1
- app/code/community/Doofinder/Feed/Model/Map/Product/Abstract.php +23 -7
- app/code/community/Doofinder/Feed/Model/Map/Product/Associated.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Bundle.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Configurable.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Downloadable.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Grouped.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Simple.php +2 -2
- app/code/community/Doofinder/Feed/Model/Map/Product/Virtual.php +2 -2
- app/code/community/Doofinder/Feed/Model/Mysql4/Cron.php +1 -1
- app/code/community/Doofinder/Feed/Model/Mysql4/Cron/Collection.php +1 -1
- app/code/community/Doofinder/Feed/Model/Mysql4/Log.php +1 -1
- app/code/community/Doofinder/Feed/Model/Mysql4/Log/Collection.php +1 -1
- app/code/community/Doofinder/Feed/Model/Observers/Feed.php +55 -23
- app/code/community/Doofinder/Feed/Model/Observers/Logs.php +1 -1
- app/code/community/Doofinder/Feed/Model/Observers/Schedule.php +1 -1
- app/code/community/Doofinder/Feed/Model/Resource/Mysql4/Setup.php +1 -1
- app/code/community/Doofinder/Feed/Model/System/Config/Backend/Map/Additional.php +1 -1
- app/code/community/Doofinder/Feed/Model/System/Config/Reset.php +1 -1
- app/code/community/Doofinder/Feed/Model/System/Config/Source/Feed/Pricetaxmode.php +1 -1
- app/code/community/Doofinder/Feed/Model/System/Config/Source/Product/Attributes.php +1 -1
- app/code/community/Doofinder/Feed/Model/Tools.php +2 -2
- app/code/community/Doofinder/Feed/controllers/DoofinderFeedFeedController.php +26 -1
- app/code/community/Doofinder/Feed/controllers/DoofinderFeedLogController.php +1 -1
- app/code/community/Doofinder/Feed/controllers/FeedController.php +2 -2
- app/code/community/Doofinder/Feed/controllers/IndexController.php +2 -2
- app/code/community/Doofinder/Feed/etc/config.xml +2 -1
- app/code/community/Doofinder/Feed/etc/system.xml +29 -0
- package.xml +5 -5
app/code/community/Doofinder/Feed/Block/Adminhtml/Log/View.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Adminhtml_Log_View extends Mage_Adminhtml_Block_Widget_Grid
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Adminhtml_Log_View extends Mage_Adminhtml_Block_Widget_Grid
|
app/code/community/Doofinder/Feed/Block/Adminhtml/Map/Additional.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Adminhtml_Map_Additional extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Adminhtml_Map_Additional extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Integration.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Integration extends Mage_Core_Block_Abstract
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Integration extends Mage_Core_Block_Abstract
|
app/code/community/Doofinder/Feed/Block/Settings/Buttons/Generate.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Buttons_Generate extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Buttons_Generate extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Settings/Buttons/ViewLog.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Buttons_ViewLog extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Buttons_ViewLog extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Settings/Locks.php
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* This file is part of Doofinder_Feed.
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
/**
|
| 7 |
+
* @category blocks
|
| 8 |
+
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
+
*/
|
| 11 |
+
|
| 12 |
+
class Doofinder_Feed_Block_Settings_Locks extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 13 |
+
{
|
| 14 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
| 15 |
+
{
|
| 16 |
+
$element->setCanUseDefaultValue(false);
|
| 17 |
+
return parent::render($element);
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
| 21 |
+
{
|
| 22 |
+
$helper = Mage::helper('doofinder_feed');
|
| 23 |
+
|
| 24 |
+
$this->setElement($element);
|
| 25 |
+
$name = $element->getName();
|
| 26 |
+
$element->setScopeLabel('');
|
| 27 |
+
|
| 28 |
+
$store_code = Mage::app()->getRequest()->getParam('store');
|
| 29 |
+
|
| 30 |
+
$stores = array();
|
| 31 |
+
|
| 32 |
+
if ($store_code) {
|
| 33 |
+
$stores[$store_code] = Mage::getModel('core/store')->load($store_code);
|
| 34 |
+
} else {
|
| 35 |
+
foreach (Mage::app()->getStores() as $store) {
|
| 36 |
+
if ($store->getIsActive()) {
|
| 37 |
+
$stores[$store->getCode()] = $store;
|
| 38 |
+
}
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
$locks = array();
|
| 43 |
+
|
| 44 |
+
foreach ($stores as $store) {
|
| 45 |
+
if (file_exists($helper->getFeedLockPath($store->getCode()))) {
|
| 46 |
+
$msg = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 47 |
+
->setType('button')
|
| 48 |
+
->setClass('remove-lock')
|
| 49 |
+
->setLabel($helper->__('Remove lock'))
|
| 50 |
+
->setOnClick("confirm('Removing lock file may cause inconsistencies in generated feed. Proceed?') && removeFeedLock('" . $store->getCode() . "')")
|
| 51 |
+
->toHtml();
|
| 52 |
+
} else {
|
| 53 |
+
$msg = $helper->__('Lock file for store <em>%s</em> does not exist.', $store->getCode());
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
$locks[$store->getCode()] = $msg;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
$html = '';
|
| 60 |
+
|
| 61 |
+
if (count($locks) > 1) {
|
| 62 |
+
$html .= '<ul>';
|
| 63 |
+
foreach ($locks as $code => $file) {
|
| 64 |
+
$html .= '<li><b>' . $stores[$code]->getName() . ':</b><div>' . $file . '</div></li>';
|
| 65 |
+
}
|
| 66 |
+
$html .= '</ul>';
|
| 67 |
+
} else {
|
| 68 |
+
$html .= reset($locks);
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
$url = Mage::helper("adminhtml")->getUrl('adminhtml/doofinderFeedFeed/removeLock');
|
| 72 |
+
$script = "<script type=\"text/javascript\">
|
| 73 |
+
function removeFeedLock(storeCode) {
|
| 74 |
+
var call = new Ajax.Request('" . $url . "', {
|
| 75 |
+
method: 'post',
|
| 76 |
+
parameters: {
|
| 77 |
+
store: storeCode
|
| 78 |
+
},
|
| 79 |
+
onComplete: function(transport) {
|
| 80 |
+
alert(transport.responseText);
|
| 81 |
+
window.location.reload();
|
| 82 |
+
}
|
| 83 |
+
});
|
| 84 |
+
}
|
| 85 |
+
</script>";
|
| 86 |
+
|
| 87 |
+
return $html . $script;
|
| 88 |
+
}
|
| 89 |
+
}
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/Crondescription.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_CronDescription extends Doofinder_Feed_Block_Settings_Panel_Description
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_CronDescription extends Doofinder_Feed_Block_Settings_Panel_Description
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/Datetime.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Datetime extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Datetime extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/Description.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Description extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Description extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/File.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_File extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_File extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/Layerdescription.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_LayerDescription extends Doofinder_Feed_Block_Settings_Panel_Description
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_LayerDescription extends Doofinder_Feed_Block_Settings_Panel_Description
|
app/code/community/Doofinder/Feed/Block/Settings/Panel/Message.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Message extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 6 |
/**
|
| 7 |
* @category blocks
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Block_Settings_Panel_Message extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/Doofinder/Feed/Helper/Data.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Data helper for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Helper_Data extends Mage_Core_Helper_Abstract
|
|
@@ -78,7 +78,8 @@ class Doofinder_Feed_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 78 |
$tax = $taxHelper->getPriceDisplayType() != Mage_Tax_Model_Config::DISPLAY_TYPE_EXCLUDING_TAX;
|
| 79 |
}
|
| 80 |
|
| 81 |
-
|
|
|
|
| 82 |
}
|
| 83 |
|
| 84 |
/**
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Data helper for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Helper_Data extends Mage_Core_Helper_Abstract
|
| 78 |
$tax = $taxHelper->getPriceDisplayType() != Mage_Tax_Model_Config::DISPLAY_TYPE_EXCLUDING_TAX;
|
| 79 |
}
|
| 80 |
|
| 81 |
+
// Return raw price with/without tax - no price rounding here
|
| 82 |
+
return $taxHelper->getPrice($product, $price, $tax, null, null, null, null, null, false);
|
| 83 |
}
|
| 84 |
|
| 85 |
/**
|
app/code/community/Doofinder/Feed/Helper/Log.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Log helper for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Helper_Log extends Mage_Core_Helper_Abstract
|
|
@@ -21,15 +21,31 @@ class Doofinder_Feed_Helper_Log extends Mage_Core_Helper_Abstract
|
|
| 21 |
const WARNING = 'warning';
|
| 22 |
const ERROR = 'error';
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
/**
|
| 25 |
* Log the feed event.
|
| 26 |
*
|
| 27 |
* @param Doofinder_Feed_Model_Cron $process
|
| 28 |
* @param string $type
|
| 29 |
* @param string $message
|
|
|
|
| 30 |
*/
|
| 31 |
-
function log(Doofinder_Feed_Model_Cron $process, $type, $message)
|
| 32 |
{
|
|
|
|
|
|
|
| 33 |
$entry = Mage::getModel('doofinder_feed/log')
|
| 34 |
->setProcessId($process->getId())
|
| 35 |
->setType($type)
|
|
@@ -52,4 +68,18 @@ class Doofinder_Feed_Helper_Log extends Mage_Core_Helper_Abstract
|
|
| 52 |
static::ERROR => $this->__('Error'),
|
| 53 |
);
|
| 54 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
}
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Log helper for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Helper_Log extends Mage_Core_Helper_Abstract
|
| 21 |
const WARNING = 'warning';
|
| 22 |
const ERROR = 'error';
|
| 23 |
|
| 24 |
+
/**
|
| 25 |
+
* @var boolean
|
| 26 |
+
*/
|
| 27 |
+
public $_debugEnabled;
|
| 28 |
+
|
| 29 |
+
/**
|
| 30 |
+
* Constructor
|
| 31 |
+
*/
|
| 32 |
+
function __construct()
|
| 33 |
+
{
|
| 34 |
+
$this->_debugEnabled = Mage::getStoreConfig('doofinder_cron/feed_settings/debug', false);
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
/**
|
| 38 |
* Log the feed event.
|
| 39 |
*
|
| 40 |
* @param Doofinder_Feed_Model_Cron $process
|
| 41 |
* @param string $type
|
| 42 |
* @param string $message
|
| 43 |
+
* @param boolean $debug Pass message to debug log
|
| 44 |
*/
|
| 45 |
+
function log(Doofinder_Feed_Model_Cron $process, $type, $message, $debug = true)
|
| 46 |
{
|
| 47 |
+
$debug && $this->debug(sprintf('log(%d, %s) %s', $process->getId(), $type, $message));
|
| 48 |
+
|
| 49 |
$entry = Mage::getModel('doofinder_feed/log')
|
| 50 |
->setProcessId($process->getId())
|
| 51 |
->setType($type)
|
| 68 |
static::ERROR => $this->__('Error'),
|
| 69 |
);
|
| 70 |
}
|
| 71 |
+
|
| 72 |
+
/**
|
| 73 |
+
* Log a debug message
|
| 74 |
+
*
|
| 75 |
+
* @param string $msg
|
| 76 |
+
*/
|
| 77 |
+
function debug($msg)
|
| 78 |
+
{
|
| 79 |
+
if (!$this->_debugEnabled) {
|
| 80 |
+
return;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
Mage::log($msg, null, 'doofinder.log');
|
| 84 |
+
}
|
| 85 |
}
|
app/code/community/Doofinder/Feed/Helper/Tax.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Helper_Tax extends Mage_Tax_Helper_Data
|
| 6 |
/**
|
| 7 |
* @category Helpers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Helper_Tax extends Mage_Tax_Helper_Data
|
app/code/community/Doofinder/Feed/Model/Adminhtml/System/Config/Backend/Cron.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Adminhtml_System_Config_Backend_Cron extends Mage_Core_Model_Config_Data {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Adminhtml_System_Config_Backend_Cron extends Mage_Core_Model_Config_Data {
|
app/code/community/Doofinder/Feed/Model/Config.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Config model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Config extends Mage_Core_Model_Config_Data
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Config model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Config extends Mage_Core_Model_Config_Data
|
app/code/community/Doofinder/Feed/Model/Cron.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Cron extends Mage_Core_Model_Abstract {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Cron extends Mage_Core_Model_Abstract {
|
app/code/community/Doofinder/Feed/Model/Generator.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Generator model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
if (!defined('DS'))
|
|
@@ -50,6 +50,20 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 50 |
|
| 51 |
protected $_lastProcessedProductId;
|
| 52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
/**
|
| 54 |
* Log to doofinder generator logfile
|
| 55 |
*
|
|
@@ -58,6 +72,7 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 58 |
*/
|
| 59 |
public function logError($message)
|
| 60 |
{
|
|
|
|
| 61 |
$this->_errors[] = $message;
|
| 62 |
}
|
| 63 |
|
|
@@ -79,6 +94,8 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 79 |
|
| 80 |
public function run()
|
| 81 |
{
|
|
|
|
|
|
|
| 82 |
// This must NOT depend on cron being enabled because it's used
|
| 83 |
// by the front controller!!!
|
| 84 |
|
|
@@ -93,6 +110,8 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 93 |
// Clear errors
|
| 94 |
$this->_errors = array();
|
| 95 |
|
|
|
|
|
|
|
| 96 |
// Perform run
|
| 97 |
$this->_initFeed();
|
| 98 |
$this->_batchProcessProducts(
|
|
@@ -100,11 +119,16 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 100 |
$this->getData('_limit_')
|
| 101 |
);
|
| 102 |
|
|
|
|
|
|
|
| 103 |
// Only close feed if close empty flag is set to true or there was at least one processed product
|
| 104 |
if ($this->getData('close_empty') || $this->getLastProcessedProductId() != $this->getData('_offset_')) {
|
|
|
|
| 105 |
$this->_closeFeed();
|
| 106 |
}
|
| 107 |
|
|
|
|
|
|
|
| 108 |
return $this->_response;
|
| 109 |
}
|
| 110 |
|
|
@@ -175,6 +199,7 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 175 |
try
|
| 176 |
{
|
| 177 |
$row = $args['row'];
|
|
|
|
| 178 |
|
| 179 |
$this->_lastProcessedProductId = $row['entity_id'];
|
| 180 |
|
|
@@ -205,6 +230,8 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 205 |
$this->_iDumped++;
|
| 206 |
|
| 207 |
$map->unsetData();
|
|
|
|
|
|
|
| 208 |
}
|
| 209 |
catch (Exception $e)
|
| 210 |
{
|
|
@@ -236,6 +263,7 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 236 |
protected function _addProductToXml(
|
| 237 |
Doofinder_Feed_Model_Map_Product_Abstract $productMap)
|
| 238 |
{
|
|
|
|
| 239 |
|
| 240 |
$iDumped = 0;
|
| 241 |
$displayPrice = $this->getDisplayPrice();
|
|
@@ -244,6 +272,7 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 244 |
{
|
| 245 |
if ($productMap->isSkip())
|
| 246 |
{
|
|
|
|
| 247 |
$this->_iSkipped++;
|
| 248 |
return $this;
|
| 249 |
}
|
|
@@ -339,11 +368,12 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 339 |
|
| 340 |
$iDumped++;
|
| 341 |
}
|
|
|
|
|
|
|
| 342 |
}
|
| 343 |
catch (Exception $e)
|
| 344 |
{
|
| 345 |
-
|
| 346 |
-
$this->_debug($e->getMessage());
|
| 347 |
}
|
| 348 |
|
| 349 |
return $iDumped > 0;
|
|
@@ -530,6 +560,8 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 530 |
$this->_oXmlWriter->openMemory();
|
| 531 |
if (!$this->getData('_offset_'))
|
| 532 |
{
|
|
|
|
|
|
|
| 533 |
$this->_oXmlWriter->startDocument('1.0', 'UTF-8');
|
| 534 |
|
| 535 |
// Output the parent rss tag
|
|
@@ -577,13 +609,6 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 577 |
}
|
| 578 |
}
|
| 579 |
|
| 580 |
-
protected function _debug($m)
|
| 581 |
-
{
|
| 582 |
-
// $this->_response .= '<pre>';
|
| 583 |
-
// var_dump($m);
|
| 584 |
-
// $this->_response .= '</pre>';
|
| 585 |
-
}
|
| 586 |
-
|
| 587 |
protected function _sanitizeData($data)
|
| 588 |
{
|
| 589 |
$sanitized = array();
|
|
@@ -634,8 +659,7 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 634 |
}
|
| 635 |
catch (Exception $e)
|
| 636 |
{
|
| 637 |
-
$
|
| 638 |
-
$this->_stopOnException($e);
|
| 639 |
}
|
| 640 |
}
|
| 641 |
|
|
@@ -781,11 +805,6 @@ class Doofinder_Feed_Model_Generator extends Varien_Object
|
|
| 781 |
return $this->_fieldMap;
|
| 782 |
}
|
| 783 |
|
| 784 |
-
protected function _stopOnException(Exception $e)
|
| 785 |
-
{
|
| 786 |
-
Mage::logError($e->getMessage());
|
| 787 |
-
}
|
| 788 |
-
|
| 789 |
protected function _cleanFieldValue($field)
|
| 790 |
{
|
| 791 |
// http://stackoverflow.com/questions/4224141/php-removing-invalid-utf-8-characters-in-xml-using-filter
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Generator model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
if (!defined('DS'))
|
| 50 |
|
| 51 |
protected $_lastProcessedProductId;
|
| 52 |
|
| 53 |
+
/**
|
| 54 |
+
* @var Doofinder_Feed_Helper_Log
|
| 55 |
+
*/
|
| 56 |
+
protected $_log;
|
| 57 |
+
|
| 58 |
+
/**
|
| 59 |
+
* Initialize log
|
| 60 |
+
*/
|
| 61 |
+
public function _construct()
|
| 62 |
+
{
|
| 63 |
+
parent::_construct();
|
| 64 |
+
$this->_log = Mage::helper('doofinder_feed/log');
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
/**
|
| 68 |
* Log to doofinder generator logfile
|
| 69 |
*
|
| 72 |
*/
|
| 73 |
public function logError($message)
|
| 74 |
{
|
| 75 |
+
$this->_log->debug($message);
|
| 76 |
$this->_errors[] = $message;
|
| 77 |
}
|
| 78 |
|
| 94 |
|
| 95 |
public function run()
|
| 96 |
{
|
| 97 |
+
$this->_log->debug("Running generator");
|
| 98 |
+
|
| 99 |
// This must NOT depend on cron being enabled because it's used
|
| 100 |
// by the front controller!!!
|
| 101 |
|
| 110 |
// Clear errors
|
| 111 |
$this->_errors = array();
|
| 112 |
|
| 113 |
+
$this->_log->debug("Starting products processig");
|
| 114 |
+
|
| 115 |
// Perform run
|
| 116 |
$this->_initFeed();
|
| 117 |
$this->_batchProcessProducts(
|
| 119 |
$this->getData('_limit_')
|
| 120 |
);
|
| 121 |
|
| 122 |
+
$this->_log->debug("Products processig done");
|
| 123 |
+
|
| 124 |
// Only close feed if close empty flag is set to true or there was at least one processed product
|
| 125 |
if ($this->getData('close_empty') || $this->getLastProcessedProductId() != $this->getData('_offset_')) {
|
| 126 |
+
$this->_log->debug("Closing xml feed");
|
| 127 |
$this->_closeFeed();
|
| 128 |
}
|
| 129 |
|
| 130 |
+
$this->_log->debug("Generator finished");
|
| 131 |
+
|
| 132 |
return $this->_response;
|
| 133 |
}
|
| 134 |
|
| 199 |
try
|
| 200 |
{
|
| 201 |
$row = $args['row'];
|
| 202 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Adding product %d to feed', $row['entity_id']));
|
| 203 |
|
| 204 |
$this->_lastProcessedProductId = $row['entity_id'];
|
| 205 |
|
| 230 |
$this->_iDumped++;
|
| 231 |
|
| 232 |
$map->unsetData();
|
| 233 |
+
|
| 234 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Product %d added to feed', $row['entity_id']));
|
| 235 |
}
|
| 236 |
catch (Exception $e)
|
| 237 |
{
|
| 263 |
protected function _addProductToXml(
|
| 264 |
Doofinder_Feed_Model_Map_Product_Abstract $productMap)
|
| 265 |
{
|
| 266 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Adding product %d to xml', $productMap->getProduct()->getId()));
|
| 267 |
|
| 268 |
$iDumped = 0;
|
| 269 |
$displayPrice = $this->getDisplayPrice();
|
| 272 |
{
|
| 273 |
if ($productMap->isSkip())
|
| 274 |
{
|
| 275 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Product %d skipped', $productMap->getProduct()->getId()));
|
| 276 |
$this->_iSkipped++;
|
| 277 |
return $this;
|
| 278 |
}
|
| 368 |
|
| 369 |
$iDumped++;
|
| 370 |
}
|
| 371 |
+
|
| 372 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Product %d added to xml', $productMap->getProduct()->getId()));
|
| 373 |
}
|
| 374 |
catch (Exception $e)
|
| 375 |
{
|
| 376 |
+
$this->logError($e->getMessage());
|
|
|
|
| 377 |
}
|
| 378 |
|
| 379 |
return $iDumped > 0;
|
| 560 |
$this->_oXmlWriter->openMemory();
|
| 561 |
if (!$this->getData('_offset_'))
|
| 562 |
{
|
| 563 |
+
$this->_log->debug('Opening feed');
|
| 564 |
+
|
| 565 |
$this->_oXmlWriter->startDocument('1.0', 'UTF-8');
|
| 566 |
|
| 567 |
// Output the parent rss tag
|
| 609 |
}
|
| 610 |
}
|
| 611 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 612 |
protected function _sanitizeData($data)
|
| 613 |
{
|
| 614 |
$sanitized = array();
|
| 659 |
}
|
| 660 |
catch (Exception $e)
|
| 661 |
{
|
| 662 |
+
$this->logError(sprintf('Invalid store code %s', $this->getData('store_code')));
|
|
|
|
| 663 |
}
|
| 664 |
}
|
| 665 |
|
| 805 |
return $this->_fieldMap;
|
| 806 |
}
|
| 807 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 808 |
protected function _cleanFieldValue($field)
|
| 809 |
{
|
| 810 |
// http://stackoverflow.com/questions/4224141/php-removing-invalid-utf-8-characters-in-xml-using-filter
|
app/code/community/Doofinder/Feed/Model/Log.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Log extends Mage_Core_Model_Abstract {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Log extends Mage_Core_Model_Abstract {
|
app/code/community/Doofinder/Feed/Model/Map/Product/Abstract.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Abstract Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Abstract extends Varien_Object
|
|
@@ -21,9 +21,24 @@ class Doofinder_Feed_Model_Map_Product_Abstract extends Varien_Object
|
|
| 21 |
protected $skip = false;
|
| 22 |
protected $_attributeSetModel;
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
public function initialize()
|
| 26 |
{
|
|
|
|
|
|
|
| 27 |
$currency_code = Mage::app()
|
| 28 |
->getStore($this->getData('store_code'))
|
| 29 |
->getCurrentCurrencyCode();
|
|
@@ -47,10 +62,14 @@ class Doofinder_Feed_Model_Map_Product_Abstract extends Varien_Object
|
|
| 47 |
|
| 48 |
public function map()
|
| 49 |
{
|
|
|
|
|
|
|
| 50 |
$this->_beforeMap();
|
| 51 |
$rows = $this->_map();
|
| 52 |
$this->_afterMap($rows);
|
| 53 |
|
|
|
|
|
|
|
| 54 |
return $rows;
|
| 55 |
}
|
| 56 |
|
|
@@ -247,11 +266,8 @@ class Doofinder_Feed_Model_Map_Product_Abstract extends Varien_Object
|
|
| 247 |
|
| 248 |
$store = Mage::app()->getStore($this->getStoreCode());
|
| 249 |
|
| 250 |
-
//
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
// Format price with store currency
|
| 254 |
-
return $store->getCurrentCurrency()->format($price, array('display' => Zend_Currency::NO_SYMBOL), false);
|
| 255 |
}
|
| 256 |
|
| 257 |
protected function mapFieldPrice()
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Abstract Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Abstract extends Varien_Object
|
| 21 |
protected $skip = false;
|
| 22 |
protected $_attributeSetModel;
|
| 23 |
|
| 24 |
+
/**
|
| 25 |
+
* @var Doofinder_Feed_Helper_Log
|
| 26 |
+
*/
|
| 27 |
+
protected $_log;
|
| 28 |
+
|
| 29 |
+
/**
|
| 30 |
+
* Initialize log
|
| 31 |
+
*/
|
| 32 |
+
public function _construct()
|
| 33 |
+
{
|
| 34 |
+
parent::_construct();
|
| 35 |
+
$this->_log = Mage::helper('doofinder_feed/log');
|
| 36 |
+
}
|
| 37 |
|
| 38 |
public function initialize()
|
| 39 |
{
|
| 40 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Initializing %s for product %d', get_called_class(), $this->getProduct()->getId()));
|
| 41 |
+
|
| 42 |
$currency_code = Mage::app()
|
| 43 |
->getStore($this->getData('store_code'))
|
| 44 |
->getCurrentCurrencyCode();
|
| 62 |
|
| 63 |
public function map()
|
| 64 |
{
|
| 65 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Mapping product %d', $this->getProduct()->getId()));
|
| 66 |
+
|
| 67 |
$this->_beforeMap();
|
| 68 |
$rows = $this->_map();
|
| 69 |
$this->_afterMap($rows);
|
| 70 |
|
| 71 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Map for product %d: %s', $this->getProduct()->getId(), json_encode($rows)));
|
| 72 |
+
|
| 73 |
return $rows;
|
| 74 |
}
|
| 75 |
|
| 266 |
|
| 267 |
$store = Mage::app()->getStore($this->getStoreCode());
|
| 268 |
|
| 269 |
+
// Return price converted to store currency
|
| 270 |
+
return Mage::helper('core')->currencyByStore($price, $store, false, false);
|
|
|
|
|
|
|
|
|
|
| 271 |
}
|
| 272 |
|
| 273 |
protected function mapFieldPrice()
|
app/code/community/Doofinder/Feed/Model/Map/Product/Associated.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Associated Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Associated
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Associated Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Associated
|
app/code/community/Doofinder/Feed/Model/Map/Product/Bundle.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Bundle Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Bundle
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Bundle Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Bundle
|
app/code/community/Doofinder/Feed/Model/Map/Product/Configurable.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Configurable Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Configurable
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Configurable Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Configurable
|
app/code/community/Doofinder/Feed/Model/Map/Product/Downloadable.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Downloadable Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Downloadable
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Downloadable Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Downloadable
|
app/code/community/Doofinder/Feed/Model/Map/Product/Grouped.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Grouped Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Grouped
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Grouped Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Grouped
|
app/code/community/Doofinder/Feed/Model/Map/Product/Simple.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Simple Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Simple
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Simple Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Simple
|
app/code/community/Doofinder/Feed/Model/Map/Product/Virtual.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Virtual Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Virtual
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Virtual Product Map Model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Map_Product_Virtual
|
app/code/community/Doofinder/Feed/Model/Mysql4/Cron.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Cron extends Mage_Core_Model_Mysql4_Abstract {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Cron extends Mage_Core_Model_Mysql4_Abstract {
|
app/code/community/Doofinder/Feed/Model/Mysql4/Cron/Collection.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Cron_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Cron_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
app/code/community/Doofinder/Feed/Model/Mysql4/Log.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
|
app/code/community/Doofinder/Feed/Model/Mysql4/Log/Collection.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
app/code/community/Doofinder/Feed/Model/Observers/Feed.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Feed
|
|
@@ -18,6 +18,18 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 18 |
|
| 19 |
private $productCount;
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
public function updateSearchEngineIndexes($observer) {
|
| 23 |
|
|
@@ -77,6 +89,8 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 77 |
|
| 78 |
$generator = Mage::getModel('doofinder_feed/generator', $options);
|
| 79 |
|
|
|
|
|
|
|
| 80 |
$xmlData = $generator->run();
|
| 81 |
|
| 82 |
if ($xmlData) {
|
|
@@ -89,6 +103,7 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 89 |
updated for
|
| 90 |
this store view. To fix this problem set HashID for a given stor view or disable Internal Search in Doofinder
|
| 91 |
Search Configuration.', $this->storeCode);
|
|
|
|
| 92 |
Mage::getSingleton('adminhtml/session')->addWarning($warning);
|
| 93 |
continue;
|
| 94 |
}
|
|
@@ -98,6 +113,7 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 98 |
// Check if search engine exists and skip foreach iteration if not.
|
| 99 |
if (!$searchEngine) {
|
| 100 |
$error = sprintf('Search engine with HashID %s doesn\'t exists. Please, check your configuration.', $hashId);
|
|
|
|
| 101 |
Mage::getSingleton('adminhtml/session')->addError($error);
|
| 102 |
continue;
|
| 103 |
}
|
|
@@ -105,19 +121,21 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 105 |
// Declare array of products to update
|
| 106 |
$products = array();
|
| 107 |
foreach ($rss->channel->item as $item) {
|
| 108 |
-
$
|
| 109 |
foreach ($item as $key => $value) {
|
| 110 |
-
$
|
| 111 |
}
|
| 112 |
-
$products[] = $
|
| 113 |
}
|
| 114 |
-
if (count($products))
|
| 115 |
$searchEngine->updateItems('product', $products);
|
| 116 |
-
|
|
|
|
|
|
|
| 117 |
}
|
| 118 |
-
}
|
| 119 |
-
|
| 120 |
|
|
|
|
|
|
|
| 121 |
}
|
| 122 |
|
| 123 |
/**
|
|
@@ -136,12 +154,16 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 136 |
|
| 137 |
// Create lock file
|
| 138 |
if (!$remove) {
|
|
|
|
|
|
|
| 139 |
if (file_exists($lockFilepath)) {
|
| 140 |
Mage::throwException($helper->__('Process for store %s is already locked', $process->getStoreCode()));
|
| 141 |
}
|
| 142 |
|
| 143 |
touch($lockFilepath);
|
| 144 |
} else {
|
|
|
|
|
|
|
| 145 |
unlink($lockFilepath);
|
| 146 |
}
|
| 147 |
}
|
|
@@ -174,22 +196,25 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 174 |
$process = $collection->fetchItem();
|
| 175 |
|
| 176 |
if (!$process || !$process->getId()) {
|
|
|
|
| 177 |
return;
|
| 178 |
}
|
| 179 |
|
| 180 |
-
|
| 181 |
-
$this->lockProcess($process);
|
| 182 |
|
| 183 |
-
|
| 184 |
-
|
|
|
|
| 185 |
|
| 186 |
-
|
| 187 |
-
|
| 188 |
|
| 189 |
-
|
| 190 |
-
|
|
|
|
|
|
|
|
|
|
| 191 |
|
| 192 |
-
try {
|
| 193 |
// Clear out the message
|
| 194 |
$process->setMessage($helper::MSG_EMPTY);
|
| 195 |
|
|
@@ -203,6 +228,9 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 203 |
$path = $helper->getFeedPath($this->storeCode);
|
| 204 |
$tmpPath = $helper->getFeedTemporaryPath($this->storeCode);
|
| 205 |
|
|
|
|
|
|
|
|
|
|
| 206 |
// Get job code
|
| 207 |
$jobCode = $helper::JOB_CODE;
|
| 208 |
|
|
@@ -220,19 +248,23 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 220 |
|
| 221 |
$generator = Mage::getModel('doofinder_feed/generator', $options);
|
| 222 |
|
| 223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
|
| 225 |
// If there were errors log them
|
| 226 |
if ($errors = $generator->getErrors()) {
|
| 227 |
$process->setErrorStack($process->getErrorStack() + count($errors));
|
| 228 |
|
| 229 |
foreach ($errors as $error) {
|
| 230 |
-
|
| 231 |
}
|
| 232 |
}
|
| 233 |
|
| 234 |
$message = $helper->__('Processed products with ids in range %d - %d', $offset + 1, $generator->getLastProcessedProductId());
|
| 235 |
-
|
| 236 |
|
| 237 |
// If there is new data append to xml.tmp else convert into xml
|
| 238 |
if ($xmlData) {
|
|
@@ -250,7 +282,7 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 250 |
|
| 251 |
$this->productCount = $generator->getProductCount();
|
| 252 |
} else {
|
| 253 |
-
|
| 254 |
}
|
| 255 |
|
| 256 |
// Set process offset and progress
|
|
@@ -260,7 +292,7 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 260 |
if (!$generator->isFeedDone()) {
|
| 261 |
$helper->createNewSchedule($process);
|
| 262 |
} else {
|
| 263 |
-
|
| 264 |
|
| 265 |
if (!rename($tmpPath, $path)) {
|
| 266 |
Mage::throwException($helper->__("Cannot rename {$tmpPath} to {$path}"));
|
|
@@ -271,7 +303,7 @@ class Doofinder_Feed_Model_Observers_Feed
|
|
| 271 |
}
|
| 272 |
|
| 273 |
} catch (Exception $e) {
|
| 274 |
-
|
| 275 |
$process->setErrorStack($process->getErrorStack() + 1);
|
| 276 |
$process->setMessage('#error#' . $e->getMessage());
|
| 277 |
$helper->createNewSchedule($process);
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Feed
|
| 18 |
|
| 19 |
private $productCount;
|
| 20 |
|
| 21 |
+
/**
|
| 22 |
+
* @var Doofinder_Feed_Helper_Log
|
| 23 |
+
*/
|
| 24 |
+
protected $_log;
|
| 25 |
+
|
| 26 |
+
/**
|
| 27 |
+
* Initialize log
|
| 28 |
+
*/
|
| 29 |
+
public function __construct()
|
| 30 |
+
{
|
| 31 |
+
$this->_log = Mage::helper('doofinder_feed/log');
|
| 32 |
+
}
|
| 33 |
|
| 34 |
public function updateSearchEngineIndexes($observer) {
|
| 35 |
|
| 89 |
|
| 90 |
$generator = Mage::getModel('doofinder_feed/generator', $options);
|
| 91 |
|
| 92 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Starting atomic update for product %d in store %s', $product->getId(), $storeCode));
|
| 93 |
+
|
| 94 |
$xmlData = $generator->run();
|
| 95 |
|
| 96 |
if ($xmlData) {
|
| 103 |
updated for
|
| 104 |
this store view. To fix this problem set HashID for a given stor view or disable Internal Search in Doofinder
|
| 105 |
Search Configuration.', $this->storeCode);
|
| 106 |
+
$this->_log->debug($warning);
|
| 107 |
Mage::getSingleton('adminhtml/session')->addWarning($warning);
|
| 108 |
continue;
|
| 109 |
}
|
| 113 |
// Check if search engine exists and skip foreach iteration if not.
|
| 114 |
if (!$searchEngine) {
|
| 115 |
$error = sprintf('Search engine with HashID %s doesn\'t exists. Please, check your configuration.', $hashId);
|
| 116 |
+
$this->_log->debug($error);
|
| 117 |
Mage::getSingleton('adminhtml/session')->addError($error);
|
| 118 |
continue;
|
| 119 |
}
|
| 121 |
// Declare array of products to update
|
| 122 |
$products = array();
|
| 123 |
foreach ($rss->channel->item as $item) {
|
| 124 |
+
$_product = array();
|
| 125 |
foreach ($item as $key => $value) {
|
| 126 |
+
$_product[$key] = (string)$value;
|
| 127 |
}
|
| 128 |
+
$products[] = $_product;
|
| 129 |
}
|
| 130 |
+
if (count($products)) {
|
| 131 |
$searchEngine->updateItems('product', $products);
|
| 132 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Atomic update for product %d in store %s done with: %s', $product->getId(), $storeCode, json_encode($products)));
|
| 133 |
+
return;
|
| 134 |
+
}
|
| 135 |
}
|
|
|
|
|
|
|
| 136 |
|
| 137 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Atomic update for product %d in store %s failed with no data', $product->getId(), $storeCode));
|
| 138 |
+
}
|
| 139 |
}
|
| 140 |
|
| 141 |
/**
|
| 154 |
|
| 155 |
// Create lock file
|
| 156 |
if (!$remove) {
|
| 157 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Locking cron process for store %s', $process->getStoreCode()));
|
| 158 |
+
|
| 159 |
if (file_exists($lockFilepath)) {
|
| 160 |
Mage::throwException($helper->__('Process for store %s is already locked', $process->getStoreCode()));
|
| 161 |
}
|
| 162 |
|
| 163 |
touch($lockFilepath);
|
| 164 |
} else {
|
| 165 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Unlocking cron process for store %s locked', $process->getStoreCode()));
|
| 166 |
+
|
| 167 |
unlink($lockFilepath);
|
| 168 |
}
|
| 169 |
}
|
| 196 |
$process = $collection->fetchItem();
|
| 197 |
|
| 198 |
if (!$process || !$process->getId()) {
|
| 199 |
+
$this->_log->debug('No active cron processes');
|
| 200 |
return;
|
| 201 |
}
|
| 202 |
|
| 203 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Starting cron process for store %s', $process->getStoreCode()));
|
|
|
|
| 204 |
|
| 205 |
+
try {
|
| 206 |
+
// Lock process
|
| 207 |
+
$this->lockProcess($process);
|
| 208 |
|
| 209 |
+
// Get store code
|
| 210 |
+
$this->storeCode = $process->getStoreCode();
|
| 211 |
|
| 212 |
+
// Set store context
|
| 213 |
+
Mage::app()->setCurrentStore($this->storeCode);
|
| 214 |
+
|
| 215 |
+
// Get store config
|
| 216 |
+
$this->config = $helper->getStoreConfig($this->storeCode);
|
| 217 |
|
|
|
|
| 218 |
// Clear out the message
|
| 219 |
$process->setMessage($helper::MSG_EMPTY);
|
| 220 |
|
| 228 |
$path = $helper->getFeedPath($this->storeCode);
|
| 229 |
$tmpPath = $helper->getFeedTemporaryPath($this->storeCode);
|
| 230 |
|
| 231 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Feed path for store %s: ', $process->getStoreCode(), $path));
|
| 232 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Temporary feed path for store %s: ', $process->getStoreCode(), $path));
|
| 233 |
+
|
| 234 |
// Get job code
|
| 235 |
$jobCode = $helper::JOB_CODE;
|
| 236 |
|
| 248 |
|
| 249 |
$generator = Mage::getModel('doofinder_feed/generator', $options);
|
| 250 |
|
| 251 |
+
try {
|
| 252 |
+
$xmlData = $generator->run();
|
| 253 |
+
} finally {
|
| 254 |
+
$this->_log->_debugEnabled && $this->_log->debug(sprintf('Generator run failed with errors: %s', json_encode($generator->getErrors())));
|
| 255 |
+
}
|
| 256 |
|
| 257 |
// If there were errors log them
|
| 258 |
if ($errors = $generator->getErrors()) {
|
| 259 |
$process->setErrorStack($process->getErrorStack() + count($errors));
|
| 260 |
|
| 261 |
foreach ($errors as $error) {
|
| 262 |
+
$this->_log->log($process, Doofinder_Feed_Helper_Log::ERROR, $error, false);
|
| 263 |
}
|
| 264 |
}
|
| 265 |
|
| 266 |
$message = $helper->__('Processed products with ids in range %d - %d', $offset + 1, $generator->getLastProcessedProductId());
|
| 267 |
+
$this->_log->log($process, Doofinder_Feed_Helper_Log::STATUS, $message);
|
| 268 |
|
| 269 |
// If there is new data append to xml.tmp else convert into xml
|
| 270 |
if ($xmlData) {
|
| 282 |
|
| 283 |
$this->productCount = $generator->getProductCount();
|
| 284 |
} else {
|
| 285 |
+
$this->_log->log($process, Doofinder_Feed_Helper_Log::WARNING, $helper->__('No data added to feed'));
|
| 286 |
}
|
| 287 |
|
| 288 |
// Set process offset and progress
|
| 292 |
if (!$generator->isFeedDone()) {
|
| 293 |
$helper->createNewSchedule($process);
|
| 294 |
} else {
|
| 295 |
+
$this->_log->log($process, Doofinder_Feed_Helper_Log::STATUS, $helper->__('Feed generation completed'));
|
| 296 |
|
| 297 |
if (!rename($tmpPath, $path)) {
|
| 298 |
Mage::throwException($helper->__("Cannot rename {$tmpPath} to {$path}"));
|
| 303 |
}
|
| 304 |
|
| 305 |
} catch (Exception $e) {
|
| 306 |
+
$this->_log->log($process, Doofinder_Feed_Helper_Log::ERROR, $e->getMessage());
|
| 307 |
$process->setErrorStack($process->getErrorStack() + 1);
|
| 308 |
$process->setMessage('#error#' . $e->getMessage());
|
| 309 |
$helper->createNewSchedule($process);
|
app/code/community/Doofinder/Feed/Model/Observers/Logs.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Logs
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Logs
|
app/code/community/Doofinder/Feed/Model/Observers/Schedule.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Schedule
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Observers_Schedule
|
app/code/community/Doofinder/Feed/Model/Resource/Mysql4/Setup.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Resource_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_Resource_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
|
app/code/community/Doofinder/Feed/Model/System/Config/Backend/Map/Additional.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Backend_Map_Additional extends Mage_Adminhtml_Model_System_Config_Backend_Serialized
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Backend_Map_Additional extends Mage_Adminhtml_Model_System_Config_Backend_Serialized
|
app/code/community/Doofinder/Feed/Model/System/Config/Reset.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Reset extends Mage_Core_Model_Config_Data
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Reset extends Mage_Core_Model_Config_Data
|
app/code/community/Doofinder/Feed/Model/System/Config/Source/Feed/Pricetaxmode.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Source_Feed_Pricetaxmode
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Source_Feed_Pricetaxmode
|
app/code/community/Doofinder/Feed/Model/System/Config/Source/Product/Attributes.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Source_Product_Attributes
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_Model_System_Config_Source_Product_Attributes
|
app/code/community/Doofinder/Feed/Model/Tools.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Tools model for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Tools extends Varien_Object
|
| 6 |
/**
|
| 7 |
* @category Models
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Tools model for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_Model_Tools extends Varien_Object
|
app/code/community/Doofinder/Feed/controllers/DoofinderFeedFeedController.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_DoofinderFeedFeedController extends Mage_Adminhtml_Controller_Action
|
|
@@ -40,4 +40,29 @@ class Doofinder_Feed_DoofinderFeedFeedController extends Mage_Adminhtml_Controll
|
|
| 40 |
|
| 41 |
$this->getResponse()->setBody('Feed generation has been scheduled.');
|
| 42 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
}
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_DoofinderFeedFeedController extends Mage_Adminhtml_Controller_Action
|
| 40 |
|
| 41 |
$this->getResponse()->setBody('Feed generation has been scheduled.');
|
| 42 |
}
|
| 43 |
+
|
| 44 |
+
/**
|
| 45 |
+
* Remove feed lock action
|
| 46 |
+
*/
|
| 47 |
+
public function removeLockAction()
|
| 48 |
+
{
|
| 49 |
+
$response = $this->getResponse();
|
| 50 |
+
$storeCode = $this->getRequest()->getParam('store', false);
|
| 51 |
+
|
| 52 |
+
if (!$storeCode) {
|
| 53 |
+
$response->setBody('No store code given.');
|
| 54 |
+
return;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
$lockPath = Mage::helper('doofinder_feed')->getFeedLockPath($storeCode);
|
| 58 |
+
|
| 59 |
+
if (file_exists($lockPath)) {
|
| 60 |
+
unlink($lockPath);
|
| 61 |
+
} else {
|
| 62 |
+
$response->setBody('Lock file not exists.');
|
| 63 |
+
return;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
$response->setBody('Feed lock file has been removed.');
|
| 67 |
+
}
|
| 68 |
}
|
app/code/community/Doofinder/Feed/controllers/DoofinderFeedLogController.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_DoofinderFeedLogController extends Mage_Adminhtml_Controller_Action
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
class Doofinder_Feed_DoofinderFeedLogController extends Mage_Adminhtml_Controller_Action
|
app/code/community/Doofinder/Feed/controllers/FeedController.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Feed controller for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_FeedController extends Mage_Core_Controller_Front_Action
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Feed controller for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_FeedController extends Mage_Core_Controller_Front_Action
|
app/code/community/Doofinder/Feed/controllers/IndexController.php
CHANGED
|
@@ -6,13 +6,13 @@
|
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
-
* @version 1.8.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Index controller for Doofinder Feed
|
| 14 |
*
|
| 15 |
-
* @version 1.8.
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_IndexController extends Mage_Core_Controller_Front_Action
|
| 6 |
/**
|
| 7 |
* @category controllers
|
| 8 |
* @package Doofinder_Feed
|
| 9 |
+
* @version 1.8.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Index controller for Doofinder Feed
|
| 14 |
*
|
| 15 |
+
* @version 1.8.8
|
| 16 |
* @package Doofinder_Feed
|
| 17 |
*/
|
| 18 |
class Doofinder_Feed_IndexController extends Mage_Core_Controller_Front_Action
|
app/code/community/Doofinder/Feed/etc/config.xml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
|
| 4 |
<modules>
|
| 5 |
<Doofinder_Feed>
|
| 6 |
-
<version>1.8.
|
| 7 |
</Doofinder_Feed>
|
| 8 |
</modules>
|
| 9 |
<global>
|
|
@@ -254,6 +254,7 @@
|
|
| 254 |
<atomic_updates_enabled>0</atomic_updates_enabled>
|
| 255 |
<categories_in_navigation>0</categories_in_navigation>
|
| 256 |
<price_tax_mode>0</price_tax_mode>
|
|
|
|
| 257 |
</feed_settings>
|
| 258 |
<attributes_mapping>
|
| 259 |
<id>df_directive_id</id>
|
| 3 |
|
| 4 |
<modules>
|
| 5 |
<Doofinder_Feed>
|
| 6 |
+
<version>1.8.8</version>
|
| 7 |
</Doofinder_Feed>
|
| 8 |
</modules>
|
| 9 |
<global>
|
| 254 |
<atomic_updates_enabled>0</atomic_updates_enabled>
|
| 255 |
<categories_in_navigation>0</categories_in_navigation>
|
| 256 |
<price_tax_mode>0</price_tax_mode>
|
| 257 |
+
<debug>0</debug>
|
| 258 |
</feed_settings>
|
| 259 |
<attributes_mapping>
|
| 260 |
<id>df_directive_id</id>
|
app/code/community/Doofinder/Feed/etc/system.xml
CHANGED
|
@@ -248,6 +248,16 @@
|
|
| 248 |
<show_in_website>0</show_in_website>
|
| 249 |
<show_in_store>1</show_in_store>
|
| 250 |
</categories_in_navigation>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 251 |
</fields>
|
| 252 |
</feed_settings>
|
| 253 |
|
|
@@ -423,6 +433,25 @@
|
|
| 423 |
</view_log>
|
| 424 |
</fields>
|
| 425 |
</panel>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 426 |
</groups>
|
| 427 |
</doofinder_cron>
|
| 428 |
<doofinder_search translate="label" module="doofinder_feed">
|
| 248 |
<show_in_website>0</show_in_website>
|
| 249 |
<show_in_store>1</show_in_store>
|
| 250 |
</categories_in_navigation>
|
| 251 |
+
<debug>
|
| 252 |
+
<label>Debug</label>
|
| 253 |
+
<frontend_type>select</frontend_type>
|
| 254 |
+
<comment>Debug mode with intensively verbose logging. Use with care.</comment>
|
| 255 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 256 |
+
<sort_order>12</sort_order>
|
| 257 |
+
<show_in_default>1</show_in_default>
|
| 258 |
+
<show_in_website>0</show_in_website>
|
| 259 |
+
<show_in_store>1</show_in_store>
|
| 260 |
+
</debug>
|
| 261 |
</fields>
|
| 262 |
</feed_settings>
|
| 263 |
|
| 433 |
</view_log>
|
| 434 |
</fields>
|
| 435 |
</panel>
|
| 436 |
+
<advanced translate="label">
|
| 437 |
+
<label>Advanced</label>
|
| 438 |
+
<expanded>false</expanded>
|
| 439 |
+
<frontend_type>text</frontend_type>
|
| 440 |
+
<sort_order>40</sort_order>
|
| 441 |
+
<show_in_default>1</show_in_default>
|
| 442 |
+
<show_in_website>0</show_in_website>
|
| 443 |
+
<show_in_store>1</show_in_store>
|
| 444 |
+
<fields>
|
| 445 |
+
<locks>
|
| 446 |
+
<label>Locks</label>
|
| 447 |
+
<frontend_model>doofinder_feed/settings_locks</frontend_model>
|
| 448 |
+
<sort_order>10</sort_order>
|
| 449 |
+
<show_in_default>1</show_in_default>
|
| 450 |
+
<show_in_website>0</show_in_website>
|
| 451 |
+
<show_in_store>1</show_in_store>
|
| 452 |
+
</locks>
|
| 453 |
+
</fields>
|
| 454 |
+
</advanced>
|
| 455 |
</groups>
|
| 456 |
</doofinder_cron>
|
| 457 |
<doofinder_search translate="label" module="doofinder_feed">
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Doofinder_Feed</name>
|
| 4 |
-
<version>1.8.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -48,11 +48,11 @@ Doofinder is fast and innovative. With no doubt, it is the best search engine fo
|
|
| 48 |
You can get more info and create your account visiting the Doofinder site:
|
| 49 |

|
| 50 |
http://www.doofinder.com</description>
|
| 51 |
-
<notes>
|
| 52 |
<authors><author><name>Carlos Escribano Rey</name><user>doofinder</user><email>carlos@doofinder.com</email></author></authors>
|
| 53 |
-
<date>2017-
|
| 54 |
-
<time>10:
|
| 55 |
-
<contents><target name="magecommunity"><dir name="Doofinder"><dir name="Feed"><dir name="Block"><dir name="Adminhtml"><dir name="Log"><file name="View.php" hash="
|
| 56 |
<compatible/>
|
| 57 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php></required></dependencies>
|
| 58 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Doofinder_Feed</name>
|
| 4 |
+
<version>1.8.8</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
| 7 |
<channel>community</channel>
|
| 48 |
You can get more info and create your account visiting the Doofinder site:
|
| 49 |

|
| 50 |
http://www.doofinder.com</description>
|
| 51 |
+
<notes>Bugfixes.</notes>
|
| 52 |
<authors><author><name>Carlos Escribano Rey</name><user>doofinder</user><email>carlos@doofinder.com</email></author></authors>
|
| 53 |
+
<date>2017-06-19</date>
|
| 54 |
+
<time>10:25:17</time>
|
| 55 |
+
<contents><target name="magecommunity"><dir name="Doofinder"><dir name="Feed"><dir name="Block"><dir name="Adminhtml"><dir name="Log"><file name="View.php" hash="af8bac5674529679ccd7bbb380d7b825"/></dir><dir name="Map"><file name="Additional.php" hash="3be6b21503289a010366064ff023cea0"/></dir></dir><file name="Integration.php" hash="13957f1e132d94751adc0cac48cbac15"/><dir name="Settings"><dir name="Buttons"><file name="Generate.php" hash="72ab7275f4210328fe80ebfe674f2a15"/><file name="ViewLog.php" hash="97f1e8081407f007b12aced40205398f"/></dir><file name="Locks.php" hash="c4d4c5c031da8c3550ceba6f07e655b4"/><dir name="Panel"><file name="Cron.php" hash="e93e0471544eef8d6cc1ea5c2a8037dd"/><file name="Crondescription.php" hash="403b146bba3eacb9303b02ee5ce2846c"/><file name="Datetime.php" hash="2f238e8fa69774a0d60d0d748c928b52"/><file name="Description.php" hash="a3de7841479ae86218be28270044b899"/><file name="File.php" hash="a9932b28f21afc3f8009e5522c1da7bf"/><file name="Hashdescription.php" hash="707aa2f0eff7a1e170e6355787e09e84"/><file name="Layerdescription.php" hash="10c5e59c01b2bf2a9a5d9070b0d04a92"/><file name="Message.php" hash="21da62d2234178acc51d57a926ccb44d"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="2c0c613677138564a87992fb5bf368f2"/><file name="Log.php" hash="81f778b9bc506f7de05ba0e0055523fb"/><file name="Search.php" hash="adedec93e07dadb8edfcac8dd74fa07c"/><file name="Tax.php" hash="edcae4b2da6b0a8d30bc49c3604c698c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="759b6b4b171e043a2d0a1d7b79b6bb8a"/></dir><dir name="Validation"><file name="Hashid.php" hash="5c84ddebe10442c48bc8bca05a9253d1"/></dir></dir></dir></dir><dir name="CatalogSearch"><dir name="Resource"><file name="Fulltext.php" hash="a3ece9fe463669dc6c16a232f7160aba"/></dir></dir><file name="Config.php" hash="d6693e794f8347cc60a94ed0c9b12cbc"/><file name="Cron.php" hash="a427491052e2f6b2871a8ed6423b0b2d"/><file name="Generator.php" hash="dc92b0490f0d6a3233f10adf2b0863d0"/><file name="Log.php" hash="46f4f1ec6ad5d16c50558ef63b7d9855"/><dir name="Map"><dir name="Product"><file name="Abstract.php" hash="de2e71e21b0fece105771439c372252d"/><file name="Associated.php" hash="6aa315a0aa5eb75ed87bd0c67be86412"/><file name="Bundle.php" hash="704c3367e24e8d2ca8dad763921627f5"/><file name="Configurable.php" hash="110b2b1d6e4f4983b62e1f3797a752ff"/><file name="Downloadable.php" hash="917f2e66e6b99726894353051015cffc"/><file name="Grouped.php" hash="3081ad017ac7f15344a4e9d23f75b0a4"/><file name="Simple.php" hash="7833d3d21ada092d2c02978755e32872"/><file name="Virtual.php" hash="f6118a7170331745c93038e198c0ddb5"/></dir></dir><dir name="Mysql4"><dir name="Cron"><file name="Collection.php" hash="460ce1393598ac86e0f14687f712a85d"/></dir><file name="Cron.php" hash="2a8b00a00953a025d1829585581db660"/><dir name="Log"><file name="Collection.php" hash="d080ba904cbb07a1ed9e5e6eebbb5f8e"/></dir><file name="Log.php" hash="77b6651e6e782eeedc378b3dcc752b9a"/></dir><dir name="Observers"><file name="Feed.php" hash="bd0977c86201e2fdc2ab747ce19efe5f"/><file name="Logs.php" hash="eb4c0f708d13365d2e58ed6404e59a0d"/><file name="Schedule.php" hash="60fbf6961dcecfca030da956d742cd78"/></dir><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="6c3b0299c1bc90b92cd848179baa6d32"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Map"><file name="Additional.php" hash="824824b1a4389529d3031f85ca76cc6e"/></dir><file name="Password.php" hash="b52b0e16c0ae02fd528bf5c567a7a8b5"/><dir name="Total"><file name="Limit.php" hash="a23092ea72cbe81e2779b086ad055bf6"/></dir></dir><file name="Reset.php" hash="54426d1bc21ad7568a8be212080372b9"/><dir name="Source"><dir name="Feed"><file name="Pricetaxmode.php" hash="11f7c21265be054de73ae6d5c381c2e8"/></dir><dir name="Product"><file name="Attributes.php" hash="49b2e06125f389028d03763c85546d49"/></dir></dir></dir></dir><file name="Tools.php" hash="bc051c6a16ae700cb0be13146ca38827"/></dir><dir name="Test"><dir name="Controller"><dir name="Index"><dir name="fixtures"><file name="testConfig.yaml" hash="0a1f21a3417389e0c0a13392c79a7a89"/><file name="testFeed.yaml" hash="694cf25a35a9a301a8ae678866937909"/><file name="testIndex.yaml" hash="0a1f21a3417389e0c0a13392c79a7a89"/></dir><dir name="providers"><file name="testConfig.yaml" hash="0a1f21a3417389e0c0a13392c79a7a89"/><file name="testFeed.yaml" hash="1ea2f638be8fdcea22ef47767ed8d7db"/><file name="testIndex.yaml" hash="0a1f21a3417389e0c0a13392c79a7a89"/></dir></dir><file name="Index.php" hash="2771de706303653d039818bd0f6590ea"/></dir><dir name="Model"><dir name="Product"><dir name="expectations"><file name="testGenerator.yaml" hash="232dda1f4fd88b8ef081393f08044731"/></dir><dir name="fixtures"><file name="testGenerator.yaml" hash="df25e3ca67fd98ab1b933c4951c599ef"/></dir><dir name="providers"><file name="testGenerator.yaml" hash="84779d5dcd8d92abdecf0cd5ee65cfb0"/></dir></dir><file name="Product.php" hash="6c45ae2b36c6cc721ef634855ed6d596"/></dir></dir><dir name="controllers"><file name="DoofinderFeedFeedController.php" hash="9f37c14f7e865b03447e4220abb0a3f1"/><file name="DoofinderFeedLogController.php" hash="bb793db53ee2c4fb46ad1b89a9c8541a"/><file name="FeedController.php" hash="6798f3d9f2fec0291fa348c56958f27b"/><file name="IndexController.php" hash="6cec62715e623e70f84535188dbc00c3"/></dir><dir name="etc"><file name="config.xml" hash="84bb7fcc913d88609a0e4de3f73ef7d1"/><file name="system.xml" hash="ca6813b70bef81957ee6fa646bb1bac8"/></dir><dir name="sql"><dir name="doofinder_feed_setup"><file name="mysql4-install-1.5.4.php" hash="9dc5ed4e10febbe75ab1911259a1c9fe"/><file name="mysql4-install-1.5.7.php" hash="85baa03d9c4d76f6b744ba107c21f8da"/><file name="mysql4-upgrade-1.5.4-1.5.5.php" hash="df7158f6d6cdded9bdfc5cb72c1dc8e3"/><file name="mysql4-upgrade-1.5.5-1.5.6.php" hash="0f3ca5263356a0bc83d9352b463944dc"/><file name="mysql4-upgrade-1.5.6-1.5.7.php" hash="b0180770655f36d6723483aa3bd1541f"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Doofinder_Feed.xml" hash="9d3b6fbbbec12708461c33260715451c"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="doofinder.xml" hash="a7b9105a4e613086340b042845793d9f"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="doofinder.xml" hash="48a8636096950914917461260416c355"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="doofinder"><file name="admin.js" hash="ca050b0527ae101c75532fbca1c4a274"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="doofinder"><file name="styles.css" hash="d6ec303c3199db3ab4dffa8d2491105e"/></dir></dir></dir></dir></target><target name="magelib"><dir name="php-doofinder"><file name="CHANGELOG.txt" hash="b4fc19b1cb37810d8faa6a1e784ab32b"/><file name="README.md" hash="f9eda30362e3356947f86a9248122c2f"/><file name="autoload.php" hash="1ab27f8a639e30c5a25a6100f1a3035d"/><file name="composer.json" hash="76f54c3a763a3ae683fa677106b41027"/><file name="phpunit.xml" hash="97d89bb72790578c7ca60aebe7e3b1dd"/><dir name="src"><dir name="Management"><file name="AggregatesIterator.php" hash="431618213beb8294f6cab35376c935c8"/><file name="Client.php" hash="3d4dc1dbabcb42c7b1e4835ff5056d21"/><dir name="Errors"><file name="BadRequest.php" hash="45113fccee9500f4ee2a20e845ef8ee2"/><file name="NotAllowed.php" hash="98169302570fcf34a49277c5afbbed20"/><file name="NotFound.php" hash="9b08d95a549cfaea5562ecfa74a28746"/><file name="NotProcessedResponse.php" hash="63984cfbe90b6912e8d53faa293e65d6"/><file name="QuotaExhausted.php" hash="75f95704e509d7b5a4c61ebdb76208f5"/><file name="ThrottledResponse.php" hash="d3cd9c6df62246b5c3e80de3e1ecfc9c"/><file name="Utils.php" hash="be1220fc529292e8cc723dc9f68ef81d"/><file name="WrongResponse.php" hash="3c0fd79d6c04ac2c8f93984912369333"/></dir><file name="ItemsResultSet.php" hash="67532bd88b478fb4e0ce9f05d2ffd94a"/><file name="ScrollIterator.php" hash="0d916403f85a791af8e4e2240ad9e1be"/><file name="SearchEngine.php" hash="417e44ce9f11be52d3a6679161014eb8"/><file name="TopTermsIterator.php" hash="9ef2a784ce1d2cae81e577ce8c13ed08"/></dir><dir name="Search"><file name="Client.php" hash="857ed6a6594776f3060d87c2c9b86aca"/><file name="Error.php" hash="38a4283a860ed443f43a8452cc931c99"/><file name="Results.php" hash="87417657ec8a4908d6fd35868b782d7e"/></dir><dir name="Test"><dir name="Management"><file name="AggregatesIteratorTest.php" hash="eb9abdc3de26ac6396efc007373906ca"/><file name="ClientTest.php" hash="9958013403856eab97a44a14b8c32569"/><file name="ScrollIteratorTest.php" hash="34ef0111f1bb3633e6950151efd5e3ec"/><file name="SearchEngineTest.php" hash="a354a2e690851ab8d2b9a41495fcd979"/><file name="TopTermsIteratorTest.php" hash="9804ca4b89dce16d1e89b6614c11c2c0"/></dir><dir name="Search"><file name="ClientTest.php" hash="6aeac0a72fc4a4798233dfde15014543"/><file name="ResultsTests.php" hash="64503776af865c5d23e261b71d36a6bc"/></dir></dir></dir></dir></target></contents>
|
| 56 |
<compatible/>
|
| 57 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php></required></dependencies>
|
| 58 |
</package>
|
