У меня вопрос, как сделать, чтобы при просмотре категорий 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,
);
}
Комментарии
Менять содержимое форм лучше в вспомогательном модуле хуками [имя_модуля]_form_alter [имя_модуля]_[ид_формы]_form_alter
Пробовал, выдает ошибку! Че делать? может я не туда вставляю. Превый код ведь нужно в конец файла uc_attribute.module вставить?
А второй код я заменил так как надо! без ошибок
Подскажите как подобное реализовать в Drupal 7?