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

KylunSergOC

Новичок
  
  • Публикаций

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

  • Посещение

Посетители профиля

710 просмотров профиля

Достижения KylunSergOC

  1. Я думав що система автоматично їх шукає та підключає
  2. Подскажите как работает наследование в Opencart 3. моя структура файлов: Я хочу чтобы set_filter_body наследовался от set_filter так же как set_filter наследуется от контроллера. Но без явного подключения require_once(DIR_APPLICATION . 'controller/ocpinka/set_filter.php'); я получаю ошибку Fatal error: Uncaught Error: Class 'ControllerOcpinkaSetFilter' not found in C:\OpenServer\domains\site.ua\catalog\controller\ocpinka\set_filter_body.php:3 Stack trace: #0 C:\OpenServer\domains\sitestorage\modification\system\engine\action.php(69): include_once() #1 C:\OpenServer\domains\site.ua\catalog\controller\startup\router.php(25): Action->execute() #2 C:\OpenServer\domains\sitestorage\modification\system\engine\action.php(79): ControllerStartupRouter->index() #3 C:\OpenServer\domains\site.ua\system\engine\router.php(67): Action->execute() #4 C:\OpenServer\domains\site.ua\system\engine\router.php(56): Router->execute() #5 C:\OpenServer\domains\site.ua\system\framework.php(169): Router->dispatch() #6 C:\OpenServer\domains\site.ua\system\startup.php(104): require_once('C:\\OpenServer\\d...') #7 C:\OpenServer\domains\site.ua\index.php(21): start() #8 {main} thrown in C:\OpenServer\domains\site.ua\catalog\controller\ocpinka\set_filter_body.php on line 3 Нужно дополнительно что-то настраивать, или использовать require_once это нормально?
  3. Подскажите как исправить ошибку. Хочу добавить возможность изменять количество товаров после добавления в корзину (фото прикреплено). В файл cart.twig добавлена разметка: <td> <div class="cart_quantity_button"> <a style="font-size:20px; cursor:pointer" class="cart_quantity_down" data-key="{{ product.cart_id }}">-</a> <input class="cart_quantity_input" type="text" name="quantity" value="{{ product.quantity }}" autocomplete="off" size="2" readonly> <a style="font-size:20px; cursor:pointer" class="cart_quantity_up" data-key="{{ product.cart_id }}">+</a> </div> </td> И в файл common.js добавлено функцию и слушатели: function updateCart(key, quantity) { $.ajax({ url: 'index.php?route=checkout/cart/edit', type: 'post', data: 'key=' + key + '&quantity=' + (typeof (quantity) != 'undefined' ? quantity : 1), dataType: 'json', beforeSend: function () { $('#cart > button').button('loading'); }, complete: function () { $('#cart > button').button('reset'); }, success: function (data) { // Обновление количества товаров в корзине $('#cart-total').html(data['total']); // Обновление содержимого корзины if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { location = 'index.php?route=checkout/cart'; } else { $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function (jqXHR, exception) { if (jqXHR.status === 0) { alert('Not connect. Verify Network.'); } else if (jqXHR.status == 404) { alert('Requested page not found (404).'); } else if (jqXHR.status == 500) { alert('Internal Server Error (500).'); } else if (exception === 'parsererror') { alert('Requested JSON parse failed.'); } else if (exception === 'timeout') { alert('Time out error.'); } else if (exception === 'abort') { alert('Ajax request aborted.'); } else { alert('Uncaught Error. ' + jqXHR.responseText); } } }); } $('.cart_quantity_up').on('click', function () { var key = $(this).data('key'); var quantity = $(this).parent().find('.cart_quantity_input').val(); quantity++; $(this).parent().find('.cart_quantity_input').val(quantity); updateCart(key, quantity); }); $('.cart_quantity_down').on('click', function () { var key = $(this).data('key'); var quantity = $(this).parent().find('.cart_quantity_input').val(); if (quantity > 1) { quantity--; $(this).parent().find('.cart_quantity_input').val(quantity); updateCart(key, quantity); } }); При нажатии на +/- срабатывает событие, количество увеличивается/уменьшается и вызывается функция updateCart() которая должна обновить содержимое корзины. Но метод success не выполняется, так как получаю ошибку "parsererror". (фото прикреплено)
  4. показал деду, поорали вместе. Дед оценил
  5. Добрый день. OcStore 3. Хочу сделать возможность добавление/уменьшение количества товаров после добавления в корзину. Магазин делаю в большей мере для себя для знакомства с OpenCart да и вообще с программированием) Умею верстать, знаю основы js, php. Поэтому в большей мере хочу сделать все сам, без готовых модулей, там где это будет оправдано. В шапке есть корзина, после покупки товара, открывается корзина с возможностью изменить количество единиц. Код счетчика: cart.twig <div class="product-card-modal__counter counter" data-counter> <button class="counter__control" data-action="minus"> <svg class="counter__icon"> <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#minus"></use> </svg> </button> <div class="counter__input"> <input type="text" name="quantity" value="{{ product.quantity }}" data-input-quantity class="counter__input__quantity" placeholder="{{ product.quantity }}"> </div> <button class="counter__control" data-action="plus"> <svg class="counter__icon"> <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#plus"></use> </svg> </button> </div> common.js $(document).on('click', '[data-counter] [data-action]', function (e) { const btn = $(this); const input = btn.closest('[data-counter]').find('input'); const minValue = 1; if (btn.attr('data-action') == 'plus') { input.val(parseInt(input.val()) + 1); } else if (btn.attr('data-action') == 'minus') { if (parseInt(input.val()) > minValue) { input.val(parseInt(input.val()) - 1); } else { return null; } } }); Подскажите как передать количество дальше в общую корзину? Как сохранить изменённое количество после обновления страницы? Скачивал модули, которые делают похожие вещи, но там 20-40 строк кода, но как они передают данные дальше не могу понять.
  6. перед загрузкой они вручную оптимизируются
  7. Часть этих тем я видел, но никакого решения там нету. Косвенно качаются либо плагина, либо VPS.
  8. Искал, там везде рекламируют плагин webp + lazy load + watermark. А если просто в папке Кеша заменить изображения и не чистить кэш они останутся?)
  9. Я уже задумывался об этом, но он проплачен еще на год. Но все равно хотелось бы оптимизировать изображения, если есть такая возможность
  10. Добрый день. На сайте порядка 50 картинок. Перед загрузкой на сайт, они вручную оптимизируются с помощью веб-сервисов. Попугаи показывают что сами картинки замедляют загрузку сайта на 3,5 сек. Для мобильной версии сайта это довольно проблематично и хотелось бы разобраться с этой проблемой. А проблема с теми картинками которые , которые кэшируются (их нарезает сам движок). Их размер можно уменьшить вполовину. Погуглив, нашлось только решения покупки модулей для оптимизации изображений, но цены там довольно кусаются для 50 картинок. Может кто-то знает способ отменить нарезку изображений движком, и самому отдавать то что ему нужно? Или кто как справляется с этой проблемой?
  11. Тогда как-то не задумывался об seo, да и наверное это было самое простое решение. А как так же на десктопе сделать?
  12. Разве? оно использует категории как пункты, а подкатегории как выпадающее меню подпунктов. Я же хочу чтобы у меня была кнопка ("меню"), которая при наведении, покажет выпадающий список категорий магазина.
  13. Добрый день. Подскажите, насколько правильно сделано мое меню. У меня OcStore 2.3. Меню создавал таким образом, что есть одна главная категория "Продукция", а у нее подкатегории "1", "2", и тд. Но получается что путь к товару теперь очень длинный и включает ненужную главную категорию "продукция", которая выступает только в роли кнопки для открытия меню. И все пункты меню выступают в роли подкатегорий, а не категории. На сколько это влияет на SEO? Как вместо категории, сделать обычную кнопку, которая будет раскрывать меню категорий?
  14. Подскажите как выводить единицы измерения для опенкарт 2.3. Когда товар был в граммах, я просто дописывал после вывода веса - гр. А теперь мне нужно чтобы еще выводились и литры, и этот костыль себя изжил. Как обратится к переменной которая отвечает за вывод единиц (гр, кг, л)?? Вот так раньше выводил вес)) `<?php if($product['weight']>0) { ?> <div class="weight"> <?php echo $product['weight']; ?>гр. </div> <?php } ?>`
×
×
  • Создать...

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

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