Перейти к содержимому


RuWeb.Net

Видимость единственной радио-кнопки при выборе оплаты/доставки


  • Вы не можете ответить в тему
No replies to this topic

#1 [:|||||||:]

    Продвинутый пользователь

  • Модераторы
  • 516 Сообщений:
  • ГородРоссия, СПб

Отправлено 21 сентября 2011 - 04:48

Иногда нужно, чтобы напротив единственного варианта в оплате или доставке тоже была видна включенная "точечка" radio-button. Есть два способа:

Первый способ, с правкой php:
В checkout_shipping.php вместо строки (её можно просто закомментировать):
$quotes[$i]['methods'][$j]['price'] = $vamPrice->Format(vam_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true).vam_draw_hidden_field('shipping', $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id']);
пишем:
$quotes[$i]['methods'][$j]['price'] = $vamPrice->Format(vam_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);
$quotes[$i]['methods'][$j]['radio_field'] = vam_draw_radio_field('shipping', $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'], 'checked','id="'.$quotes[$i]['methods'][$j]['id'].'"');
$quotes[$i]['methods'][$j]['id'] = $quotes[$i]['methods'][$j]['id'];
если не находим, то ищем условие if (($n > 1) || ($n2 > 1)) и в нём меняем

а в checkout_payment.php вместо:
$selection[$i]['selection'] = vam_draw_hidden_field('payment', $selection[$i]['id']);
пишем:
$selection[$i]['selection'] = vam_draw_radio_field('payment', $selection[$i]['id'], ($selection[$i]['id'] == $selection[0]['id']), 'id="'.$selection[$i]['id'].'"');
если не находим, то ищем условие if (sizeof($selection) > 1) и в нём меняем

Второй способ, правка только в шаблоне:
В файле шаблон\module\checkout_shipping_block.html ищем:
{$method_data.radio_field}
и заменяем на условие:
{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$method_data.radio_field}{/if}

В файле шаблон\checkout_payment_block.html ищем:
{$module_data.selection}
и заменяем на условие:
{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$module_data.selection}{/if}

В условиях просто проверяется кол-во способов оплаты/доставки - если способ всего один, то заменяем стандартную обработку и радио-кнопка не убирается.

Второй вариант предпочтительнее, т.к. изменяется только шаблон и всегда можно откатить назад.
Не нервируйте меня - мне скоро будет негде прятать трупы
шаблоны, сайты, лужу, паяю
Изображение





1 человек читают эту тему

0 пользователей, 1 гостей, 0 скрытых пользователей