Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
module/checkout_payment_block.html-как сделать {if $module_data.selection}{/if}
Доброй ночи всем, вот опять на пути перелопачивания формы оформления заказов, столкнулся с проблемой. Хотелось бы сделать на странице checkout_payment.php отсутствие вот кое какого элемента в конструкции выводимой через шаблон module/checkout_payment_block.html. Ситуация такая, например я выбрал на этапе "доставка" определенный вид доставки, перехожу на "способы оплаты" и получаю вот такую вот картину: http://awesomescreenshot.com/033sq6l28 если же я для доставки выбрал бы др способ, то тогда картина поменялась бы: http://awesomescreenshot.com/065sq6p85. Так вот как же мне быть чтобы убрать этот злосчастный элемент где нету в данной ситуации "<input type="radio"..."?
Я попытался построить if комбинацию внутри шаблона module/checkout_payment_block.html, но она работать не желает, может ли кто нибудь помочь?
Вот что я хотел бы сделать: {foreach name=aussen item=module_data from=$module_content} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="moduleRow"> {if $module_data.selection}<td class="leftdist_field" width="6%">{$module_data.selection}</td>{/if} <td class="moduleRowHover" width="75%"> <b>{$module_data.module}</b></td> </tr> </table> <br/> {/foreach}
то есть если выбор способов оплаты отсутствует, то данные элементы оформления инпута тоже отсутствуют.
Заранее спасибо.
Сейчас, если способ оплаты доступен один, радиокнопка просто не показывается. А Вы как хотите, что выводить в этом случае? Название метода оплаты целиком убрать, чтоб страница методов оплаты совсем ничего не показывала?
korshunov, видите там идет под радио кнопкой фон: <td class="leftdist_field" width="6%">{$module_data.selection}</td> так вот хотелось бы чтобы если радио кнопки нету, то чтобы этот код который я выделил жирным, просто не показывался. Вот собственно какова идея.
Пробуйте
{if $module_content|@count<2} <td class="leftdist_field" width="6%">$module_data.selection}</td>{/if}
korshunov, неа, не помогло. Там вот что происходит: <td width="6%" class="leftdist_field"><input type="hidden" value="nalojplatej" name="payment"/></td> то есть просто hidden выводиться.
Начал копаться в checkout_payment.php
$radio_buttons = 0; for ($i = 0, $n = sizeof($selection); $i < $n; $i++) {
$selection['radio_buttons'] = $radio_buttons;
if (($selection['id'] == $payment) || ($n == 1)) { $selection['checked'] = 1; }
if (sizeof($selection) > 1) { $selection['selection'] = os_draw_radio_field('payment', $selection['id'], ($selection['id'] == $_SESSION['payment'])); } else { $selection['selection'] = os_draw_hidden_field('payment', $selection['id']); } $selection['id'] = $selection['id'];
if (isset ($selection['error'])) {
} else {
$radio_buttons++; } }
я просто поставил вместо $selection['selection'] = os_draw_hidden_field('payment', $selection['id']); вот так $selection['selection'] = os_draw_radio_field('payment', $selection['id']);
получилось в итоге вот так: http://awesomescreenshot.com/08asr21e1
вопрос немного поменялся, а можно ли сделать так чтобы сразу выбранным стоял тот единственный способ оплаты? то есть чтобы radio был уже актив: http://awesomescreenshot.com/060sr3q96 ?
просто в checkout_shipping.php там при выборе способа доставки сразу уже стоит выбранным один пункт: http://awesomescreenshot.com/06asr3s27
Тогда так было бы более чем логично, так как и не пришлось бы прятать этот радио, и не пришлось бы юзеру делать лишних телодвижений.
Вот такая вот идея, я просто в php не силен, поэтому никак не могу там выставить этот актив для радио инпута.
Пробуйте
$selection['selection'] = os_draw_radio_field('payment', $selection['id'], true);
korshunov, спасибо огромное!! И вправду помогло, теперь сразу стоит отмеченным. :)
Источник
|