Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

esculapra

Пользователи
  
  • Публикаций

    1 775
  • Зарегистрирован

  • Посещение

Все публикации пользователя esculapra

  1. Какая версия магаза? Вот была ситуация, примерно аналогичная. С контроллера приходит урл в шаблон, но амперсанд прописывается как &amp; index.php?route=tool/tool_sef&amp;token=bla-bla-bla Пришлось сделать в шаблоне так index.php?route=tool/tool_sef&<?php echo $token_identifier ?>=<?php echo $token ?> то есть амперсанд (жирным выделен) должен быть прописан в самом шаблоне Не знаю почему так, бо если ссылку вставить непосредственно в строку браузера, то отрабатывает нормально. А в системе редирект приводит к ошибке.
  2. Ну якшо треба, домовимось. Сформуй ТЗ - розроблю такий модуль. Пиши у ЛС
  3. Та не суть, важно, шо Харків - це Україна, й Кропивницький (стар. Кіровоград) - це Україна
  4. короче, сохрани страницу когда работает, и измененную. и запакуй мне в архив. сейчас на 2 часа электрику отключили - до полуночи не будет.
  5. Відремонтувати, або рос. - исправить. Я давно не чув "починить, отдать в починку", хіба шо давно, у родичів з рф, та давно з ними не контактую. все, следующий сеанс через 2 часа. кина не буде - электричество кончилось.
  6. там только рокировка 2-х кнопок, то есть все данные на странице есть.
  7. попробуй изменить код <button type="button" id="button-cart" data-loading-text="Загрузка..." class="us-product-btn us-product-btn-active" onClick="addCart()">В корзину</button> это <script> $('#button-cart').on('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', cache: false, beforeSend: function() { $('#button-cart').button('loading'); }, complete: function() { $('#button-cart').button('reset'); }, success: function(json) { $('.alert-dismissible, .text-danger').remove(); $('.form-group').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { let errorOption = ''; for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } errorOption += '<div class="alert-text-item">' + json['error']['option'][i] + '</div>'; } usNotify('danger', errorOption); } if (json['error']['error_warning']) { usNotify('danger', json['error']['error_warning']); } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { if (json['isPopup']) { octPopupCart(); } else { usNotify('success', json['success']); } if(typeof octYandexEcommerce == 'function') { octYandexEcommerce(json); } // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#oct-cart-quantity, .header-cart-index, #mobile_cart_index').html(json['total_products']); $('.us-cart-text').html(json['total_amount']); }, 100); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); </script> на это <script> function addCart() { alert('bla-bla-bla');// ну шоб бачити шо все норм. $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', cache: false, beforeSend: function() { $('#button-cart').button('loading'); }, complete: function() { $('#button-cart').button('reset'); }, success: function(json) { $('.alert-dismissible, .text-danger').remove(); $('.form-group').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { let errorOption = ''; for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } errorOption += '<div class="alert-text-item">' + json['error']['option'][i] + '</div>'; } usNotify('danger', errorOption); } if (json['error']['error_warning']) { usNotify('danger', json['error']['error_warning']); } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { if (json['isPopup']) { octPopupCart(); } else { usNotify('success', json['success']); } if(typeof octYandexEcommerce == 'function') { octYandexEcommerce(json); } // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#oct-cart-quantity, .header-cart-index, #mobile_cart_index').html(json['total_products']); $('.us-cart-text').html(json['total_amount']); }, 100); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } </script>
  8. Ну да, только там же связка нескольких таблиц. То есть все можно за очень дополнительную плату. Или в админке (что проще и абсолюьли бесплатно) открыть категорию и в селекте указать пункт выбрать категорию, то есть она становится основной.
  9. так воспроизведите непонятку - сейчас все работает
  10. esculapra

    Оптимизация фото

    я когда-то делал модуль, который удалял неактуальные фотки с сайта (которые больше не используются). в принципе можно сделать модуль, который бы оптимизировал картинки (типа как инструмент кэширования изображений).
  11. esculapra

    Оптимизация фото

    Действительно, это тоже влияет. Но и загружать же нужно с умом - я практикую размеры исходника 600х800, 800х600, 800х800
  12. esculapra

    Оптимизация фото

    Ну если их размер порядка 3 метра (такие с фотика получаются), то можно войти в панель гугл спида и получить оптимизированные. Еще вариант - в кэше хранятся, как эскизы (тумбики), так и большие (оптимизированные, типа 500х500). Вот их скачать, переименовать (типа из 1_1290788995-500x500 удалить -500x500), и потом заменить ими исходники. Вот прилагаю 2 файла (исходник 680х480 - ну я метровые не заливаю априори!), и с кэша (500х500). Их вес соответственно 45 и 49 кил (бо система увеличила размер исходника).
  13. esculapra

    Оптимизация фото

    и все фотки актуальные?
  14. Отпишите в ЛС. Нужны для начала данные для входа по ФТП.
  15. наверное. заказчику данные приходят?
  16. а почему заказ в обработке имеет статус доставлено?
  17. разбираться с модулем, который за это отвечает.
  18. А нафига в модели указывать полное название? Модель - это модель с неким набором буквенно-цифровых символов.
  19. Нужно открыть в браузере панель разработчика и перегрузить страницу. Там будут показаны пути для загружаемых стилей и скриптов.
  20. в принципе в админку данные заказа должны приходить напрямую, не через почтовик. значит дело не в этом.
  21. через какой почтовик работает почта? https://elbuz.com/docs-errors-when-sending-mail лучше делать отправку через собственный сервер (то есть создать почтовый ящик на хостинге, где лежит домен).
  22. 1. Ошибка снтаксиса - посмотри в файле шаблона. 2. Насчет фатальной ошибки спроси у поддержки хостинга.
  23. esculapra

    перенос сайта

    Загрузчик в стартап подключает файлы из папки либрари, в то числе и файл db.php И в нем есть класс class DB { Посмотри этот файл. Он может и подключается, или изменен
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.