Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Изменить тип отображения "Выбор размера"


Recommended Posts

Здравствуйте мои любимые форумщики!) Сколько раз помогали, сколько проблем помогли решить! И даже блин не знаю как вам в репутацию плюс поставить! По всей видимости техническое ограничение!
И вот я снова здесь со своим очередным даунским вопросом, а содержания он следующего.

 

Настал в моей карьере момент X когда мне понадобилось реализовать такую штуковину, которая бы позволяла выбирать размер товара не в выпадающем списке, а непосредственно тыкнув на сам размер. На скринах всё довольно ясно обрисовано. Они в спойлерах ниже.

Прошу не крыть меня детородными органами. Гугл юзаю непринуждённо и достаточно умело (на любительском уровне), технологией поиска по данному форуму овладел успешно. И только после несколько-часовых скитаний по просторам РуНет'а обратился за помощью к Вам, дорогие Друзья!)

 

Вот дефолтный вариант выбора размера, сей вариант является для меня НЕ крутым

aDO-ywE7KZo.jpg

 

Вот это тот самый заветный, архи-крутейший, проапгрейденный вариант, которого я хочу достигнуть

l_PqMcDZ0mk.jpg

Надіслати
Поділитися на інших сайтах


делай опции не select, а radio.

и верстай, как хочется.

    <?php if ($option['type'] == 'select') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <select name="option[<?php echo $option['product_option_id']; ?>]">
            <option value=""><?php echo $text_select; ?></option>
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php } ?>
            </option>
            <?php } ?>
          </select>
        </div>
        <br />
        <?php } ?>

Вот такие вот пироги "надыбал" в документе product.tpl

Я предполагаю, что именно эта часть имеет отношение к тому, каким образом выводится выбор размера. Честно говоря, даже не знаю, правильно ли я разграничил всё. Когда я поменял "select" в этой части на "radio", перестал отображаться выбор размера. Вот... Ну сейчас сижу копаюсь в этих кодах, не знаю к чему это приведёт. Надеюсь, что тотальный успех не за горами. Если кому есть что сказать и помочь, буду счастлив. Ведь я так беспомощен в этих кодах...

А что касается Тома, то я написал ему, конечно. Но нет никакой уверенности в том, что он поможет. Я полагаю, что этому человеку есть чем заняться и "без сопливых". А вообще, было бы очень неплохо, если бы по данной теме появился туториал какой-либо. Уверен, что я не единственный бот, кто хочет сделать это, но нет инструкции. По крайней мере найти её не удаётся.

Надіслати
Поділитися на інших сайтах


Ну что, ребята. Путём нечеловечьих усилий мне удалось достичь следующего результата.

gdjGWuGsJp4.jpg



И вот какой код получился в итоге. Это всё тот же, что и вверху, но уже изменённый. И, что примечательно, когда меняю 'select' в самой верхней строчке на radio, всё слетает и ничего не отображается в выборе размера.

       <?php if ($option['type'] == 'select') { ?>
<div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['option_value'] as $option_value) { ?>
          <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
          <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php } ?>
          </label>
          <br />
          <?php } ?>
        </div>
        <br />
        <?php } ?>



Ну да ладно. Теперь следующий пункт программы: изменить внешний вид. И сейчас я вынужден отлучится от компьютера, но приду и начну это доделывать. А пока буду рад, если в код кто-нибудь внесёт поправки или подскажет, как действовать дальше. Хочу чтобы на сайте у меня было всё ровно и красиво. И код был красивый и чёткий. Перфектный короче такой.

Надіслати
Поділитися на інших сайтах


За реализацию 5, за внимательность - 2!  :-D

 

Нужно было в карточке товаров тип опций изменить с select на radio - дальше в коде идет обработка именно radio.

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

 

Вообще - старайтесь не менять код движка/шаблона без необходимости - избавит от головных болей в дальнейшем.

 

Возможно в вашем случае достаточно просто создать тип опций "изображение" (Каталог-Опции-Добавить-Тип опции: изображение)

и потом назначать товарам этот тип. А в качестве изображений опций наделать картинок с размерами.

Змінено користувачем AlexDW
Надіслати
Поділитися на інших сайтах

неважно, сколько товаров. в товарах задаются значения опциям, а менять надо ТИП - в настройках самих опций.

OlegVladislavovich, верни, как было. "- дальше в коде идет обработка именно radio" - там и разукрашивай.

Надіслати
Поділитися на інших сайтах

Достиг следующего. На скрине обозначил проблемную зону, помогите разобраться пожалуйста с этим.

 

cKcuEZWR4xA.jpg

 

CSS код проблемного места:

.label_size {
    margin: right;
    vertical-align: top;
    display: inline-block;
    height: 45px;
    width: 45px;
    cursor: pointer;
    background: #FFF;
    font-size: 13px;
    padding: 5px 10px; /* Поля вокруг текста */
    color: #232727;
    text-align: center;
    border: solid 1px #939392;
    margin-bottom: 3px;
    text-transform: uppercase;
}

P.S. Реализовал через задницу, реализовал как умею. То, что посоветовал afwollis, увидел уже после того, как доделал. Вот... Хочу написать такой своего рода уникальный туториал, который поможет людям реализовать такое же дерьмо, но, честно говоря, не знаю... У меня всё так дебильно написано... Нужно дорабатывать совместно с кем-то и выкладывать. Потому что подобное реализовать не так сложно, но вопрос актуальный не для одного меня, я полагаю.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.