Помощь Поддержка или помощь c Prestashop - 2 часть

Статус
В этой теме нельзя размещать новые ответы.
Всех с Новым Годом и наступающим Рождеством Христовым!
Подскажите пожалуйста, как смастерить авто-бэкапирование БД?
Бэкап файлов сайта организован автоматически средствами моего 1-го сервера Synology 3615 (на котором сайт), на 2-ой сервер Synology 3615 по любому расписанию, или необходимости.
А вот с бэкапом БД пока не разобрался, т.е. делаю экспорт БД сайта в PhPMyAdmin вручную, после бэкапа файлов сайта. А как настроить в PhPMyAdmin автоматическое бэкапирование БД по расписанию (как с файлами сайта)? Чтоб, допустим раз в 2 суток автоматом выполнялся бэкап БД сайта (в свою папку на 2-ом сервере).
Спасибо.
 
С новым годом всех!
Вопрос касательно prestashop 1.6.1.3 при импорте товара с помощью eMagicOne, во фронт офисе не отображаются картинки, в админке все фото видны.
Перегенерация картинок не помогает :(
Если фото грузить вручную через админку, то ни каких проблем.
 
Всем привет и с новым годом!

Кто-нибудь пробовал убирать знак "X", который отображается рядом с числом (количество товара) при наведении на корзину?
Не могу найти в исходниках это место...
 
Всем привет и с новым годом!

Кто-нибудь пробовал убирать знак "X", который отображается рядом с числом (количество товара) при наведении на корзину?
Не могу найти в исходниках это место...
В папке с шаблоном tpl смотри... modules для blockcart + js тамже для blockcart ajax-cart
 
Что ж, так как суровые правила сайта не позволяют новичку создать полезную тему, то напишу здесь.

Делаем счётчик количества товара для добавления в корзину на странице категории (1.6.1.x).

Нам будет необходимо править всего 2 файла шаблона. В ядро даже лезть не будем.
Как создать работающее поле ввода количества товара описал Для просмотра ссылки Войди или Зарегистрируйся товарищ модератор сообщества PrestaShop.

Поэтому эту часть в двух словах переведу на русский.
Открываем /themes/default-bootstrap/product-list.tpl
В районе 149-й строки находим следующий код:
PHP:
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.customizable != 2 && !$PS_CATALOG_MODE}
    {if (!isset($product.customization_required) || !$product.customization_required) && ($product.allow_oosp || $product.quantity > 0)}
        {capture}add=1&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}{/capture}
        <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}">
            <span>{l s='Add to cart'}</span>
        </a>
    {else}
        <span class="button ajax_add_to_cart_button btn btn-default disabled">
            <span>{l s='Add to cart'}</span>
        </span>
    {/if}
{/if}

И прямо перед первой ссылкой <a class="button ajax_add_to_cart_button..... добавляем код текстового поля:

PHP:
<input style="font-size:27px; text-align:center; width:30px;" type="text" name="qty" id="quantity_to_cart_{$product.id_product|intval}" value="1"/>

Сохраняем/грузим файл и переходим ко второму.
Открываем /themes/default-bootstrap/js/modules/blockcart/ajax-cart.js
В районе 137-й строки находим код:
Код:
ajaxCart.add(idProduct, null, false, this, minimalQuantity);

Расширяем его до вот такого:
Код:
ajaxCart.add(idProduct, null, false, this, $('#quantity_to_cart_'+idProduct+'').val());

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

Теперь добавляем кнопки увеличения/уменьшения этого самого количества. Можно пойти легким путем и просто добавить нашему input-у атрибут type="number". Но если хотим редактировать стили кнопок и сделать их отдельно, то необходимо внести следующие правки в вышеперечисленные файлы.

В product-list.tpl:

PHP:
<div class="incr-decr-buttons">
   <a href="#" data-field-qty="qty_{$product.id_product|intval}" class="product_quantity_incr">
     <span><i class="icon-chevron-up"></i></span>
   </a>
   <a href="#" data-field-qty="qty_{$product.id_product|intval}" class="product_quantity_decr">
     <span><i class="icon-chevron-down"></i></span>
   </a>
</div>
<input type="text" min="1" name="qty_{$product.id_product|intval}" id="quantity_to_cart_{$product.id_product|intval}" class="cat-prod-qty" value="1" />
<a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l
s='Add to cart'}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.
product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}">
   <span>{l s='Add to cart'}</span>
</a>

В ajax-cart.js:

Код:
    // The button to increment the product value
     $(document).on('click', '.product_quantity_incr', function(e){
      e.preventDefault();
      fieldName = $(this).data('field-qty');
      var currentVal = parseInt($('input[name='+fieldName+']').val());
         quantityAvailableT = 100000000;
      if (!isNaN(currentVal) && currentVal < quantityAvailableT)
      $('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup');
      else
      $('input[name='+fieldName+']').val(quantityAvailableT);
     });
      // The button to decrement the product value
     $(document).on('click', '.product_quantity_decr', function(e){
      e.preventDefault();
      fieldName = $(this).data('field-qty');
      var currentVal = parseInt($('input[name='+fieldName+']').val());
      if (!isNaN(currentVal) && currentVal > 1)
      $('input[name='+fieldName+']').val(currentVal - 1).trigger('keyup');
      else
      $('input[name='+fieldName+']').val(1);
     });

Теперь объясню, что мы сделали.
Сначала мы присвоили нашему полю идентификатор #quantity_to_cart_{$product.id_product|intval}, который в окончании возвращает уникальный идентификатор каждого товара. И связали это поле с кнопкой добавления товара в корзину.

Во второй части мы добавили в файл шаблона код самих кнопок на увеличение/уменьшение. Затем в .js добавили код, отвечающий за ту же самую функцию на странице отдельного товара, немного видоизменив его. Тут самое главное — обратить внимание на класс кнопок, повторяющихся в js
(.product_quantity_incr и .product_quantity_decr). Эти классы обязательно должны отличаться от классов аналогичных кнопок на странице товара. Иначе получим двойное срабатывание скрипта на странице товара, тем самым увеличивая/уменьшая количество на 2 за шаг.
Всё. Готов ответить на вопросы по теме. :)
P. S. Для просмотра ссылки Войди или Зарегистрируйся.
На 1.6.1.3 не получилось у меня. Кто-то реализовывал такое?
 
Всем привет, народ, вот подскажите занялся сейчас потихоньку продвижением и заметил такую штуку что в престе нет мета тега и собственно куда вводить данных
meta name="keywords" или достаточно что есть description ???
 
Всем привет, народ, вот подскажите занялся сейчас потихоньку продвижением и заметил такую штуку что в престе нет мета тега и собственно куда вводить данных
meta name="keywords" или достаточно что есть description ???
Ключевики же нужно указывать в бэкофисе. Для товаров, например, на странице редактирования товара, для категорий — на странице редактирования категории, соответственно, и т.п. Для обычных страниц — в настройках страницы.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху