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

Статус
В этой теме нельзя размещать новые ответы.
Ну в моем проекте это не требуется )
Результат должен быть примерно как Для просмотра ссылки Войди или Зарегистрируйся
В целом Ваш ответ не обнадеживает, звучит трудно) Я не силен в PHP, поэтому спрашиваю тут конкретные решения)
Здесь всё зависит от конкретного шаблона. Универсальных решений нет и знания js, хотя бы начальные от вас потребуются. Я примерно расписал на скорую руку, в 1.6 в ряде популярных шаблонов даже если просто воткнуть этот код - он должен заработать, но это не очень правильный подход т.к. нужно делать под конкретный проект. Смена по наведению курсора на thumbnail list, за высокое качество кода не ручаюсь, быстро писал.
HTML:
$(document).ready(function () {
  $('#thumbs_list_frame a').on('mouseover', function (e) { //смена картинки по наведению (displayImage в product.js)
    window.refreshProductImages = function(a){return false} //refreshProductImages  выпилить в product.js
     e.preventDefault();
    var _ = $(this); //domAAroundImgThumb - ссылка на текущий объект в displayImage в product.js
    var id = _.children('img').attr('id').replace(/\D+/g, ''); //получили id картинки
    var stop = false;
    function getGroupAttr(a) { //здесь получаем id группы атрибутов по id атрибута из attributesCombinations
      var b = - 1;
      for (var i = 0; i < attributesCombinations.length; i++) {
        if (attributesCombinations.id_attribute == a) {
          b = attributesCombinations.id_attribute_group;
        }
      }
      return b;
    }
    function setAttr(val) {
      $.each(val, function (i,v) {
        if(getGroupAttr(v) == -1){ //если группу не нашли
          return false;
        }
       if ($('[name="group_' + getGroupAttr(v) + '"]')[0].tagName == 'SELECT') { //если select
         $('[name="group_' + getGroupAttr(v) + '"]').val(v).change();
       }
        if ($('[name="group_' + getGroupAttr(v) + '"]')[0].type == 'radio') { //если radio
         $('[name="group_'+getGroupAttr(v)+'"][value="'+v+'"]').attr('checked','checked').click();
       }
       if ($('[name="group_' + getGroupAttr(v) + '"]').attr('class') == 'color_pick_hidden') { //если color picker
         $('#color_'+v).click();
       }
      });
    }
    $.each(combinationsFromController, function (i, obj) { //в этом цикле находим первый массив, содержащий id картинки
      if (stop) {
        return false;
      }
      if (obj.id_image == id) {
        setAttr(obj.attributes);
        stop = true;
      }
    });
  });
});
 
Последнее редактирование:
Yes It can come Product.js ?
<-------------- добавлено через 3478 сек. -------------->
when the client selects an attribute on the site (Prestashop 1.6.1.17)- he sees a photo for this attribute. and he can add it to the basket. But if client just flips through the photo, he likes the goods, and he wants to buy it, he does not know the attribute. If I select photo the attribute don't change for it's photo. that is, it is necessary that the attribute was attached to the photo and the photo was also attached to the attribute. What can be done? On this site it works how I need.


Спасибо! Попробую осмыслить)

you tried to redo the declination..?
 
you have a problem of declination ?
when the client selects an attribute on the site (Prestashop 1.6.1.17)- he sees a photo for this attribute. and he can add it to the basket. But if client just flips through the photo, he likes the goods, and he wants to buy it, he does not know the attribute. If I select photo the attribute don't change for it's photo. that is, it is necessary that the attribute was attached to the photo and the photo was also attached to the attribute. What can be done? On this site it works how I need.

Здесь всё зависит от конкретного шаблона. Универсальных решений нет и знания js, хотя бы начальные от вас потребуются. Я примерно расписал на скорую руку, в 1.6 в ряде популярных шаблонов даже если просто воткнуть этот код - он должен заработать, но это не очень правильный подход т.к. нужно делать под конкретный проект. Смена по наведению курсора на thumbnail list, за высокое качество кода не ручаюсь, быстро писал.
Спасибо! Попробую осмыслить)
<-------------- добавлено через 2805 сек. -------------->
Yes It can come Product.js ?

May be... I thought it's easy. But it seems that two lines in the code can't do it:)



you tried to redo the declination..?[/QUOTE]

Bro, I don't understand what you question? :) What is meant declination?
 
Просто он на обслуживании висит постоянно, еще не запущен. Сейчас открою на сутки)
HTML:
jQuery(document).ready(function ($) {
$('#thumbs_list_frame [id^="thumbnail_"], .owl-next, .owl-prev').on('click', function(){
  var _ = this;
  setTimeout(function(){
    var synced = $('#thumbs_list_frame .synced');
    var imageId = _.id.indexOf('thumbnail_') > -1 ? _.id.replace(/\D+/g, '') : synced.children('.item').attr('id').replace(/\D+/g, '');
    $.each(combinationsFromController, function (i, obj) {
      if (obj.id_image == imageId) {
        $('#color_'+obj.attributes[0]).click();
      }
    });
  },480);
});
});
19.1507599048.gif
Это самый простой вариант только на цвета. А вообще лучше делать через ивенты owlcarousel, но чё-то не биндятся они у вас извне, можно попробовать в месте инициализации плагина - мне труднее т.к. код под компрессией и объединён.
 
Последнее редактирование:
Круто, код работает!) Я вставил его в products-comparison.js, верно?
А если нужно кашерно, через ивенты, Вы на коммерческой основе работаете?)
Может конечно не в тему, только ты имей ввиду что Я.Маркет и G Merchant не принимают больше 10 изображений товара. Пишут ошибку и не размещают предложение у себя.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху