Искал долго решение этого вопроса, но как-то все кусками...
Пришлось собирать по частям самому и допиливать
JS рулит
В итоге получилось такое:
Правим 3 файла : addtocart_advanced_attribute.tpl, quantity_box_general.tpl, flypage_new.tpl
Для flypage_new.tpl :
Добавляем это в начало где-то после 3-й строчки
<script type="text/javascript">
function strNum(x) {
var r = "";
for(var n=0; n<x.length; n++) {
var base= x.charAt(n);
if(base!=' '&&(isNaN(base)==false||base==','))
{ r = r + base; } }
return parseFloat(r.replace(/,/g,"."));
}
function strPrice(x) {
x = x.toString();
var y = x.charAt(0);
for(var n=1; n<x.length; n++) {
if ((Math.ceil((x.length-n)/3) == (x.length-n)/3)&(x.charAt(n)!=".")) {y = y + " ";}
y = y + x.charAt(n);
}
y=y+" "+valut;
return y;
}
function onclickButton(x, y) {
var kkt=document.getElementById('quantity'+ y).value;
var n=x.lastIndexOf("(");
var operand=x.slice(n+1,n+2);
var chislo=strNum(x.slice(n));
var price=strNum(vmPrice);
price=eval(price+operand+chislo);
price=price*kkt;
vmStr.innerHTML= strPrice(price.toFixed(2));
}
function kolTov(x, y) {
var radios = document.getElementsByTagName('input');
for (var i = 0; i < radios.length; i++) {
if (radios[i].type === 'radio' && radios[i].checked) {
var atrB=radios[i].value;
}}
var opti = document.getElementById(atrB).innerHTML;
onclickButton(opti, y);
}
</script>
И это в самый конец :
<script type="text/javascript">
var vmStr= $('vmMainPage').getElement('.productPrice');
var vmPrice= vmStr.innerHTML;
var Baseprice = vmPrice;
var valut="";
var v=vmPrice.replace(/\d/g, "");
v=v.replace(/\s/g, "");
valut=v.replace(/,/g,""); //alert(v+"0");
</script>
Для addtocart_advanced_attribute.tpl :
Меняем полностью весь код на этот
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
<?php
foreach($attributes as $attribute) {
?>
<div class="vmAttribChildDetail" style="float: left;width:30%;text-align:right;margin:3px;">
<label for="<?php echo $attribute['titlevar'] ?>_field"><?php echo $attribute['title'] ?></label>:
</div>
<div class="vmAttribChildDetail" style="float:left;width:60%;margin:3px;">
<?php
foreach ( $attribute['options_list'] as $options_item ) : ?>
<?php if( isset( $options_item['display_price']) ) : ?>
<input type="radio" style="margin-top: 15px;" id="<?php echo $attribute['titlevar'] ?>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" value="<?php echo $options_item['base_var'] ?>" onclick="onclickButton('(<?php echo $options_item['sign'].$options_item['display_price'] ?>)', <?php echo $attribute['product_id'];?>)"><?php echo $options_item['base_value'] ?> <span id="<?php echo $options_item['base_var'] ?>" style="display:none">(<?php echo $options_item['sign'].$options_item['display_price'] ?>)</span><br />
<?php else : ?>
<input type="radio" style="margin-top: 15px;" id="<?php echo $attribute['titlevar'] ?>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" value="<?php echo $options_item['base_var'] ?>"><?php echo $options_item['base_value'] ?>
<?php endif; ?>
<?php endforeach; ?>
</div>
<br style="clear:both;" />
<?php
} ?>
Для quantity_box_general.tpl :
Ищем
Меняем в case все на этот код
$html .= '<input type="text" class="inputboxquantity" size="4" id="quantity'.$prod_id.'" name="quantity[]" value="'.$quantity.'" />
<input type="button" class="quantity_box_button quantity_box_button_up" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++; kolTov(qty_el.value, '.$prod_id.'); return false;" />
<input type="button" class="quantity_box_button quantity_box_button_down" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN(qty)&qty > 1) qty_el.value--; kolTov(qty_el.value, '.$prod_id.'); return false;" />
';
Все наработки взяты из открытых источников
Атрибуты выводятся радио-кнопками, кол-во товара специально-принудительно сделано не меньше 1.
Вобщем, кому надо - ставьте и пользуйтесь!
--------------------------------------------------------------------------------------------------------------------------
Дополнительная информация по теме:
http://joomlaforum.ru/index.php/topic,276370.msg1378281.html#msg1378281