Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый, есть страница "доставка", где вполне очевидно описана доставка.
Хотелось бы прикрутить еще API калькулятор СДЭКа, но скрипт не исполняется.
Выкладывать весь код не очень разумно.

Оставлю ссылку на него. http://www.edostavka.ru/website/edostavka/upload/custom/files/cdek_calculator.zip
Тот, который на JS (calc_deliv_cdek_js)

В принципе не работает автокомплит. (выборка городов по первым буквам), соответственно не передается ID города в получатели, скрипт выводит ошибку, что поле получателя пустое.

Может еще что не работает, но пока застрал на этом.
Код вставлял через phpmyadmin.
Как я понял, то скрипт не выполняется на уровне движка, ибо сделал отдельный шаблон и заинклюдил в произвольное место. Скрипт опять же не выполнился.
Благодарю за любые подсказки.
 

Ссылка на сообщение
Поделиться на другие сайты

Вариантов много.

Как по мне самый простой - это через iframe

 

С js - смотрите ошибки. Скорее всего что то не так сделали. 

 

По php - можно попробовать подключить через http://forum.simplacms.ru/topic/10939-виджеты-для-simpla/#entry84135

Ссылка на сообщение
Поделиться на другие сайты

Благодарю.

яс нормально отрабатывается вне симплы, как в локале, так и в хостинге, т.ч. ошибки исключены.
простенькие яс тоже отрабатываются (alert например)

попробую через фрейм конечно. но просто хотел сделать попап еще. появятся скроллы. но если выбора нет, то пересмотрю с попапом.

хайд не нашел, выложу так код. не все будут качать архив, понимаю. может кто подскажет

 

        <script type="text/javascript">
            /**
             * автокомплит
             * подтягиваем список городов ajax`ом, данные jsonp в зависмости от введённых символов
             */
            $(function() {
                $("#city").autocomplete({
                    source : function(request, response) {
                        $.ajax({
                            url : "http://api.cdek.ru/city/getListByTerm/jsonp.php?callback=?",
                            dataType : "jsonp",
                            data : {
                                q : function() {
                                    return $("#city").val()
                                },
                                name_startsWith : function() {
                                    return $("#city").val()
                                }
                            },
                            success : function(data) {
                                response($.map(data.geonames, function(item) {
                                    return {
                                        label : item.name,
                                        value : item.name,
                                        id : item.id
                                    }
                                }));
                            }
                        });
                    },
                    minLength : 1,
                    select : function(event, ui) {
                        //console.log("Yep!");
                        $('#receiverCityId').val(ui.item.id);
                    }
                });

                /**
                 * ajax-запрос на сервер для получения информации по доставке
                 */
                $('#cdek').submit(function() {

                    var formData = form2js('cdek', '.', true, function(node) {
                        if(node.id && node.id.match(/callbackTest/)) {
                            return {
                                name : node.id,
                                value : node.innerHTML
                            };
                        }
                    });
                    var formDataJson = JSON.stringify(formData);
                    // console.log(JSON.stringify(formData));
                    document.getElementById('testArea').innerHTML = 'Отправляемые данные: <br />' + JSON.stringify(formData, null, '\t');

                    $.ajax({
                        url : 'http://api.cdek.ru/calculator/calculate_price_by_jsonp.php',
                        jsonp : 'callback',
                        data : {
                            "json" : formDataJson
                        },
                        type : 'GET',
                        dataType : "jsonp",
                        success : function(data) {
                            console.log(data);
                            if(data.hasOwnProperty("result")) {
                                document.getElementById('resArea').innerHTML = 'Цена доставки: ' + data.result.price + '<br />Срок доставки: ' + data.result.deliveryPeriodMin + ' - ' + data.result.deliveryPeriodMax + 'дн. ' + '<br />Планируемая дата доставки: c ' + data.result.deliveryDateMin + ' по ' + data.result.deliveryDateMax + '<br />id тарифа, по которому произведён расчёт: ' + data.result.tariffId + '<br />';
                                if(data.result.hasOwnProperty("cashOnDelivery")) {
                                    document.getElementById('resArea').innerHTML = document.getElementById('resArea').innerHTML + 'Ограничение оплаты наличными, от (руб): ' + data.result.cashOnDelivery;
                                }
                            } else {
                                for(var key in data["error"]) {
                                    // console.log(key);
                                    // console.log(data["error"][key]);
                                    document.getElementById('resArea').innerHTML = document.getElementById('resArea').innerHTML+'Код ошибки: ' + data["error"][key].code + '<br />Текст ошибки: ' + data["error"][key].text + '<br /><br />';
                                }
                            }
                        }
                    });
                    return false;
                });
            });

        </script>

Изменено пользователем Джойстик
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Не, фреймы не устраивают категорически после теста.
Неужели местные гуру не знают, как вставить код, если спецсимволы режутся? Неужели нет хука какого?

Ссылка на сообщение
Поделиться на другие сайты

можете через http://forum.simplacms.ru/topic/10939-виджеты-для-simpla/#entry84135

 

1) Устанавливаете дополнение

