Автор Тема: Выбора количества на странице категории  (Прочитано 794 раз)

13 Январь 2016, 14:26:27
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем доброго дня!
Была такая тема
Как добавить поле для выбора количества на странице категории
Но тут есть одна проблемма..
При работе списком и сеткой поле выбора количества видно.
Вопрос.. как скрыть поле в режиме сетка, а оставить только в списком.
Спасибо!
13 Январь 2016, 16:20:23
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле /themes/default-bootstrap/js/global.js в функции function display(view) добавить переключение видимости.
13 Январь 2016, 16:31:20
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо! Буду пробовать, смотреть.
20 Январь 2016, 05:37:53
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день всем!
Был совет по вопросу выше
...В файле /themes/default-bootstrap/js/global.js в функции function display(view) добавить переключение видимости.
Толко-вот чтото не получается.. что там ставить.
За сетку отвечает этот кусок
$('ul.product_list').removeClass('list').addClass('grid row');
$('.product_list > li').removeClass('col-xs-12').addClass('col-xs-12 col-sm-6 col-md-4');
$('.product_list > li').each(function(index, element) {
html = '';
html += '<div class="product-container">';
html += '<div class="left-block">' + $(element).find('.left-block').html() + '</div>';
html += '<div class="right-block">';
html += '<div class="product-flags">'+ $(element).find('.product-flags').html() + '</div>';
html += '<h5 itemprop="name">'+ $(element).find('h5').html() + '</h5>';
var rating = $(element).find('.comments_note').html(); // check : rating
if (rating != null) {
html += '<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="comments_note">'+ rating + '</div>';
}
html += '<p itemprop="description" class="product-desc">'+ $(element).find('.product-desc').html() + '</p>';
var price = $(element).find('.content_price').html(); // check : catalog mode is enabled
if (price != null) {
html += '<div class="content_price">'+ price + '</div>';
}
html += '<div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="button-container">'+ $(element).find('.button-container').html() +'</div>';
var colorList = $(element).find('.color-list-container').html();
if (colorList != null) {
html += '<div class="color-list-container">'+ colorList +'</div>';
}
var availability = $(element).find('.availability').html(); // check : catalog mode is enabled
if (availability != null) {
html += '<span class="availability">'+ availability +'</span>';
}
html += '</div>';
html += '<div class="functional-buttons clearfix">' + $(element).find('.functional-buttons').html() + '</div>';
html += '</div>';
$(element).html(html);
});
$('.display').find('li#grid').addClass('selected');
$('.display').find('li#list').removeAttr('class');
$.totalStorage('display', 'grid');
А что сдесь менять.
Спасибо.
20 Январь 2016, 09:51:51
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
/* Спрятать элемент с классом myclass*/
$('.myclassr').hide();
/* Показать элемент с классом myclass*/
$('.myclass').show();
20 Январь 2016, 12:51:21
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
20 Январь 2016, 13:15:06
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо DarinSr! Вопрос закрыт.
21 Январь 2016, 10:21:56
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Пришлось вернуться к вопросу выше.
В файле /themes/default-bootstrap/js/global.js в функции function display(view) добавил переключение видимости
/* Спрятать элемент с классом myclass*/
$('.myclassr').hide();
/* Показать элемент с классом myclass*/
$('.myclass').show();

Все хорошо... но, при обновлении страницы Сетка, поле количества появляется.
Вставленно сюда
if (view == 'list')
{.........
$('.product_attributes).show();
}
else
{.........
$('.product_attributes).hide();
}

В файле product-list.tpl поле ввода
<div class="product_attributes">
<p>
<input id="quantity_wanted_{$product.id_product|intval}" type="text" name="ajax_qty_to_add_to_cart[{$product.id_product|intval}]" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="3" maxlength="3" />
</p>
</div>

Вопрос, как при обновлении страницы сетка, сделать так что-бы поле ввода не появлялось.
Спасибо!
21 Январь 2016, 10:54:56
Ответ #8
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
<input id="quantity_wanted_{$product.id_product|intval}" .. style="display:none"
21 Январь 2016, 12:23:59
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Срасибо за ответ! В принципе да.. но ставить надо в
<div class="product_attributes" style="display:none">
Еще раз спасибо! Вопрос закрыт.