Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Как вывести несколько определённых опций в одном контейнере?

Рекомендуемые сообщения

Опубликовано

Подскажите, как в один контейнер вывести несколько определённых опций (если они есть)?
Хочу получить такое:

<div class="options">
  <div class="option-1">
     Опция ID1
  </div>
  <div class="option-2">
     Опция ID3
  </div>
</div>

Пробовал так

<?php if ($options) { ?>
    <?php foreach ($options as $option) { ?>
    <?php if ($option['type'] == 'checkbox') { ?>
        <div class="options">
            <?php if ($option['option_id'] == '1' || $option['option_id'] == '2') { ?>
                <div class="option-<?php echo $option['option_id'] ?>">
                    Опция ID<?php echo $option['option_id'] ?>
                </div>
            <?php } ?>
        </div>
    <?php } ?>    
    <?php } ?>
<?php } ?>

Но получил результат

<div class="options">
  <div class="option-1">
    Опция-1
  </div>
</div>
<div class="options">
  <div class="option-2">
    Опция-2
  </div>
</div>

 

Опубликовано
В 06.05.2022 в 22:16, DenKuzmin сказал:

Подскажите, как в один контейнер вывести несколько определённых опций (если они есть)?

как по мне, так немного костыль и плюсом не совсем понятно какую цель преследует данное решение, но 

вывод в product.tpl (раскидываем по блокам в зависимости от ID опции)

2 блока 
 

<div id="block1"></div>

и

<div id="block2"></div>

 

            <?php if ($option['type'] == 'checkbox') { ?>
			
			<?php if ($option['option_id'] == '13' || $option['option_id'] == '15') { ?>
			
			<div id="block1">
            <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="checkbox">
                  <label>
                    <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" />
                    <?php if ($option_value['image']) { ?>
                    <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> 
                    <?php } ?>
                    <?php echo $option_value['name']; ?>
                    <?php if ($option_value['price']) { ?>
                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
			</div>
			
			<?php } ?>
            <?php } ?>
			
			
			
			  <?php if ($option['type'] == 'checkbox') { ?>
			
			<?php if ($option['option_id'] == '14') { ?>
			
			<div id="block2">
            <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="checkbox">
                  <label>
                    <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" />
                    <?php if ($option_value['image']) { ?>
                    <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> 
                    <?php } ?>
                    <?php echo $option_value['name']; ?>
                    <?php if ($option_value['price']) { ?>
                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
			</div>
			
			<?php } ?>
            <?php } ?>

опции с указанным ID разделены и отображаются в разных блоках

теперь переместим куда хотим к примеру опции в <div id="block2">....</div>

где требуется вставим блок с уникальным классом...примерно так


 

<div id="product">
            <div id="block2_clone"></div>
            </div>
        </div>


использую и 

<div id="product">,

так как только в таком случае опции будут работать и учитываться при покупке

ну и собственно скрипт для перемещения ( пишем над <?php echo $footer; ?> )

 

<script>
 $('#block2').appendTo( $('#block2_clone') );
</script>

Результат достигнут.

555.thumb.png.3072d744a11a36e110e2b08c4e87c9d2.png

 

 

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.