Мне нужно показать параметры настраиваемого продукта в виде блоков 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» для скрытого ввода.
Не могли бы вы мне помочь, пожалуйста? Мы будем очень благодарны за любую помощь или другие идеи.