2) Создаете tpl в шаблоне например xxx.tpl с нужным содержимым 

3) В тексте страницы где нужно вывести (в админке) пишите:

[widget name=tpl tpl=xxx.tpl]

4) Далее делаете что нужно в xxx.tpl 

 

Ссылка на сообщение
Поделиться на другие сайты

 

можете через http://forum.simplacms.ru/topic/10939-виджеты-для-simpla/#entry84135

 

1) Устанавливаете дополнение

2) Создаете tpl в шаблоне например xxx.tpl с нужным содержимым 

3) В тексте страницы где нужно вывести (в админке) пишите:

[widget name=tpl tpl=xxx.tpl]

4) Далее делаете что нужно в xxx.tpl 

 

Нет друг, не подключаются скрипты.

Не исключаю, что я с кудрявыми руками. Я так то не по этой теме. Интересующийся.

Попробуй сам.

Но если брать по логике, то тот же shopscript на смарти, но видел, что вставляется легко.

calc_deliv_cdek_js.zip

Изменено пользователем Джойстик
Ссылка на сообщение
Поделиться на другие сайты

В принципе не работает автокомплит...

Надо выяснять не "в принципе", а ТОЧНО проверять детально все действия внутри скрипта, где не работает, почему, и затем исправлять.

А методом тыка можно тянуть время долго и безрезультатно.

Если бы Вы выложили ссылку на страницу с ошибкой, может, быстрее бы полезный совет получили...

Ссылка на сообщение
Поделиться на другие сайты

Что бы нормально сделать - скорее всего вам придется обращаться за платной помощью.

Бесплатно вряд ли кто сделает нормально 

 

На стандартном шаблоне тут конфликт jquery autocomplete. 

+ нужно читать апи доставки. Скорее всего что еще не так с параметрами

 

http://tmp.pp.ua/dostavka

test.zip

Ссылка на сообщение
Поделиться на другие сайты

Надо выяснять не "в принципе", а ТОЧНО проверять детально все действия внутри скрипта, где не работает, почему, и затем исправлять.

А методом тыка можно тянуть время долго и безрезультатно.

Если бы Вы выложили ссылку на страницу с ошибкой, может, быстрее бы полезный совет получили...

Ссылка на локалхосте. Сам скрипт отдельно работает. Не работает внутри симплы.

Так то я бы выносил голову разработчику скрипта.

 

Ссылка на сообщение
Поделиться на другие сайты

Что бы нормально сделать - скорее всего вам придется обращаться за платной помощью.

Бесплатно вряд ли кто сделает нормально 

 

На стандартном шаблоне тут конфликт jquery autocomplete. 

+ нужно читать апи доставки. Скорее всего что еще не так с параметрами

 

http://tmp.pp.ua/dostavka

Да параметры дело второе. Там же включено показывать передаваемые параметры. Это все настраиваемо. Вес, отправитель. Это потом.

Комплит тоже получает по API список городов. А он их не получает.

Ссылка на сообщение
Поделиться на другие сайты

Ссылка на локалхосте. Сам скрипт отдельно работает. Не работает внутри симплы.

 

Почини мне то, не скажу что...

Ну что же, продолжайте делать из простого вопроса сложный, у Вас это хорошо получается....

Ссылка на сообщение
Поделиться на другие сайты

Почини мне то, не скажу что...

Ну что же, продолжайте делать из простого вопроса сложный, у Вас это хорошо получается....

Вот за что люблю около IT публику, так они всегда важнее всех остальных. :D  сарказм.

Если скрипт не работает, то смысл его подключать в рабочий сайт?

Я могу сделать дамп сайта и опубликовать на другом хосте, если в теме архива со скриптом недостаточно.

Изменено пользователем Джойстик
Ссылка на сообщение
Поделиться на другие сайты

Да параметры дело второе. Там же включено показывать передаваемые параметры. Это все настраиваемо. Вес, отправитель. Это потом.

Комплит тоже получает по API список городов. А он их не получает.

 

Я ж вам дал пример где уже работает получение города https://yadi.sk/i/ShQAhhaOqYCG3

Просто сказал что нужно будет еще разобраться с параметрами и убрать конфликт плагинов (если в шаблоне подключен стандартный скрипт автозаполнения поиска)

 

Не пойму в чем загвоздка теперь? 

Ссылка на сообщение
Поделиться на другие сайты

Я ж вам дал пример где уже работает получение города https://yadi.sk/i/ShQAhhaOqYCG3

Просто сказал что нужно будет еще разобраться с параметрами и убрать конфликт плагинов (если в шаблоне подключен стандартный скрипт автозаполнения поиска)

 

Не пойму в чем загвоздка теперь? 

Каюсь, после слов "конфликт jquery" подумалось о нерабочем.

Да, кстати, автозаполнение есть. Так он с ним конфликтует?

Ссылка на сообщение
Поделиться на другие сайты

Если скрипт не работает, то смысл его подключать в рабочий сайт?

Я могу сделать дамп сайта и опубликовать на другом хосте, если в теме архива со скриптом недостаточно.

Так сделайте, опубликуйте и дайте ссылку...
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...