Изменение отображаемой цены товара при изменении значения атрибута

Главные вкладки

Аватар пользователя lugobor lugobor 3 сентября 2011 в 19:44

У меня вопрос, как сделать, чтобы при просмотре категорий http://lugobor-test.cc.ua/catalog/1 отображаемая цена менялась в зависимости от значения атрибута, как при просмотре товара http://lugobor-test.cc.ua/node/2

для изменения цены при просмотре товара сделали следующее

В uc_attribute.module добавить

$opt = array();

$display_price1 = in_array($attribute->aid, $priced_attributes) ? ''. uc_price($price_info, $context) : '';

$opt[$option->oid]['dprice'] = $display_price1;

$opt[$option->oid]['price'] = $product->sell_price + $option->price;

$pr_info = array(

'price' => $product->sell_price,

'qty' => $qty,

);

$opt_price = uc_price($pr_info,$context);

$test ='';

foreach($opt as $key => $value)

{

$test .= 'case "'.$key.'": pr="'.$value['dprice'].'"'."; break; \n";

}

$scriptselect = '

$(document).ready(function() {

$("#edit-attributes-'.$attribute->aid.'").change(function() {

var choise = $(this).val();

var pr = "";

switch (choise){ '."\n".$test."default: pr=".'"'.$opt_price.'"'."; \n".'}

if (pr != ""){

$(".uc-price-display").html(pr);

} else

{

$(".uc-price-display").html("'.$opt_price.'");

}

});

});

';

и вместо

$form_attributes[$attribute->aid] = array(

'#type' => $attr_type,

'#default_value' => ($attr_type == "checkboxes" ? array() : $attribute->default_option),

'#options' => $options,

'#required' => $attribute->required,

);

}

написать

$form_attributes[$attribute->aid] = array(

'#type' => $attr_type,

'#description' => check_markup($attribute->description).$scriptselect,

'#default_value' => ($attr_type == "checkboxes" ? array() : $attribute->default_option),

'#options' => $options,

'#required' => $attribute->required,

);

}

Комментарии

Аватар пользователя Orion76 Orion76 4 сентября 2011 в 1:17

Менять содержимое форм лучше в вспомогательном модуле хуками [имя_модуля]_form_alter [имя_модуля]_[ид_формы]_form_alter

Аватар пользователя Sadchenko Sadchenko 3 апреля 2012 в 3:53

Пробовал, выдает ошибку! Че делать? может я не туда вставляю. Превый код ведь нужно в конец файла uc_attribute.module вставить?

А второй код я заменил так как надо! без ошибок