Автор Тема: Интеграция написанного кода.  (Прочитано 66 раз)

18 Август 2018, 10:24:22
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Написал небольшой скрипт для службы доставки Axiomus.
Теперь вопрос как его интегрировать в сам движок ?
Код выглядит так
   <script>
      if(navigator.geolocation){
         navigator.geolocation.getCurrentPosition(function(res){
            conf.geo.lon=res.longitude;
            conf.geo.lat=res.latitude;
            console.log(res);
            mod.geo(conf.geo);
         });
      }
   </script>
   <div>
      <p>Ближайшие отделения</p>
      <div class="result"><>
   <>
<hr align="left" width="300" size="4" color="#ff9900" />
   <p>Адресная доставка</p>
   <input type="button" onclick="javascript:mod.delivery(conf.delivery)" value="Старт!" />
   <div class="result"><>
<hr align="left" width="300" size="4" color="#ff9900" />
   <div>
      <p>Самовывоз</p>
      <input type="button" onclick="javascript:mod.carry(conf.carry)" value="Старт!" />
      <div class="result"><>
   <>
<hr align="left" width="300" size="4" color="#ff9900" />


и файл js



var conf={
geo:{
"method": "point",
"token" : '76793d5test0cf77',///
},
carry:{
"method": "carry",
"type_company" : 0,
"code": "194300",///
"token" : "76793d5test0cf77",///
//"weight" : 4.2,///
//"x" : 14,///
//"y" : 32,///
//"z" : 20,///
},
delivery:{
"method": "delivery",
"type_company" : 0,
//"city" : "Москва",///
"token" : "76793d5test0cf77",///
/*"area" : "Москва",///
"address" : "Москва, Тверская 6",///
"x" : 10,///
"y" : 10,///
"z" : 10,///*/
}
};
var mod={
geo:function(json){
var answer = document.getElementsByClassName('result')[0];
var send_data = null;
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://axiomus.ru/calc/api_geo.php', true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.timeout = 30000;
for(key in json) {
if(send_data === null)
send_data = key+'='+json[key];
else
send_data = send_data+'&'+key+'='+json[key];
}
xhr.send(send_data);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && xhr.status === 200){
var arr=JSON.parse(xhr.responseText);
arr=arr.pvz;
for (var i = 0; i < arr.length; i++) {
var el=document.createElement('div');
el.innerHTML='<p>'+arr[i].company+'</p>'+'<p>'+arr.name+'</p>'+'<p>'+arr.address+'</p>'+'<p>'+arr.schedule+'</p>'+'<p>'+arr.dist+'</p>'+'<p>'+arr.distance+'</p>';
answer.appendChild(el);
}
}
};
xhr.ontimeout = function(){
answer.innerHTML = 'Время ожидания (30 секунд) истекло :(';
};
xhr.onerror = function(){
answer.innerHTML = 'Ошибка отправки запроса!';
};
},
delivery:function(json){
var answer = document.getElementsByClassName('result')[1];
var send_data = null;
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://axiomus.ru/calc/calc.php', true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.timeout = 30000;
for(key in json) {
if(send_data === null){
send_data = key+'='+json[key];
}else{
send_data = send_data+'&'+key+'='+json[key];
}
}
xhr.send(send_data);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && xhr.status === 200){
answer.innerHTML = xhr.responseText;
}else{
answer.innerHTML = 'Ошибка запроса!';
}
};
xhr.ontimeout = function(){
answer.innerHTML = 'Время ожидания (30 секунд) истекло :(';
};
xhr.onerror = function(){
answer.innerHTML = 'Ошибка отправки запроса!';
};
},
carry:function(json){
var answer = document.getElementsByClassName('result')[2];
var send_data = null;
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://axiomus.ru/calc/calc.php', true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.timeout = 30000;
for(key in json) {
if(send_data === null){
send_data = key+'='+json[key];
}else{
send_data = send_data+'&'+key+'='+json[key];
}
}
xhr.send(send_data);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && xhr.status === 200){
answer.innerHTML = xhr.responseText;
}else{
answer.innerHTML = 'Ошибка запроса!';
}
};
xhr.ontimeout = function(){
answer.innerHTML = 'Время ожидания (30 секунд) истекло :(';
};
xhr.onerror = function(){
answer.innerHTML = 'Ошибка отправки запроса!';
};
}
}[/i]
19 Август 2018, 10:16:15
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 15201
  • Репутация: +14590/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В шаблон страницы заказа можно вставить.
Можно модуль сделать.
Как хотите так и интегрируйте.
19 Август 2018, 10:43:14
Ответ #2
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В шаблон страницы заказа можно вставить.
Можно модуль сделать.
Как хотите так и интегрируйте.
Как отдельный модуль. Как собрать это в модуль ?
19 Август 2018, 10:49:32
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1368
  • Репутация: +34/-1
  • Сообщество PrestaShop
    • Просмотр профиля
http://doc.prestashop.com/display/PS17/Creating+a+PrestaShop+1.7+Module
Как создать модуль написано. Переменные для скрипта определите и передайте в шаблон.