autocompleteplus_autosuggest - Version 2.0.8.2

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 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
- * Set template
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
- public function getUUID(){
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
- 'id' => 'autocompleteplus_button',
123
-
124
- 'label' => $this->helper('adminhtml')->__('Update'),
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>&nbsp;'.$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>&nbsp;'.$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
- * InstantSearchPlus (Autosuggest) * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * * @category Mage * @package InstantSearchPlus * @copyright Copyright (c) 2014 Fast Simon (http://www.instantsearchplus.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */
5
- /** * Used in creating options for Yes|No config value selection * */
6
- class Autocompleteplus_Autosuggest_Block_Adminhtml_Sync extends Mage_Adminhtml_Block_System_Config_Form_Field{
7
- /* * Set template */
8
- protected function _construct(){
 
 
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
- * * @param Varien_Data_Form_Element_Abstract $element
17
  * @return string
18
  */
19
- protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element){
 
20
  return $this->_toHtml();
21
  }
22
 
23
- public function getUUID(){
 
 
 
 
 
24
  $helper=Mage::helper('autocompleteplus_autosuggest');
25
  return $helper->getUUID();
26
  }
27
 
28
- public function getIsReachable(){
 
 
 
 
 
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
- return Mage::helper('adminhtml')->getUrl('autocompleteplus/adminhtml_push/startpush');
 
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
- $items[] = array(
643
- 'product_id' =>$item->getProduct()->getId(),
644
- 'price' =>$item->getProduct()->getFinalPrice(),
645
- 'quantity' =>$quantity,
646
- 'currency' =>Mage::app()->getStore()->getCurrentCurrencyCode(),
647
- 'attribution' =>$item->getAddedFromSearch()
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
- $result['url_path'] = $baseUrl.$node->getData('url_path');
 
 
 
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>autocompleteplus/adminhtml_redirect/goto</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.1</version>
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
- <instantsearchplus>
189
- <use>standard</use>
190
- <args>
191
- <module>Autocompleteplus_Autosuggest</module>
192
- <frontName>instantsearchplus</frontName>
193
- </args>
194
- </instantsearchplus>
195
  <autocompleteplus>
196
  <use>standard</use>
197
  <args>
@@ -209,15 +187,15 @@
209
  </routers>
210
  </frontend>
211
  <admin>
212
- <routers>
213
- <autocompleteplus>
214
- <use>admin</use>
215
- <args>
216
- <module>Autocompleteplus_Autosuggest</module>
217
- <frontName>autocompleteplus</frontName>
218
- </args>
219
- </autocompleteplus>
220
- </routers>
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>autocompleteplus/adminhtml_redirect/goto</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('autocompleteplus/adminhtml_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') ?>.
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
- <catalogsearch_result_index>
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.1</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>* Additional stock management for configurable products bug fix&#xD;
12
- * Search results page - quick view selection option for configurable product variation &amp; add-to-cart&#xD;
13
- * Warning fix on file_get_contents(...)&#xD;
14
- &#xD;
15
  </notes>
16
  <authors><author><name>Adar</name><user>Adar</user><email>magento@autocompleteplus.com</email></author></authors>
17
- <date>2015-11-04</date>
18
- <time>15:54:27</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="e0a2fe4d412ebdf8cabc01fa4c224e6e"/><file name="Process.php" hash="aa23776a49fb4fae3f7a9891155608c2"/><file name="Sync.php" hash="033d8bbf1f2aa68582ff56d87ee7f4c7"/></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="785d7456a5763165c1ffffcaab0f9e7a"/><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"><file name="PushController.php" hash="f92822911e861c39e2bb50eb1ccc1d14"/><file name="RedirectController.php" hash="2bdc7574edfc293bde1e89c87a9b6ce1"/></dir><dir name="CatalogSearch"><file name="ResultController.php" hash="67333080dc7d7cf748667b53616f1457"/></dir><file name="CatalogsearchController.php" hash="0327c979fc357504147d7caff7079d69"/><file name="CategoriesController.php" hash="38e9551dd84f4f9fad2ccebde1f8bf77"/><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="aceab8126257d9afbb4a2bc9be994ac5"/><file name="api.xml" hash="25ab859fc8312c4aa308f2e3306c6b66"/><file name="cache.xml" hash="b57472bc9410d67af3843825fba5b420"/><file name="config.xml" hash="b598fcb20f8de01a1dd658a2ebd9da61"/><file name="config_no_fulltext.xml" hash="1ed15add3a2968ddc9b21504a2b2aea7"/><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="fde78c32c4eba6de8d324c4fd6a8863c"/></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="88db09b9c262104a73886aa7e7efef1e"/><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>
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 - &#xD;
12
+ http://magento.com/security/patches/supee-6788-technical-details&#xD;
13
+ * Categories wrong url bug fix&#xD;
14
+ * error fix: Call to a member function getId() on a non-object&#xD;
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>