Magento меняет настраиваемые параметры продукта в раскрывающемся списке для div

Мне нужно показать параметры настраиваемого продукта в виде блоков div с буквой «a» внутри, которые позволяют пользователю щелкнуть параметр и выбрать его вместо раскрывающегося списка. Как меню (цель показать размеры обуви).

Как многие из вас знают, Magento использует ответ Json для заполнения параметров раскрывающегося меню. (var spConfig = new Product.Config (getJsonConfig ()?>), а класс находится в js / varien / product.js (Product.Config = Class.create ()).

Затем я отредактировал файл template / catalog / product / view / type / options / configurable.phtml и заменил исходное поведение на что-то вроде этого.

'<?php
     echo ' 
                <ul class="super-attribute-select">';
         $resultado = json_decode($this->getJsonConfig(), true);
         $atributo=$resultado['attributes'][162]['options'];
         foreach($atributo as $att){
             echo '<li>';
             echo '<a value="'.$att['id'].'" price="'.$att['price'].'" href="javascript:void()" onclick="return assignValue()">'.$att['label'].'</a>';
             echo '</li>';
             }
     echo ' </ul>
            <div class="clear"></div>';
     ?>'

Этот простой мод позволил мне заменить меню на небольшую сетку, образованную элементами div. Теперь я пытаюсь создать функцию Javascript, которая имитирует собственное поведение, но только для выбранного варианта (в данном случае - размера обуви). Насколько я понимаю код, он отправляет значение параметра вместе с формой, поэтому моя идея заключалась в том, чтобы создать скрытый ввод, а затем присвоить значение с помощью функции Javascript, когда пользователь выполняет щелчок, примерно так:

'<script>
  function assignValue(value){
   //assign the value       
      document.getElementById('super_attribute[162]').value = value;
   //mod the class of the selected item
      this.addClassName("selected");
</script>'

Я думаю, что может быть необходимо создать функцию или вызвать метод, который magento уже должен сделать требуемое значение. Даже я не знаю, может ли быть хорошей идеей установить класс «required-entry» для скрытого ввода.

Не могли бы вы мне помочь, пожалуйста? Мы будем очень благодарны за любую помощь или другие идеи.


person Ricardo M    schedule 21.02.2013    source источник
comment
вы можете переместить этот вопрос на magento.stackexchange.com   -  person Fabian Schmengler    schedule 22.02.2013
comment
Звучит здорово!. Как я могу это сделать ??   -  person Ricardo M    schedule 22.02.2013


Ответы (1)


Вот вам фрагмент кода. Слишком просто =) !! ..

    <script type="text/javascript">
        function assignValue(idattribute,price,value){
            var sal = new String(value); //this value is what you are showing to the user in the div grid
            var disp = new String(idattribute);

            $('nameinputhidden').value=disp;
            $('advice-required-entry-attribute').fade();
                    $$('.nameinputhidden').each(
                     function(e){
                   e.removeClassName('active');
                      }
                      )
                    $(sal).addClassName('active');

    </script>

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

Надеюсь это поможет. В любом случае, если я могу вам помочь, просто дайте мне знать!

С Уважением!

person Ricardo M    schedule 22.04.2013
comment
Спасибо Рикардо за сценарий и ваше время на ответ, однако я пытаюсь получить миниатюрные изображения связанных продуктов на странице настраиваемого просмотра продукта, тогда как этот скрипт перечисляет метки значений атрибутов настраиваемого продукта в моем случае цвет. Допустим, есть conf product attr 'color' и 4 простых продукта в качестве связанных продуктов со значениями attr color. Теперь мне нужен настраиваемый продукт без раскрывающегося списка и только эскизы связанных с ним продуктов, и когда пользователь нажимает на любой из эскизов, основное изображение заменяется основным изображением связанного продукта. - person itsandy; 23.04.2013