Version Notes
* Magento security patch changes, SUPEE-6788 -
http://magento.com/security/patches/supee-6788-technical-details
* Categories wrong url bug fix
* error fix: Call to a member function getId() on a non-object
Download this release
Release Info
| Developer | Adar |
| Extension | autocompleteplus_autosuggest |
| Version | 2.0.8.2 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.8.1 to 2.0.8.2
- app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Button.php +11 -58
- app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Process.php +2 -167
- app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Sync.php +30 -14
- app/code/local/Autocompleteplus/Autosuggest/Model/Observer.php +9 -7
- app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/Autocompleteplus/PushController.php +21 -0
- app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/Autocompleteplus/RedirectController.php +39 -0
- app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/PushController.php +0 -20
- app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/RedirectController.php +0 -26
- app/code/local/Autocompleteplus/Autosuggest/controllers/CategoriesController.php +8 -5
- app/code/local/Autocompleteplus/Autosuggest/etc/adminhtml.xml +1 -1
- app/code/local/Autocompleteplus/Autosuggest/etc/config.xml +17 -39
- app/code/local/Autocompleteplus/Autosuggest/etc/config_no_fulltext.xml +1 -1
- app/design/adminhtml/default/default/template/autocompleteplus/notifications.phtml +1 -1
- app/design/frontend/base/default/layout/autocompleteplus.xml +22 -1
- package.xml +8 -8
app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Button.php
CHANGED
|
@@ -2,7 +2,6 @@
|
|
| 2 |
|
| 3 |
/**
|
| 4 |
* InstantSearchPlus (Autosuggest)
|
| 5 |
-
|
| 6 |
*
|
| 7 |
* NOTICE OF LICENSE
|
| 8 |
*
|
|
@@ -16,85 +15,50 @@
|
|
| 16 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 17 |
*/
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
/**
|
| 22 |
-
|
| 23 |
* Used in creating options for Yes|No config value selection
|
| 24 |
-
|
| 25 |
-
*
|
| 26 |
-
|
| 27 |
*/
|
| 28 |
|
| 29 |
class Autocompleteplus_Autosuggest_Block_Adminhtml_Button extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 30 |
{
|
| 31 |
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
*
|
| 35 |
-
|
| 36 |
*/
|
| 37 |
-
|
| 38 |
protected function _construct()
|
| 39 |
-
|
| 40 |
{
|
| 41 |
-
|
| 42 |
parent::_construct();
|
| 43 |
-
|
| 44 |
$this->setTemplate('autocompleteplus/system/config/button.phtml');
|
| 45 |
-
|
| 46 |
}
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
| 50 |
/**
|
| 51 |
-
|
| 52 |
* Return element html
|
| 53 |
-
|
| 54 |
*
|
| 55 |
-
|
| 56 |
* @param Varien_Data_Form_Element_Abstract $element
|
| 57 |
-
|
| 58 |
* @return string
|
| 59 |
-
|
| 60 |
*/
|
| 61 |
-
|
| 62 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
| 63 |
-
|
| 64 |
{
|
| 65 |
|
| 66 |
return $this->_toHtml();
|
| 67 |
|
| 68 |
}
|
| 69 |
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
try{
|
| 75 |
-
|
| 76 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 77 |
-
|
| 78 |
return $helper->getUUID();
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
}catch(Exception $e){
|
| 83 |
-
|
| 84 |
Mage::log($e->getMessage(),null,'autocomplete.log');
|
| 85 |
-
|
| 86 |
}
|
| 87 |
-
|
| 88 |
}
|
| 89 |
|
| 90 |
/**
|
| 91 |
-
|
| 92 |
* Return ajax url for button
|
| 93 |
-
|
| 94 |
*
|
| 95 |
-
|
| 96 |
* @return string
|
| 97 |
-
|
| 98 |
*/
|
| 99 |
|
| 100 |
public function getAjaxCheckUrl()
|
|
@@ -104,32 +68,21 @@ class Autocompleteplus_Autosuggest_Block_Adminhtml_Button extends Mage_Adminhtml
|
|
| 104 |
}
|
| 105 |
|
| 106 |
/**
|
| 107 |
-
|
| 108 |
* Generate button html
|
| 109 |
-
|
| 110 |
*
|
| 111 |
-
|
| 112 |
* @return string
|
| 113 |
-
|
| 114 |
*/
|
| 115 |
public function getButtonHtml()
|
| 116 |
{
|
| 117 |
-
|
| 118 |
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 119 |
|
| 120 |
->setData(array(
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
'onclick' => 'javascript:updateautocomplete(); return false;'
|
| 127 |
-
|
| 128 |
-
));
|
| 129 |
|
| 130 |
return $button->toHtml();
|
| 131 |
}
|
| 132 |
|
| 133 |
-
|
| 134 |
-
|
| 135 |
}
|
| 2 |
|
| 3 |
/**
|
| 4 |
* InstantSearchPlus (Autosuggest)
|
|
|
|
| 5 |
*
|
| 6 |
* NOTICE OF LICENSE
|
| 7 |
*
|
| 15 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 16 |
*/
|
| 17 |
|
|
|
|
|
|
|
| 18 |
/**
|
|
|
|
| 19 |
* Used in creating options for Yes|No config value selection
|
|
|
|
|
|
|
|
|
|
| 20 |
*/
|
| 21 |
|
| 22 |
class Autocompleteplus_Autosuggest_Block_Adminhtml_Button extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 23 |
{
|
| 24 |
|
| 25 |
+
/**
|
| 26 |
+
* Set Template
|
| 27 |
+
* @return void
|
|
|
|
| 28 |
*/
|
|
|
|
| 29 |
protected function _construct()
|
|
|
|
| 30 |
{
|
|
|
|
| 31 |
parent::_construct();
|
|
|
|
| 32 |
$this->setTemplate('autocompleteplus/system/config/button.phtml');
|
|
|
|
| 33 |
}
|
| 34 |
|
|
|
|
|
|
|
| 35 |
/**
|
|
|
|
| 36 |
* Return element html
|
|
|
|
| 37 |
*
|
|
|
|
| 38 |
* @param Varien_Data_Form_Element_Abstract $element
|
|
|
|
| 39 |
* @return string
|
|
|
|
| 40 |
*/
|
|
|
|
| 41 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
|
|
|
| 42 |
{
|
| 43 |
|
| 44 |
return $this->_toHtml();
|
| 45 |
|
| 46 |
}
|
| 47 |
|
| 48 |
+
public function getUUID()
|
| 49 |
+
{
|
| 50 |
+
try {
|
|
|
|
|
|
|
|
|
|
| 51 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
|
|
|
| 52 |
return $helper->getUUID();
|
| 53 |
+
} catch(Exception $e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
Mage::log($e->getMessage(),null,'autocomplete.log');
|
|
|
|
| 55 |
}
|
|
|
|
| 56 |
}
|
| 57 |
|
| 58 |
/**
|
|
|
|
| 59 |
* Return ajax url for button
|
|
|
|
| 60 |
*
|
|
|
|
| 61 |
* @return string
|
|
|
|
| 62 |
*/
|
| 63 |
|
| 64 |
public function getAjaxCheckUrl()
|
| 68 |
}
|
| 69 |
|
| 70 |
/**
|
|
|
|
| 71 |
* Generate button html
|
|
|
|
| 72 |
*
|
|
|
|
| 73 |
* @return string
|
|
|
|
| 74 |
*/
|
| 75 |
public function getButtonHtml()
|
| 76 |
{
|
|
|
|
| 77 |
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 78 |
|
| 79 |
->setData(array(
|
| 80 |
+
'id' => 'autocompleteplus_button',
|
| 81 |
+
'label' => $this->helper('adminhtml')->__('Update'),
|
| 82 |
+
'onclick' => 'javascript:updateautocomplete(); return false;'
|
| 83 |
+
));
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
return $button->toHtml();
|
| 86 |
}
|
| 87 |
|
|
|
|
|
|
|
| 88 |
}
|
app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Process.php
CHANGED
|
@@ -1,339 +1,174 @@
|
|
| 1 |
<?php
|
| 2 |
-
|
| 3 |
class Autocompleteplus_Autosuggest_Block_Adminhtml_Process extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 4 |
{
|
| 5 |
-
|
| 6 |
private $_pushConfig;
|
| 7 |
|
| 8 |
-
protected function _toHtml()
|
| 9 |
-
|
| 10 |
$helper = Mage::helper('autocompleteplus_autosuggest');
|
| 11 |
-
|
| 12 |
$this->_pushConfig=array(
|
| 13 |
-
|
| 14 |
'styles' => array(
|
| 15 |
-
|
| 16 |
'error' => array(
|
| 17 |
|
| 18 |
'icon' => Mage::getDesign()->getSkinUrl('images/error_msg_icon.gif'),
|
| 19 |
-
|
| 20 |
'bg' => '#FDD'
|
| 21 |
-
|
| 22 |
),
|
| 23 |
-
|
| 24 |
'message' => array(
|
| 25 |
-
|
| 26 |
'icon' => Mage::getDesign()->getSkinUrl('images/fam_bullet_success.gif'),
|
| 27 |
-
|
| 28 |
'bg' => '#DDF'
|
| 29 |
-
|
| 30 |
),
|
| 31 |
-
|
| 32 |
'loader' => Mage::getDesign()->getSkinUrl('images/ajax-loader.gif')
|
| 33 |
-
|
| 34 |
),
|
| 35 |
-
|
| 36 |
'template' => '<li style="#{style}" id="#{id}">'
|
| 37 |
-
|
| 38 |
. '<img id="#{id}_img" src="#{image}" class="v-middle" style="margin-right:5px"/>'
|
| 39 |
-
|
| 40 |
. '<span id="#{id}_status" class="text">#{text}</span>'
|
| 41 |
-
|
| 42 |
. '</li>',
|
| 43 |
-
|
| 44 |
'text' => $this->__('Processed <strong>%s%% %s/%d</strong> records', '#{percent}', '#{updated}', $this->getBatchItemsCount()),
|
| 45 |
-
|
| 46 |
'successText' => $this->__('Imported <strong>%s</strong> records', '#{updated}')
|
| 47 |
-
|
| 48 |
);
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
echo '<html><head>';
|
| 53 |
-
|
| 54 |
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';
|
| 55 |
-
|
| 56 |
echo '<script type="text/javascript">var FORM_KEY = "'.Mage::getSingleton('core/session')->getFormKey().'";</script>';
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
$headBlock = $this->getLayout()->createBlock('page/html_head');
|
| 61 |
-
|
| 62 |
$headBlock->addJs('prototype/prototype.js');
|
| 63 |
-
|
| 64 |
$headBlock->addJs('mage/adminhtml/loader.js');
|
| 65 |
-
|
| 66 |
echo $headBlock->getCssJsHtml();
|
| 67 |
|
| 68 |
-
|
| 69 |
-
|
| 70 |
echo '<style type="text/css">
|
| 71 |
-
|
| 72 |
ul { list-style-type:none; padding:0; margin:0; }
|
| 73 |
-
|
| 74 |
li { margin-left:0; border:1px solid #ccc; margin:2px; padding:2px 2px 2px 2px; font:normal 12px sans-serif; }
|
| 75 |
-
|
| 76 |
img { margin-right:5px; }
|
| 77 |
-
|
| 78 |
</style>
|
| 79 |
-
|
| 80 |
<title>'.$this->__('Syncing data...').'</title>
|
| 81 |
-
|
| 82 |
</head><body>';
|
| 83 |
-
|
| 84 |
echo '<ul>';
|
| 85 |
-
|
| 86 |
echo '<li>';
|
| 87 |
-
|
| 88 |
echo '<img src="'.Mage::getDesign()->getSkinUrl('images/note_msg_icon.gif').'" class="v-middle" style="margin-right:5px"/>';
|
| 89 |
-
|
| 90 |
echo $this->__("Starting initial store product sync with InstantSearch+");
|
| 91 |
-
|
| 92 |
echo '</li>';
|
| 93 |
-
|
| 94 |
echo '<li style="background-color:#FFD;">';
|
| 95 |
-
|
| 96 |
echo '<img src="'.Mage::getDesign()->getSkinUrl('images/fam_bullet_error.gif').'" class="v-middle" style="margin-right:5px"/>';
|
| 97 |
-
|
| 98 |
echo $this->__("Warning: Please do not close this tab until sync is complete");
|
| 99 |
|
| 100 |
-
|
| 101 |
-
|
| 102 |
echo '</li>';
|
| 103 |
|
| 104 |
-
|
| 105 |
-
|
| 106 |
echo '<li id="liFinished" style="display:none;">
|
| 107 |
-
|
| 108 |
<img src="'.$this->getSkinUrl('images/note_msg_icon.gif').'" class="v-middle" style="margin-right:5px"/>
|
| 109 |
-
|
| 110 |
'.$this->__(" Initial Product Sync is finished. ").'
|
| 111 |
-
|
| 112 |
<span id="liFinished_count">0</span> '.$this->__("products were synced").'
|
| 113 |
-
|
| 114 |
</li>';
|
| 115 |
-
|
| 116 |
echo '</ul>';
|
| 117 |
|
| 118 |
-
|
| 119 |
-
|
| 120 |
$pushId=$helper->getPushId();
|
| 121 |
|
| 122 |
-
|
| 123 |
-
|
| 124 |
$totalPushes= Mage::getModel('autocompleteplus_autosuggest/pusher')->getCollection()->count();
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
$pushUrl='';
|
| 129 |
|
| 130 |
-
|
| 131 |
-
|
| 132 |
if($pushId!=''){
|
| 133 |
-
|
| 134 |
$pushUrl=$helper->getPushUrl($pushId);
|
| 135 |
-
|
| 136 |
}
|
| 137 |
|
| 138 |
-
|
| 139 |
-
|
| 140 |
echo '<script type="text/javascript">
|
| 141 |
-
|
| 142 |
var config= '.Mage::helper('core')->jsonEncode($this->_pushConfig).';
|
| 143 |
-
|
| 144 |
config.tpl = new Template(config.template);
|
| 145 |
-
|
| 146 |
config.tplTxt = new Template(config.text);
|
| 147 |
-
|
| 148 |
config.tplSccTxt = new Template(config.successText);
|
| 149 |
|
| 150 |
-
|
| 151 |
-
|
| 152 |
var url="'.$pushUrl.'";
|
| 153 |
|
| 154 |
-
|
| 155 |
-
|
| 156 |
var count=0;
|
| 157 |
|
| 158 |
-
|
| 159 |
-
|
| 160 |
if(url!=""){
|
| 161 |
-
|
| 162 |
sendImportData(url);
|
| 163 |
-
|
| 164 |
}else{
|
| 165 |
-
|
| 166 |
$("liFinished").show();
|
| 167 |
-
|
| 168 |
$("liFinished_count").update(count);
|
| 169 |
-
|
| 170 |
$("synced-rows").hide()
|
| 171 |
}
|
| 172 |
|
| 173 |
|
| 174 |
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
function sendImportData(url) {
|
| 180 |
|
| 181 |
-
|
| 182 |
-
|
| 183 |
if (!$("updatedRows")) {
|
| 184 |
-
|
| 185 |
Element.insert($("liFinished"), {before: config.tpl.evaluate({
|
| 186 |
-
|
| 187 |
style: "background-color: #FFD;",
|
| 188 |
-
|
| 189 |
image: config.styles.loader,
|
| 190 |
-
|
| 191 |
text: "Syncing: push '.$pushId.'/'.$totalPushes.'",
|
| 192 |
-
|
| 193 |
id: "updatedRows"
|
| 194 |
-
|
| 195 |
})});
|
| 196 |
-
|
| 197 |
}
|
| 198 |
|
| 199 |
-
|
| 200 |
-
|
| 201 |
new Ajax.Request(url, {
|
| 202 |
-
|
| 203 |
method: "get",
|
| 204 |
-
|
| 205 |
onSuccess: function(transport) {
|
| 206 |
|
| 207 |
-
|
| 208 |
-
|
| 209 |
if (transport.responseText.isJSON()) {
|
| 210 |
-
|
| 211 |
var res=transport.responseText.evalJSON();
|
| 212 |
|
| 213 |
-
|
| 214 |
-
|
| 215 |
if(!res){
|
| 216 |
-
|
| 217 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
| 218 |
-
|
| 219 |
style: "background-color:"+config.styles.error.bg,
|
| 220 |
-
|
| 221 |
image: config.styles.error.icon,
|
| 222 |
-
|
| 223 |
text: res.message,
|
| 224 |
-
|
| 225 |
id: "error-"+makeid()
|
| 226 |
-
|
| 227 |
})});
|
| 228 |
-
|
| 229 |
}else{
|
| 230 |
|
| 231 |
-
|
| 232 |
-
|
| 233 |
if (!$("synced-rows")){
|
| 234 |
-
|
| 235 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
| 236 |
-
|
| 237 |
style: "background-color:"+config.styles.message.bg,
|
| 238 |
-
|
| 239 |
image: config.styles.message.icon,
|
| 240 |
-
|
| 241 |
text: res.updatedSuccessStatus,
|
| 242 |
-
|
| 243 |
id: "synced-rows"
|
| 244 |
-
|
| 245 |
})});
|
| 246 |
-
|
| 247 |
}else{
|
| 248 |
-
|
| 249 |
$("synced-rows_status").update(res.updatedSuccessStatus);
|
| 250 |
-
|
| 251 |
}
|
| 252 |
|
| 253 |
-
|
| 254 |
-
|
| 255 |
url=res.nextPushUrl;
|
| 256 |
|
| 257 |
-
|
| 258 |
-
|
| 259 |
count+=res.count;
|
| 260 |
|
| 261 |
-
|
| 262 |
-
|
| 263 |
if(url!=""){
|
| 264 |
-
|
| 265 |
$("updatedRows_status").update(res.updatedStatus);
|
| 266 |
-
|
| 267 |
sendImportData(url);
|
| 268 |
-
|
| 269 |
}else{
|
| 270 |
-
|
| 271 |
$("liFinished").show();
|
| 272 |
-
|
| 273 |
$("liFinished_count").update(count);
|
| 274 |
-
|
| 275 |
$("updatedRows").hide()
|
| 276 |
-
|
| 277 |
$("synced-rows").hide()
|
| 278 |
-
|
| 279 |
}
|
| 280 |
|
| 281 |
-
|
| 282 |
-
|
| 283 |
}
|
| 284 |
-
|
| 285 |
} else {
|
| 286 |
-
|
| 287 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
| 288 |
-
|
| 289 |
style: "background-color:"+config.styles.error.bg,
|
| 290 |
-
|
| 291 |
image: config.styles.error.icon,
|
| 292 |
-
|
| 293 |
text: transport.responseText.escapeHTML(),
|
| 294 |
-
|
| 295 |
id: "error-"+makeid()
|
| 296 |
-
|
| 297 |
})});
|
| 298 |
-
|
| 299 |
}
|
| 300 |
-
|
| 301 |
}
|
| 302 |
-
|
| 303 |
});
|
| 304 |
-
|
| 305 |
}
|
| 306 |
|
| 307 |
-
|
| 308 |
-
|
| 309 |
function makeid()
|
| 310 |
-
|
| 311 |
{
|
| 312 |
-
|
| 313 |
var text = "";
|
| 314 |
-
|
| 315 |
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
| 316 |
|
| 317 |
-
|
| 318 |
-
|
| 319 |
for( var i=0; i < 5; i++ )
|
| 320 |
-
|
| 321 |
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 322 |
|
| 323 |
-
|
| 324 |
-
|
| 325 |
return text;
|
| 326 |
-
|
| 327 |
}
|
| 328 |
-
|
| 329 |
</script>';
|
| 330 |
|
| 331 |
-
|
| 332 |
-
|
| 333 |
echo '</body></html>';
|
| 334 |
-
|
| 335 |
}
|
| 336 |
|
| 337 |
-
|
| 338 |
-
|
| 339 |
}
|
| 1 |
<?php
|
|
|
|
| 2 |
class Autocompleteplus_Autosuggest_Block_Adminhtml_Process extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 3 |
{
|
|
|
|
| 4 |
private $_pushConfig;
|
| 5 |
|
| 6 |
+
protected function _toHtml()
|
| 7 |
+
{
|
| 8 |
$helper = Mage::helper('autocompleteplus_autosuggest');
|
|
|
|
| 9 |
$this->_pushConfig=array(
|
|
|
|
| 10 |
'styles' => array(
|
|
|
|
| 11 |
'error' => array(
|
| 12 |
|
| 13 |
'icon' => Mage::getDesign()->getSkinUrl('images/error_msg_icon.gif'),
|
|
|
|
| 14 |
'bg' => '#FDD'
|
|
|
|
| 15 |
),
|
|
|
|
| 16 |
'message' => array(
|
|
|
|
| 17 |
'icon' => Mage::getDesign()->getSkinUrl('images/fam_bullet_success.gif'),
|
|
|
|
| 18 |
'bg' => '#DDF'
|
|
|
|
| 19 |
),
|
|
|
|
| 20 |
'loader' => Mage::getDesign()->getSkinUrl('images/ajax-loader.gif')
|
|
|
|
| 21 |
),
|
|
|
|
| 22 |
'template' => '<li style="#{style}" id="#{id}">'
|
|
|
|
| 23 |
. '<img id="#{id}_img" src="#{image}" class="v-middle" style="margin-right:5px"/>'
|
|
|
|
| 24 |
. '<span id="#{id}_status" class="text">#{text}</span>'
|
|
|
|
| 25 |
. '</li>',
|
|
|
|
| 26 |
'text' => $this->__('Processed <strong>%s%% %s/%d</strong> records', '#{percent}', '#{updated}', $this->getBatchItemsCount()),
|
|
|
|
| 27 |
'successText' => $this->__('Imported <strong>%s</strong> records', '#{updated}')
|
|
|
|
| 28 |
);
|
| 29 |
|
|
|
|
|
|
|
| 30 |
echo '<html><head>';
|
|
|
|
| 31 |
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';
|
|
|
|
| 32 |
echo '<script type="text/javascript">var FORM_KEY = "'.Mage::getSingleton('core/session')->getFormKey().'";</script>';
|
| 33 |
|
|
|
|
|
|
|
| 34 |
$headBlock = $this->getLayout()->createBlock('page/html_head');
|
|
|
|
| 35 |
$headBlock->addJs('prototype/prototype.js');
|
|
|
|
| 36 |
$headBlock->addJs('mage/adminhtml/loader.js');
|
|
|
|
| 37 |
echo $headBlock->getCssJsHtml();
|
| 38 |
|
|
|
|
|
|
|
| 39 |
echo '<style type="text/css">
|
|
|
|
| 40 |
ul { list-style-type:none; padding:0; margin:0; }
|
|
|
|
| 41 |
li { margin-left:0; border:1px solid #ccc; margin:2px; padding:2px 2px 2px 2px; font:normal 12px sans-serif; }
|
|
|
|
| 42 |
img { margin-right:5px; }
|
|
|
|
| 43 |
</style>
|
|
|
|
| 44 |
<title>'.$this->__('Syncing data...').'</title>
|
|
|
|
| 45 |
</head><body>';
|
|
|
|
| 46 |
echo '<ul>';
|
|
|
|
| 47 |
echo '<li>';
|
|
|
|
| 48 |
echo '<img src="'.Mage::getDesign()->getSkinUrl('images/note_msg_icon.gif').'" class="v-middle" style="margin-right:5px"/>';
|
|
|
|
| 49 |
echo $this->__("Starting initial store product sync with InstantSearch+");
|
|
|
|
| 50 |
echo '</li>';
|
|
|
|
| 51 |
echo '<li style="background-color:#FFD;">';
|
|
|
|
| 52 |
echo '<img src="'.Mage::getDesign()->getSkinUrl('images/fam_bullet_error.gif').'" class="v-middle" style="margin-right:5px"/>';
|
|
|
|
| 53 |
echo $this->__("Warning: Please do not close this tab until sync is complete");
|
| 54 |
|
|
|
|
|
|
|
| 55 |
echo '</li>';
|
| 56 |
|
|
|
|
|
|
|
| 57 |
echo '<li id="liFinished" style="display:none;">
|
|
|
|
| 58 |
<img src="'.$this->getSkinUrl('images/note_msg_icon.gif').'" class="v-middle" style="margin-right:5px"/>
|
|
|
|
| 59 |
'.$this->__(" Initial Product Sync is finished. ").'
|
|
|
|
| 60 |
<span id="liFinished_count">0</span> '.$this->__("products were synced").'
|
|
|
|
| 61 |
</li>';
|
|
|
|
| 62 |
echo '</ul>';
|
| 63 |
|
|
|
|
|
|
|
| 64 |
$pushId=$helper->getPushId();
|
| 65 |
|
|
|
|
|
|
|
| 66 |
$totalPushes= Mage::getModel('autocompleteplus_autosuggest/pusher')->getCollection()->count();
|
| 67 |
|
|
|
|
|
|
|
| 68 |
$pushUrl='';
|
| 69 |
|
|
|
|
|
|
|
| 70 |
if($pushId!=''){
|
|
|
|
| 71 |
$pushUrl=$helper->getPushUrl($pushId);
|
|
|
|
| 72 |
}
|
| 73 |
|
|
|
|
|
|
|
| 74 |
echo '<script type="text/javascript">
|
|
|
|
| 75 |
var config= '.Mage::helper('core')->jsonEncode($this->_pushConfig).';
|
|
|
|
| 76 |
config.tpl = new Template(config.template);
|
|
|
|
| 77 |
config.tplTxt = new Template(config.text);
|
|
|
|
| 78 |
config.tplSccTxt = new Template(config.successText);
|
| 79 |
|
|
|
|
|
|
|
| 80 |
var url="'.$pushUrl.'";
|
| 81 |
|
|
|
|
|
|
|
| 82 |
var count=0;
|
| 83 |
|
|
|
|
|
|
|
| 84 |
if(url!=""){
|
|
|
|
| 85 |
sendImportData(url);
|
|
|
|
| 86 |
}else{
|
|
|
|
| 87 |
$("liFinished").show();
|
|
|
|
| 88 |
$("liFinished_count").update(count);
|
|
|
|
| 89 |
$("synced-rows").hide()
|
| 90 |
}
|
| 91 |
|
| 92 |
|
| 93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
function sendImportData(url) {
|
| 95 |
|
|
|
|
|
|
|
| 96 |
if (!$("updatedRows")) {
|
|
|
|
| 97 |
Element.insert($("liFinished"), {before: config.tpl.evaluate({
|
|
|
|
| 98 |
style: "background-color: #FFD;",
|
|
|
|
| 99 |
image: config.styles.loader,
|
|
|
|
| 100 |
text: "Syncing: push '.$pushId.'/'.$totalPushes.'",
|
|
|
|
| 101 |
id: "updatedRows"
|
|
|
|
| 102 |
})});
|
|
|
|
| 103 |
}
|
| 104 |
|
|
|
|
|
|
|
| 105 |
new Ajax.Request(url, {
|
|
|
|
| 106 |
method: "get",
|
|
|
|
| 107 |
onSuccess: function(transport) {
|
| 108 |
|
|
|
|
|
|
|
| 109 |
if (transport.responseText.isJSON()) {
|
|
|
|
| 110 |
var res=transport.responseText.evalJSON();
|
| 111 |
|
|
|
|
|
|
|
| 112 |
if(!res){
|
|
|
|
| 113 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
|
|
|
| 114 |
style: "background-color:"+config.styles.error.bg,
|
|
|
|
| 115 |
image: config.styles.error.icon,
|
|
|
|
| 116 |
text: res.message,
|
|
|
|
| 117 |
id: "error-"+makeid()
|
|
|
|
| 118 |
})});
|
|
|
|
| 119 |
}else{
|
| 120 |
|
|
|
|
|
|
|
| 121 |
if (!$("synced-rows")){
|
|
|
|
| 122 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
|
|
|
| 123 |
style: "background-color:"+config.styles.message.bg,
|
|
|
|
| 124 |
image: config.styles.message.icon,
|
|
|
|
| 125 |
text: res.updatedSuccessStatus,
|
|
|
|
| 126 |
id: "synced-rows"
|
|
|
|
| 127 |
})});
|
|
|
|
| 128 |
}else{
|
|
|
|
| 129 |
$("synced-rows_status").update(res.updatedSuccessStatus);
|
|
|
|
| 130 |
}
|
| 131 |
|
|
|
|
|
|
|
| 132 |
url=res.nextPushUrl;
|
| 133 |
|
|
|
|
|
|
|
| 134 |
count+=res.count;
|
| 135 |
|
|
|
|
|
|
|
| 136 |
if(url!=""){
|
|
|
|
| 137 |
$("updatedRows_status").update(res.updatedStatus);
|
|
|
|
| 138 |
sendImportData(url);
|
|
|
|
| 139 |
}else{
|
|
|
|
| 140 |
$("liFinished").show();
|
|
|
|
| 141 |
$("liFinished_count").update(count);
|
|
|
|
| 142 |
$("updatedRows").hide()
|
|
|
|
| 143 |
$("synced-rows").hide()
|
|
|
|
| 144 |
}
|
| 145 |
|
|
|
|
|
|
|
| 146 |
}
|
|
|
|
| 147 |
} else {
|
|
|
|
| 148 |
Element.insert($("updatedRows"), {before: config.tpl.evaluate({
|
|
|
|
| 149 |
style: "background-color:"+config.styles.error.bg,
|
|
|
|
| 150 |
image: config.styles.error.icon,
|
|
|
|
| 151 |
text: transport.responseText.escapeHTML(),
|
|
|
|
| 152 |
id: "error-"+makeid()
|
|
|
|
| 153 |
})});
|
|
|
|
| 154 |
}
|
|
|
|
| 155 |
}
|
|
|
|
| 156 |
});
|
|
|
|
| 157 |
}
|
| 158 |
|
|
|
|
|
|
|
| 159 |
function makeid()
|
|
|
|
| 160 |
{
|
|
|
|
| 161 |
var text = "";
|
|
|
|
| 162 |
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
| 163 |
|
|
|
|
|
|
|
| 164 |
for( var i=0; i < 5; i++ )
|
|
|
|
| 165 |
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 166 |
|
|
|
|
|
|
|
| 167 |
return text;
|
|
|
|
| 168 |
}
|
|
|
|
| 169 |
</script>';
|
| 170 |
|
|
|
|
|
|
|
| 171 |
echo '</body></html>';
|
|
|
|
| 172 |
}
|
| 173 |
|
|
|
|
|
|
|
| 174 |
}
|
app/code/local/Autocompleteplus/Autosuggest/Block/Adminhtml/Sync.php
CHANGED
|
@@ -1,11 +1,13 @@
|
|
| 1 |
<?php
|
| 2 |
|
| 3 |
/**
|
| 4 |
-
*
|
| 5 |
-
|
| 6 |
-
class Autocompleteplus_Autosuggest_Block_Adminhtml_Sync extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 7 |
-
|
| 8 |
-
|
|
|
|
|
|
|
| 9 |
parent::_construct();
|
| 10 |
$this->setTemplate('autocompleteplus/system/config/sync.phtml');
|
| 11 |
}
|
|
@@ -13,42 +15,56 @@ class Autocompleteplus_Autosuggest_Block_Adminhtml_Sync extends Mage_Adminhtml_B
|
|
| 13 |
/**
|
| 14 |
*
|
| 15 |
* Return element html
|
| 16 |
-
*
|
| 17 |
* @return string
|
| 18 |
*/
|
| 19 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
|
|
|
| 20 |
return $this->_toHtml();
|
| 21 |
}
|
| 22 |
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 25 |
return $helper->getUUID();
|
| 26 |
}
|
| 27 |
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 30 |
return $helper->getIsReachable();
|
| 31 |
}
|
| 32 |
|
| 33 |
/**
|
| 34 |
-
* Return ajax url for button
|
| 35 |
* @return string
|
| 36 |
*/
|
| 37 |
-
public function getSyncUrl()
|
| 38 |
-
|
|
|
|
| 39 |
}
|
| 40 |
|
| 41 |
/**
|
| 42 |
-
* Generate button html
|
| 43 |
* @return string
|
| 44 |
*/
|
| 45 |
-
public function getButtonHtml()
|
|
|
|
| 46 |
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 47 |
->setData(array(
|
| 48 |
'id' => 'autocompleteplus_sync',
|
| 49 |
'label' => $this->helper('adminhtml')->__('Sync'),
|
| 50 |
'onclick' => 'javascript:syncautocomplete(); return false;'
|
| 51 |
));
|
|
|
|
| 52 |
return $button->toHtml();
|
| 53 |
}
|
| 54 |
}
|
| 1 |
<?php
|
| 2 |
|
| 3 |
/**
|
| 4 |
+
* Yes/no options for sync
|
| 5 |
+
*/
|
| 6 |
+
class Autocompleteplus_Autosuggest_Block_Adminhtml_Sync extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
protected function _construct()
|
| 10 |
+
{
|
| 11 |
parent::_construct();
|
| 12 |
$this->setTemplate('autocompleteplus/system/config/sync.phtml');
|
| 13 |
}
|
| 15 |
/**
|
| 16 |
*
|
| 17 |
* Return element html
|
| 18 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
| 19 |
* @return string
|
| 20 |
*/
|
| 21 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
| 22 |
+
{
|
| 23 |
return $this->_toHtml();
|
| 24 |
}
|
| 25 |
|
| 26 |
+
/**
|
| 27 |
+
* Return UUID
|
| 28 |
+
* @return string
|
| 29 |
+
*/
|
| 30 |
+
public function getUUID()
|
| 31 |
+
{
|
| 32 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 33 |
return $helper->getUUID();
|
| 34 |
}
|
| 35 |
|
| 36 |
+
/**
|
| 37 |
+
* Reachable or not
|
| 38 |
+
* @return bool
|
| 39 |
+
*/
|
| 40 |
+
public function getIsReachable()
|
| 41 |
+
{
|
| 42 |
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 43 |
return $helper->getIsReachable();
|
| 44 |
}
|
| 45 |
|
| 46 |
/**
|
| 47 |
+
* Return ajax url for button
|
| 48 |
* @return string
|
| 49 |
*/
|
| 50 |
+
public function getSyncUrl()
|
| 51 |
+
{
|
| 52 |
+
return Mage::helper('adminhtml')->getUrl('adminhtml/autocompleteplus_push/startpush');
|
| 53 |
}
|
| 54 |
|
| 55 |
/**
|
| 56 |
+
* Generate button html
|
| 57 |
* @return string
|
| 58 |
*/
|
| 59 |
+
public function getButtonHtml()
|
| 60 |
+
{
|
| 61 |
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 62 |
->setData(array(
|
| 63 |
'id' => 'autocompleteplus_sync',
|
| 64 |
'label' => $this->helper('adminhtml')->__('Sync'),
|
| 65 |
'onclick' => 'javascript:syncautocomplete(); return false;'
|
| 66 |
));
|
| 67 |
+
|
| 68 |
return $button->toHtml();
|
| 69 |
}
|
| 70 |
}
|
app/code/local/Autocompleteplus/Autosuggest/Model/Observer.php
CHANGED
|
@@ -639,13 +639,15 @@ class Autocompleteplus_Autosuggest_Model_Observer extends Mage_Core_Model_Abstra
|
|
| 639 |
} else {
|
| 640 |
$quantity = $item->getQty();
|
| 641 |
}
|
| 642 |
-
$
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
|
|
|
|
|
|
| 649 |
}
|
| 650 |
|
| 651 |
return $items;
|
| 639 |
} else {
|
| 640 |
$quantity = $item->getQty();
|
| 641 |
}
|
| 642 |
+
if (is_object($item->getProduct())){ // Fatal error fix: Call to a member function getId() on a non-object
|
| 643 |
+
$items[] = array(
|
| 644 |
+
'product_id' =>$item->getProduct()->getId(),
|
| 645 |
+
'price' =>$item->getProduct()->getFinalPrice(),
|
| 646 |
+
'quantity' =>$quantity,
|
| 647 |
+
'currency' =>Mage::app()->getStore()->getCurrentCurrencyCode(),
|
| 648 |
+
'attribution' =>$item->getAddedFromSearch()
|
| 649 |
+
);
|
| 650 |
+
}
|
| 651 |
}
|
| 652 |
|
| 653 |
return $items;
|
app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/Autocompleteplus/PushController.php
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Autocompleteplus_Autosuggest_Adminhtml_Autocompleteplus_PushController extends Mage_Adminhtml_Controller_Action
|
| 4 |
+
{
|
| 5 |
+
public function startpushAction()
|
| 6 |
+
{
|
| 7 |
+
$response = $this->getResponse();
|
| 8 |
+
|
| 9 |
+
$service = Mage::getModel('autocompleteplus_autosuggest/service');
|
| 10 |
+
$service->populatePusher();
|
| 11 |
+
|
| 12 |
+
$response->setBody($this->getLayout()->createBlock('autocompleteplus_autosuggest/adminhtml_process')->toHtml());
|
| 13 |
+
$response->sendResponse();
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
protected function _isAllowed()
|
| 17 |
+
{
|
| 18 |
+
return Mage::getSingleton('admin/session')->isAllowed('system/config/autocompleteplus');
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
}
|
app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/Autocompleteplus/RedirectController.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Autocompleteplus_Autosuggest_Adminhtml_Autocompleteplus_RedirectController extends Mage_Adminhtml_Controller_Action
|
| 4 |
+
{
|
| 5 |
+
const ISP_SITE_URL = 'https://magento.instantsearchplus.com/';
|
| 6 |
+
const REDIRECT_STATUS_CODE = 302;
|
| 7 |
+
|
| 8 |
+
protected function _construct()
|
| 9 |
+
{
|
| 10 |
+
$this->helper = Mage::helper('autocompleteplus_autosuggest');
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
public function gotoAction()
|
| 14 |
+
{
|
| 15 |
+
$kwys = $this->helper->getBothKeys();
|
| 16 |
+
$response = $this->getResponse();
|
| 17 |
+
|
| 18 |
+
$response->clearHeaders();
|
| 19 |
+
$response->setRedirect($this->_getIspLoginUrl($kwys), self::REDIRECT_STATUS_CODE);
|
| 20 |
+
$response->sendResponse();
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
protected function _getIspLoginUrl($kwys)
|
| 24 |
+
{
|
| 25 |
+
$uuid = $kwys['uuid'];
|
| 26 |
+
$authkey = $kwys['authkey'];
|
| 27 |
+
|
| 28 |
+
if(!isset($uuid) || !isset($authkey)){
|
| 29 |
+
return self::ISP_SITE_URL . 'login';
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
return self::ISP_SITE_URL . "ma_dashboard?site_id=$uuid&authentication_key=$authkey";
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
protected function _isAllowed()
|
| 36 |
+
{
|
| 37 |
+
return Mage::getSingleton('admin/session')->isAllowed('system/config/autocompleteplus');
|
| 38 |
+
}
|
| 39 |
+
}
|
app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/PushController.php
DELETED
|
@@ -1,20 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class Autocompleteplus_Autosuggest_Adminhtml_PushController extends Mage_Adminhtml_Controller_Action{
|
| 4 |
-
|
| 5 |
-
public function startpushAction(){
|
| 6 |
-
|
| 7 |
-
$service = Mage::getModel('autocompleteplus_autosuggest/service');
|
| 8 |
-
|
| 9 |
-
$service->populatePusher();
|
| 10 |
-
|
| 11 |
-
$this->getResponse()->setBody($this->getLayout()->createBlock('autocompleteplus_autosuggest/adminhtml_process')->toHtml());
|
| 12 |
-
$this->getResponse()->sendResponse();
|
| 13 |
-
}
|
| 14 |
-
|
| 15 |
-
protected function _isAllowed()
|
| 16 |
-
{
|
| 17 |
-
return Mage::getSingleton('admin/session')->isAllowed('system/config/autocompleteplus');
|
| 18 |
-
}
|
| 19 |
-
|
| 20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Autocompleteplus/Autosuggest/controllers/Adminhtml/RedirectController.php
DELETED
|
@@ -1,26 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class Autocompleteplus_Autosuggest_Adminhtml_RedirectController extends Mage_Adminhtml_Controller_Action
|
| 4 |
-
{
|
| 5 |
-
public function gotoAction(){
|
| 6 |
-
//
|
| 7 |
-
$helper=Mage::helper('autocompleteplus_autosuggest');
|
| 8 |
-
|
| 9 |
-
$kwys=$helper->getBothKeys();
|
| 10 |
-
|
| 11 |
-
if(!isset($kwys['uuid']) || !isset($kwys['authkey'])){
|
| 12 |
-
$url='https://magento.instantsearchplus.com/login';
|
| 13 |
-
}else{
|
| 14 |
-
$url='http://magento.instantsearchplus.com/ma_dashboard?site_id='.$kwys['uuid'].'&authentication_key='.$kwys['authkey'];
|
| 15 |
-
}
|
| 16 |
-
|
| 17 |
-
header("Location: ".$url);
|
| 18 |
-
|
| 19 |
-
die;
|
| 20 |
-
}
|
| 21 |
-
|
| 22 |
-
protected function _isAllowed()
|
| 23 |
-
{
|
| 24 |
-
return Mage::getSingleton('admin/session')->isAllowed('system/config/autocompleteplus');
|
| 25 |
-
}
|
| 26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Autocompleteplus/Autosuggest/controllers/CategoriesController.php
CHANGED
|
@@ -24,7 +24,7 @@ class Autocompleteplus_Autosuggest_CategoriesController extends Mage_Core_Contro
|
|
| 24 |
echo json_encode($categories);
|
| 25 |
}
|
| 26 |
|
| 27 |
-
private function nodeToArray(Varien_Data_Tree_Node $node , $mediaUrl, $baseUrl)
|
| 28 |
{
|
| 29 |
$result = array();
|
| 30 |
|
|
@@ -52,14 +52,17 @@ class Autocompleteplus_Autosuggest_CategoriesController extends Mage_Core_Contro
|
|
| 52 |
$result['children'] = array();
|
| 53 |
|
| 54 |
if (method_exists('Mage' , 'getEdition') && Mage::getEdition() == Mage::EDITION_COMMUNITY){
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
| 56 |
} else {
|
| 57 |
-
$category = Mage::getModel('catalog/category')->load($node->getId());
|
| 58 |
$result['url_path'] = $category->getUrl();
|
| 59 |
}
|
| 60 |
|
| 61 |
foreach ($node->getChildren() as $child) {
|
| 62 |
-
$result['children'][] = $this->nodeToArray($child,$mediaUrl,$baseUrl);
|
| 63 |
}
|
| 64 |
|
| 65 |
return $result;
|
|
@@ -102,7 +105,7 @@ class Autocompleteplus_Autosuggest_CategoriesController extends Mage_Core_Contro
|
|
| 102 |
$mediaUrl= Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
|
| 103 |
$baseUrl= Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
|
| 104 |
|
| 105 |
-
return $this->nodeToArray($root,$mediaUrl,$baseUrl);
|
| 106 |
|
| 107 |
}
|
| 108 |
|
| 24 |
echo json_encode($categories);
|
| 25 |
}
|
| 26 |
|
| 27 |
+
private function nodeToArray(Varien_Data_Tree_Node $node , $mediaUrl, $baseUrl, $store)
|
| 28 |
{
|
| 29 |
$result = array();
|
| 30 |
|
| 52 |
$result['children'] = array();
|
| 53 |
|
| 54 |
if (method_exists('Mage' , 'getEdition') && Mage::getEdition() == Mage::EDITION_COMMUNITY){
|
| 55 |
+
// $result['url_path'] = $baseUrl.$node->getData('url_path');
|
| 56 |
+
|
| 57 |
+
$category = Mage::getModel('catalog/category')->setStoreId($store)->load($node->getId());
|
| 58 |
+
$result['url_path'] = $category->getUrl();
|
| 59 |
} else {
|
| 60 |
+
$category = Mage::getModel('catalog/category')->setStoreId($store)->load($node->getId());
|
| 61 |
$result['url_path'] = $category->getUrl();
|
| 62 |
}
|
| 63 |
|
| 64 |
foreach ($node->getChildren() as $child) {
|
| 65 |
+
$result['children'][] = $this->nodeToArray($child,$mediaUrl,$baseUrl, $store);
|
| 66 |
}
|
| 67 |
|
| 68 |
return $result;
|
| 105 |
$mediaUrl= Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
|
| 106 |
$baseUrl= Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
|
| 107 |
|
| 108 |
+
return $this->nodeToArray($root,$mediaUrl,$baseUrl, $store);
|
| 109 |
|
| 110 |
}
|
| 111 |
|
app/code/local/Autocompleteplus/Autosuggest/etc/adminhtml.xml
CHANGED
|
@@ -23,7 +23,7 @@
|
|
| 23 |
<autocompleteplus>
|
| 24 |
<title>InstantSearch+</title>
|
| 25 |
<sort_order>999</sort_order>
|
| 26 |
-
<action>
|
| 27 |
</autocompleteplus>
|
| 28 |
</menu>
|
| 29 |
</config>
|
| 23 |
<autocompleteplus>
|
| 24 |
<title>InstantSearch+</title>
|
| 25 |
<sort_order>999</sort_order>
|
| 26 |
+
<action>adminhtml/autocompleteplus_redirect/goto</action>
|
| 27 |
</autocompleteplus>
|
| 28 |
</menu>
|
| 29 |
</config>
|
app/code/local/Autocompleteplus/Autosuggest/etc/config.xml
CHANGED
|
@@ -2,18 +2,12 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Autocompleteplus_Autosuggest>
|
| 5 |
-
<version>2.0.8.
|
| 6 |
<url>http://autocompleteplus.com/</url>
|
| 7 |
<modulename>Autocompleteplus_Autosuggest</modulename>
|
| 8 |
</Autocompleteplus_Autosuggest>
|
| 9 |
</modules>
|
| 10 |
<global>
|
| 11 |
-
<rewrite>
|
| 12 |
-
<!--<autocompleteplus_autosuggest_catalogsearch>
|
| 13 |
-
<from><![CDATA[#^/catalogsearch/result/#]]></from>
|
| 14 |
-
<to>/autocompleteplus/catalogsearch/</to>
|
| 15 |
-
</autocompleteplus_autosuggest_catalogsearch>-->
|
| 16 |
-
</rewrite>
|
| 17 |
<models>
|
| 18 |
<autocompleteplus_autosuggest>
|
| 19 |
<class>Autocompleteplus_Autosuggest_Model</class>
|
|
@@ -34,20 +28,12 @@
|
|
| 34 |
</entities>
|
| 35 |
</autocompleteplus_autosuggest_mysql4>
|
| 36 |
<catalogsearch_mysql4>
|
| 37 |
-
<rewrite>
|
| 38 |
-
<!--<fulltext_collection>Autocompleteplus_Autosuggest_Model_Mysql4_Fulltext_Collection</fulltext_collection>-->
|
| 39 |
-
</rewrite>
|
| 40 |
</catalogsearch_mysql4>
|
| 41 |
<catalogsearch_resource>
|
| 42 |
<rewrite>
|
| 43 |
<fulltext_collection>Autocompleteplus_Autosuggest_Model_Resource_Fulltext_Collection</fulltext_collection>
|
| 44 |
</rewrite>
|
| 45 |
</catalogsearch_resource>
|
| 46 |
-
<!--<catalogsearch>
|
| 47 |
-
<rewrite>
|
| 48 |
-
<layer>Autocompleteplus_Autosuggest_Model_Layer</layer>
|
| 49 |
-
</rewrite>
|
| 50 |
-
</catalogsearch>-->
|
| 51 |
</models>
|
| 52 |
<events>
|
| 53 |
<controller_action_postdispatch_checkout_cart_index>
|
|
@@ -118,14 +104,6 @@
|
|
| 118 |
</autocompleteplus_autosuggest>
|
| 119 |
</observers>
|
| 120 |
</catalogrule_after_apply>
|
| 121 |
-
<!--<admin_session_user_login_success>
|
| 122 |
-
<observers>
|
| 123 |
-
<autocompleteplus_autosuggest>
|
| 124 |
-
<class>Autocompleteplus_Autosuggest_Model_Observer</class>
|
| 125 |
-
<method>adminSessionUserLoginSuccess</method>
|
| 126 |
-
</autocompleteplus_autosuggest>
|
| 127 |
-
</observers>
|
| 128 |
-
</admin_session_user_login_success>-->
|
| 129 |
</events>
|
| 130 |
<resources>
|
| 131 |
<autosuggest_setup>
|
|
@@ -185,13 +163,13 @@
|
|
| 185 |
</updates>
|
| 186 |
</layout>
|
| 187 |
<routers>
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
<autocompleteplus>
|
| 196 |
<use>standard</use>
|
| 197 |
<args>
|
|
@@ -209,15 +187,15 @@
|
|
| 209 |
</routers>
|
| 210 |
</frontend>
|
| 211 |
<admin>
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
</admin>
|
| 222 |
<adminhtml>
|
| 223 |
<layout>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Autocompleteplus_Autosuggest>
|
| 5 |
+
<version>2.0.8.2</version>
|
| 6 |
<url>http://autocompleteplus.com/</url>
|
| 7 |
<modulename>Autocompleteplus_Autosuggest</modulename>
|
| 8 |
</Autocompleteplus_Autosuggest>
|
| 9 |
</modules>
|
| 10 |
<global>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
<models>
|
| 12 |
<autocompleteplus_autosuggest>
|
| 13 |
<class>Autocompleteplus_Autosuggest_Model</class>
|
| 28 |
</entities>
|
| 29 |
</autocompleteplus_autosuggest_mysql4>
|
| 30 |
<catalogsearch_mysql4>
|
|
|
|
|
|
|
|
|
|
| 31 |
</catalogsearch_mysql4>
|
| 32 |
<catalogsearch_resource>
|
| 33 |
<rewrite>
|
| 34 |
<fulltext_collection>Autocompleteplus_Autosuggest_Model_Resource_Fulltext_Collection</fulltext_collection>
|
| 35 |
</rewrite>
|
| 36 |
</catalogsearch_resource>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
</models>
|
| 38 |
<events>
|
| 39 |
<controller_action_postdispatch_checkout_cart_index>
|
| 104 |
</autocompleteplus_autosuggest>
|
| 105 |
</observers>
|
| 106 |
</catalogrule_after_apply>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
</events>
|
| 108 |
<resources>
|
| 109 |
<autosuggest_setup>
|
| 163 |
</updates>
|
| 164 |
</layout>
|
| 165 |
<routers>
|
| 166 |
+
<instantsearchplus>
|
| 167 |
+
<use>standard</use>
|
| 168 |
+
<args>
|
| 169 |
+
<module>Autocompleteplus_Autosuggest</module>
|
| 170 |
+
<frontName>instantsearchplus</frontName>
|
| 171 |
+
</args>
|
| 172 |
+
</instantsearchplus>
|
| 173 |
<autocompleteplus>
|
| 174 |
<use>standard</use>
|
| 175 |
<args>
|
| 187 |
</routers>
|
| 188 |
</frontend>
|
| 189 |
<admin>
|
| 190 |
+
<routers>
|
| 191 |
+
<adminhtml>
|
| 192 |
+
<args>
|
| 193 |
+
<modules>
|
| 194 |
+
<autocompleteplus before="Mage_Adminhtml">Autocompleteplus_Autosuggest_Adminhtml</autocompleteplus>
|
| 195 |
+
</modules>
|
| 196 |
+
</args>
|
| 197 |
+
</adminhtml>
|
| 198 |
+
</routers>
|
| 199 |
</admin>
|
| 200 |
<adminhtml>
|
| 201 |
<layout>
|
app/code/local/Autocompleteplus/Autosuggest/etc/config_no_fulltext.xml
CHANGED
|
@@ -191,7 +191,7 @@
|
|
| 191 |
<autocompleteplus>
|
| 192 |
<title>InstantSearch+</title>
|
| 193 |
<sort_order>999</sort_order>
|
| 194 |
-
<action>
|
| 195 |
</autocompleteplus>
|
| 196 |
</menu>
|
| 197 |
<layout>
|
| 191 |
<autocompleteplus>
|
| 192 |
<title>InstantSearch+</title>
|
| 193 |
<sort_order>999</sort_order>
|
| 194 |
+
<action>adminhtml/autocompleteplus_redirect/goto</action>
|
| 195 |
</autocompleteplus>
|
| 196 |
</menu>
|
| 197 |
<layout>
|
app/design/adminhtml/default/default/template/autocompleteplus/notifications.phtml
CHANGED
|
@@ -4,7 +4,7 @@ $shouldSync=$this->localhostSynced();
|
|
| 4 |
if($shouldSync){
|
| 5 |
?>
|
| 6 |
<div id="autosuggest-notification" class="notification-global">
|
| 7 |
-
<a target="_blank" href="<?php echo Mage::helper('adminhtml')->getUrl('
|
| 8 |
<b><?php echo $this->__('Sync now'); ?></b>
|
| 9 |
</a>
|
| 10 |
<?php echo $this->__(' to complete the initial <strong>InstantSearch+</strong> product synchronization with our cloud service') ?>.
|
| 4 |
if($shouldSync){
|
| 5 |
?>
|
| 6 |
<div id="autosuggest-notification" class="notification-global">
|
| 7 |
+
<a target="_blank" href="<?php echo Mage::helper('adminhtml')->getUrl('adminhtml/autocompleteplus_push/startpush');?>">
|
| 8 |
<b><?php echo $this->__('Sync now'); ?></b>
|
| 9 |
</a>
|
| 10 |
<?php echo $this->__(' to complete the initial <strong>InstantSearch+</strong> product synchronization with our cloud service') ?>.
|
app/design/frontend/base/default/layout/autocompleteplus.xml
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
<block type="autocompleteplus_autosuggest/autocomplete" />
|
| 7 |
</reference>
|
| 8 |
</default>
|
| 9 |
-
<
|
| 10 |
<reference name="catalogsearch.leftnav">
|
| 11 |
<action method="setTemplate" ifconfig="autocompleteplus/config/layered">
|
| 12 |
<value>autocompleteplus/catalog/layer/view.phtml</value>
|
|
@@ -17,5 +17,26 @@
|
|
| 17 |
<value>autocompleteplus/catalog/product/list.phtml</value>
|
| 18 |
</action>
|
| 19 |
</reference>
|
|
|
|
|
|
|
|
|
|
| 20 |
</catalogsearch_result_index>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
</layout>
|
| 6 |
<block type="autocompleteplus_autosuggest/autocomplete" />
|
| 7 |
</reference>
|
| 8 |
</default>
|
| 9 |
+
<autocompleteplus>
|
| 10 |
<reference name="catalogsearch.leftnav">
|
| 11 |
<action method="setTemplate" ifconfig="autocompleteplus/config/layered">
|
| 12 |
<value>autocompleteplus/catalog/layer/view.phtml</value>
|
| 17 |
<value>autocompleteplus/catalog/product/list.phtml</value>
|
| 18 |
</action>
|
| 19 |
</reference>
|
| 20 |
+
</autocompleteplus>
|
| 21 |
+
<catalogsearch_result_index>
|
| 22 |
+
<update handle="autocompleteplus"/>
|
| 23 |
</catalogsearch_result_index>
|
| 24 |
+
<autocompleteplus_result_index>
|
| 25 |
+
<update handle="autocompleteplus"/>
|
| 26 |
+
<remove name="search.result"/>
|
| 27 |
+
<remove name="left"/>
|
| 28 |
+
<reference name="content">
|
| 29 |
+
<!-- <block type="catalog/product_list" name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/> -->
|
| 30 |
+
<block type="core/template" name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/>
|
| 31 |
+
</reference>
|
| 32 |
+
</autocompleteplus_result_index>
|
| 33 |
+
<instantsearchplus_result_index>
|
| 34 |
+
<update handle="autocompleteplus"/>
|
| 35 |
+
<remove name="search.result"/>
|
| 36 |
+
<remove name="left"/>
|
| 37 |
+
<reference name="content">
|
| 38 |
+
<!-- <block type="catalog/product_list" name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/> -->
|
| 39 |
+
<block type="core/template" name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/>
|
| 40 |
+
</reference>
|
| 41 |
+
</instantsearchplus_result_index>
|
| 42 |
</layout>
|
package.xml
CHANGED
|
@@ -1,22 +1,22 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>autocompleteplus_autosuggest</name>
|
| 4 |
-
<version>2.0.8.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.autocompleteplus.com/privacy">AC+</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>AutoComplete+ InstantSearch</summary>
|
| 10 |
<description>AutoComplete+ InstantSearch triples visitor conversion, optimizes search, and offers promotions through state-of-the-art contextual suggestions dropdown. Since suggestions are lightning fast, accurate, and contextual - visitors find exactly what they want - faster.</description>
|
| 11 |
-
<notes>*
|
| 12 |
-
|
| 13 |
-
*
|
| 14 |
-

|
| 15 |
</notes>
|
| 16 |
<authors><author><name>Adar</name><user>Adar</user><email>magento@autocompleteplus.com</email></author></authors>
|
| 17 |
-
<date>2015-11-
|
| 18 |
-
<time>
|
| 19 |
-
<contents><target name="magelocal"><dir name="Autocompleteplus"><dir name="Autosuggest"><dir name="Adminhtml"><dir name="Model"><file name="Attributes.php" hash="4fc7b546eb9cbff0b5067bc09fb62597"/><file name="Button.php" hash="afd78d0d80b4af60ea70fcfcffea5d8b"/></dir></dir><dir name="Block"><dir name="Adminhtml"><file name="Button.php" hash="
|
| 20 |
<compatible/>
|
| 21 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 22 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>autocompleteplus_autosuggest</name>
|
| 4 |
+
<version>2.0.8.2</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.autocompleteplus.com/privacy">AC+</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>AutoComplete+ InstantSearch</summary>
|
| 10 |
<description>AutoComplete+ InstantSearch triples visitor conversion, optimizes search, and offers promotions through state-of-the-art contextual suggestions dropdown. Since suggestions are lightning fast, accurate, and contextual - visitors find exactly what they want - faster.</description>
|
| 11 |
+
<notes>* Magento security patch changes, SUPEE-6788 - 
|
| 12 |
+
http://magento.com/security/patches/supee-6788-technical-details
|
| 13 |
+
* Categories wrong url bug fix
|
| 14 |
+
* error fix: Call to a member function getId() on a non-object
|
| 15 |
</notes>
|
| 16 |
<authors><author><name>Adar</name><user>Adar</user><email>magento@autocompleteplus.com</email></author></authors>
|
| 17 |
+
<date>2015-11-25</date>
|
| 18 |
+
<time>10:06:51</time>
|
| 19 |
+
<contents><target name="magelocal"><dir name="Autocompleteplus"><dir name="Autosuggest"><dir name="Adminhtml"><dir name="Model"><file name="Attributes.php" hash="4fc7b546eb9cbff0b5067bc09fb62597"/><file name="Button.php" hash="afd78d0d80b4af60ea70fcfcffea5d8b"/></dir></dir><dir name="Block"><dir name="Adminhtml"><file name="Button.php" hash="2f302e3591671c3d7c153f0f7977c64c"/><file name="Process.php" hash="e50cf29c2b8893817eb0de4aeacf9ba3"/><file name="Sync.php" hash="0329b6920b67a5c05b38fafe7142df48"/></dir><file name="Autocomplete.php" hash="3a63d5c743d8dda3552f8c0b717c8d2e"/><file name="Autocorrection.php" hash="08da843c04cf9176cefb8588a0da3e77"/><file name="Inject.php" hash="c8eaa1f845d65fd50327b2782e0555a1"/><file name="Notifications.php" hash="825fcc830917a22aff36e859fd63b16f"/></dir><dir name="Helper"><file name="Data.php" hash="f70246d91906dada414f9a8c1a99eee9"/></dir><dir name="Model"><dir name="Adminhtml"><file name="Attributes.php" hash="1e321486e5c3bea159e4a7d8a79926ab"/></dir><dir name="Api"><file name="V2.php" hash="f7bfd6626466de0fe860484ab2bc7a00"/></dir><file name="Api.php" hash="4dd5882dcfd219087c1cec3cff46f7a9"/><file name="Catalog.php" hash="6c42d3e59d9dfd05d23eff2669b61fd3"/><file name="Catalogreport.php" hash="05f88adba656366d814f259056f92c73"/><file name="Config.php" hash="57d8e278d1cd13fea31504ee8f8ee304"/><file name="Layer.php" hash="ef1b5ddaa4fd12354e349d64f09ba1af"/><dir name="Mysql4"><dir name="Config"><file name="Collection.php" hash="110486b53b74e5b1cba1d552814a4b7c"/></dir><file name="Config.php" hash="991a9f1e674756a0a57577febb2f48cd"/><dir name="Fulltext"><file name="Collection.php" hash="709f6d0a955ec7bc1d31c577858101e6"/></dir><file name="Fulltext.php" hash="eada3fc83bd7976d8e3a38f8bb6e0e5f"/><dir name="Notifications"><file name="Collection.php" hash="d306a8690255ba7c444d30f94f780df4"/></dir><file name="Notifications.php" hash="c74b9b6a8f639318c828d3d5984bcf5d"/><dir name="Pusher"><file name="Collection.php" hash="28f0c11f2a3dd26fd06c508a342becd9"/></dir><file name="Pusher.php" hash="9337bd6a280f35f4694e7a1351f39e7d"/></dir><file name="Notifications.php" hash="6467b4765964afba40e452e564c7347d"/><file name="Observer.php" hash="2b42bd36ae67b66acbc8f65b35062754"/><file name="Pusher.php" hash="cb55bd677f131dc4370429c2cb485be9"/><dir name="Resource"><dir name="Fulltext"><file name="Collection.php" hash="2492156a0fffde6aa7a62f596d8b30ca"/></dir></dir><file name="Service.php" hash="2c1e4d7764f7d99d2f54e442f3652918"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Autocompleteplus"><file name="PushController.php" hash="ec366543519b206339ca39ce3320ad12"/><file name="RedirectController.php" hash="a63c7811b54470e26dcd1c22d707e67b"/></dir></dir><dir name="CatalogSearch"><file name="ResultController.php" hash="67333080dc7d7cf748667b53616f1457"/></dir><file name="CatalogsearchController.php" hash="0327c979fc357504147d7caff7079d69"/><file name="CategoriesController.php" hash="8f120263586178c0c96e4cb74aea8f00"/><file name="LayeredController.php" hash="f43274329a4e8cfbae6c994beea25653"/><file name="ProductsController.php" hash="072d5527963e5022ce02344d17ffc234"/><file name="ProductsbyidController.php" hash="5705ccffaba0d594d6e64bdb0fa95715"/><file name="ResultController.php" hash="1c0df6c89ec836c305105342ced5c400"/><file name="SearchesController.php" hash="344ab1717d1b25d746d033074ae22ade"/></dir><dir name="etc"><file name="adminhtml.xml" hash="34b9d24ddc4565311f6cc83d7e337478"/><file name="api.xml" hash="25ab859fc8312c4aa308f2e3306c6b66"/><file name="cache.xml" hash="b57472bc9410d67af3843825fba5b420"/><file name="config.xml" hash="25c75aac77b4514965fc9ba529e2f45e"/><file name="config_no_fulltext.xml" hash="50a757335937264e0886bf2b6ac72288"/><file name="config_with_crontab.xml" hash="3ea8556899a84435c11c6f526bccec27"/><file name="system.xml" hash="6bed22fbdfc336254126cf4a8c49aa09"/><file name="wsdl.xml" hash="97b1503c710c79376cd85e7f971c1587"/></dir><dir name="sql"><dir name="autosuggest_setup"><file name="mysql4-install-2.0.1.1.php" hash="fd4018c6752ba72af7af2f5f14a0dc12"/><file name="mysql4-upgrade-2.0.1.3-2.0.2.2.php" hash="275c674ba7ef38beb03d20dd16c56d79"/><file name="mysql4-upgrade-2.0.2.5-2.0.2.6.php" hash="4db99239287c64410ac1d7abf6517b59"/><file name="mysql4-upgrade-2.0.4.6-2.0.4.7.php" hash="9a37396d35fec0e3b911455ec61b18d6"/><file name="mysql4-upgrade-2.0.5.4-2.0.5.5.php" hash="2f43b1c32617ea88ef02bab870788807"/><file name="mysql4-upgrade-2.0.5.6-2.0.5.7.php" hash="6a77ea58afed1b6937f0c6d0aa831392"/><file name="mysql4-upgrade-2.0.6.1-2.0.6.4.php" hash="fa5411870fa2eef5ed21a6db1373b651"/><file name="mysql4-upgrade-2.0.7.0-2.0.7.1.php" hash="02c07e5d0c94299165dce4bd140ee547"/><file name="mysql4-upgrade-2.0.7.2-2.0.7.3.php" hash="9ea280adb0ba238fcb6b92b0fe86219b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Autocompleteplus_Autosuggest.xml" hash="e2279cfe50ac070fcfabcf9d327a25fc"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="autocompleteplus.xml" hash="286290139b776909e423c0f4c346d82a"/></dir><dir name="template"><dir name="autocompleteplus"><dir name="catalog"><dir name="layer"><file name="view.phtml" hash="57066d2ac5fa051c15c3ed8bb43b5d08"/></dir><dir name="product"><file name="list.phtml" hash="50977af122c417fd534f372be86a03cc"/></dir></dir><file name="inject.phtml" hash="8cdcb15176db3b14c9c135e87d31e7ad"/><file name="inject_new.phtml" hash="e1e8e050631fe65417edb7a8f25155c8"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="autocompleteplus"><file name="notifications.phtml" hash="c1d08659e65020dcb9e62cf8bc28f73b"/><file name="notifications_old.php" hash="8824edf5a99aa011a1d123233b6a513d"/><dir name="system"><dir name="config"><file name="button.phtml" hash="4762e2343ede91cdee6ecdbf1fd85030"/><file name="sync.phtml" hash="e0392aac8584e98ef4260419750e1cbb"/></dir></dir></dir></dir><dir name="layout"><file name="autocompleteplus.xml" hash="939f8a52905dfef7b81a0f4552042376"/></dir></dir></dir></dir></target></contents>
|
| 20 |
<compatible/>
|
| 21 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 22 |
</package>
|
