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>
|