марта
9

Virtuemart: делаем свойства товаров с помощью radio

Собственно говоря, задача изложена в заголовке. Будем делать.

Внимание! Это решение для последней на сегодняшний день версии виртумарта – 1.1.4!

Файл, который будем править: components/com_/themes/default/templates/product_details/includes/addtocart_advanced_attribute.tpl.

Именно в нем осуществляется вывод свойств товара.

Можете смело удалять из него все, и вставлять следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

foreach($attributes as $attribute) {      
    ?>
    <div class="vmAttribChildDetail" style="float:left;margin:3px;">
    <?php
    foreach ( $attribute['options_list'] as $options_item ) { ?>
            <div>
            <?php if( isset( $options_item['display_price']) ) : ?>
            <input type="radio" style="margin-top: 15px;" id="<?php echo $attribute['titlevar'] ?/>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" value="<?php echo $options_item['base_var'] ?>"><?php echo $options_item['base_value'] ?> (<?php echo $options_item['sign'].$options_item['display_price'] ?>)<br />
            <?php else : ?>
            <input type="radio" style="margin-top: 15px;" id="<?php echo $attribute['titlevar'] ?/>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" value="<?php echo $options_item['base_var'] ?>"><?php echo $options_item['base_value'] ?><br />
            <?php endif; ?>
            </div>
    < ? } ?>
   
    </div>
    <br style="clear:both;" />
    < ?        
}
?>

По мелочам уже можете “подпилить” самостоятельно. Сама идея указана и она работает! Проверено!

11 коммент. к записи “Virtuemart: делаем свойства товаров с помощью radio”

  • Игорь 16 марта 2010 - 23:00

    попробовал – не работает :(

    после замены файла страница с товаром перестала открываться. пришлось вернуть старый вариант. В чем может быть проблема?

  • K_E_V_in 17 марта 2010 - 12:47

    В том, что в коде на странице вылезли пробелы перед закрытием php-кода. Баг исправил

  • Андрей 6 апреля 2010 - 9:54

    Всё равно не работет, вставляю четко указанный код – и при обновлении – пустой экран(((
    Версия 1.1.4.

  • K_E_V_in 6 апреля 2010 - 11:26

    Проверьте на открытие/закрытие php-кода. У меня редактор вставляет лишние пробелы. Без хотя бы начальных знаний php в исходный код лучше не лезть!
    Пишите – помогу.

  • donemilio 12 апреля 2010 - 8:56

    ?/>_field – тут надо слеш убрать – парсер лох, очевидно

  • donemilio 12 апреля 2010 - 9:02

    В общем, все работает. Только поправить надо в нескольких местах. Спасибо автору!

    <input type="radio" style="margin-top: 15px;" id="_field” name=”" value=”"> ()

    <input type="radio" style="margin-top: 15px;" id="_field” name=”" value=”">

  • K_E_V_in 12 апреля 2010 - 11:07

    Да, есть такой момент

  • Александр 16 декабря 2010 - 15:09

    Приветствую! Работает но не дорабатывает =)
    Почему то радио работает как чекбокс. Однако его отличает от чекбокса невозможность снять отметку.

    Либо я приведенный код неверно поправил. Либо так и есть.

    Залил на яндекс. http://narod.ru/disk/1524753001/radiobutton.txt.zip.html
    Поправьте пожалуйста и залейте куда-нибудь. А то Геши лишний код вставляет.

    Благодарю!

  • kryon 1 ноября 2011 - 11:46

    K_E_V_in, как сделать автоматическую активацию radio-кнопки на свойстве товара при входе на карточку товара. Иначе, если покупатель не выберет свойство, выводится сообщение, что, несомненно, отпугивает.

  • Саша 22 февраля 2012 - 21:27

    kryon есть такое свойство у input называеться чекед. ВОТ ЭТО ВСТАВЬ => checked=”checked” и будет он автоматом ставить чек

  • kryon 26 марта 2012 - 12:55

    Саша, знаем мы про такое свойство checked=”checked”, но в VM автоматом чек оно так просто не будет ставить. Получится, что заходишь в карточку товара, а там свойство так и не выбрано. Проблему давно решил с чужой помощью правкой кода.

Прокомментировать

Рубрики

Облако меток

На волнах твиттера

В прямом эфире