shaklov 63 Опубликовано 9 августа, 2011 Жалоба Share Опубликовано 9 августа, 2011 Попросили сделать, чтобы радио-кнопка не исчезала, когда присутствует только один способ доставки или оплаты. Когда их несколько, то да, радио-кнопки есть и их можно нажимать. А когда только один способ в наличии, то вместо радио-кнопки выводится "пустота". Заказчик хочет, чтобы всё-равно был этот кружочек с точкой, будь он не ладен. Я уже всё облазил - не могу найти это место. Могу конечно гвоздями в шаблон прибить, но это на крайний случай уже. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 августа, 2011 Жалоба Share Опубликовано 9 августа, 2011 Наверное смотреть в /includes/classes/payment.php /checkout_payment.php /templates/vamshop/module/checkout_payment_block.html Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 10 августа, 2011 Автор Жалоба Share Опубликовано 10 августа, 2011 (изменено) Первый способ, с правкой 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'];[/code] если не находим, то ищем условие [b]if (($n > 1) || ($n2 > 1))[/b] и в нём меняем а в checkout_payment.php вместо: [code]$selection[$i]['selection'] = vam_draw_hidden_field('payment', $selection[$i]['id']);[/code] пишем:[code]$selection[$i]['selection'] = vam_draw_radio_field('payment', $selection[$i]['id'], ($selection[$i]['id'] == $selection[0]['id']), 'id="'.$selection[$i]['id'].'"');[/code] если не находим, то ищем условие [b]if (sizeof($selection) > 1)[/b] и в нём меняем [b]Второй способ, правка только в шаблоне:[/b] В файле шаблон\module\checkout_shipping_block.html ищем:[code]{$method_data.radio_field}[/code] и заменяем на условие:[code]{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$method_data.radio_field}{/if}[/code] В файле шаблон\checkout_payment_block.html ищем:[code]{$module_data.selection}[/code] и заменяем на условие:[CODE]{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$module_data.selection}{/if}[/code] В условиях просто проверяется кол-во способов оплаты/доставки - если способ всего один, то заменяем стандартную обработку и радио-кнопка не убирается. Второй вариант предпочтительнее, т.к. изменяется только шаблон и всегда можно откатить назад. Изменено 16 августа, 2011 пользователем [:|||||||:] Добавлен второй способ Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 августа, 2011 Жалоба Share Опубликовано 10 августа, 2011 Спасибо, что поделились кодом. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения