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

[РЕШЕНО] Опции :: Цвет :: Расстановка


Recommended Posts

Доброго времени суток форумчане! :-)

Столкнулся с проблемой. У товара есть опция "Цвет" и N-ое количество вариантов, при просмотре товара рис.1все цвета выстраиваются в один столбик. Отсюда вопрос: "Как сделать как на рис.2 или рис.3?"

Изображение

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


Тебе надо копнуть product.tpl и заменить цикл, в котором выводятся опции foreach{} на двойной вложенный for {{}}. Чтобы создать вместо одного элемента списка три, или же добавить разделители через N-товаров.

Что это и как, рассказывать подробнее - нету смысла.. если сильно надо - тебе в платные дополнения!

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



<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

<div id="content"><?php echo $content_top; ?>

<div class="breadcrumb">

<?php foreach ($breadcrumbs as $breadcrumb) { ?>

<?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>

<?php } ?>

</div>

<h1><?php echo $heading_title; ?></h1>

<div class="product-info">

<?php if ($thumb || $images) { ?>

<div class="left">

<?php if ($thumb) { ?>

<div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div>

<?php } ?>

<?php if ($images) { ?>

<div class="image-additional">

<?php foreach ($images as $image) { ?>

<a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>

<?php } ?>

</div>

<?php } ?>

</div>

<?php } ?>

<div class="right">

<div class="description">

<?php if ($manufacturer) { ?>

<span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br />

<?php } ?>

<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />

<span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br />

<span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div>

<?php if ($price) { ?>

<div class="price"><?php echo $text_price; ?>

<?php if (!$special) { ?>

<?php echo $price; ?>

<?php } else { ?>

<span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>

<?php } ?>

<br />

<?php if ($tax) { ?>

<span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />

<?php } ?>

<?php if ($points) { ?>

<span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span> <br />

<?php } ?>

<?php if ($discounts) { ?>

<br />

<div class="discount">

<?php foreach ($discounts as $discount) { ?>

<?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />

<?php } ?>

</div>

<?php } ?>

</div>

<?php } ?>

<?php if ($options) { ?>

<div class="options">

<h2><?php echo $text_option; ?></h2>

<br />

<?php foreach ($options as $option) { ?>

<?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 } ?>

<?php if ($option['type'] == 'radio') { ?>

<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 } ?>

<?php if ($option['type'] == 'checkbox') { ?>

<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="checkbox" 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 } ?>

<?php if ($option['type'] == 'image') { ?>

<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 />

<table class="option-image">

<?php foreach ($option['option_value'] as $option_value) { ?>

<tr>

<td style="width: 1px;"><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']; ?>" /></td>

<td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>

<td><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></td>

</tr>

<?php } ?>

</table>

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'text') { ?>

<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 />

<input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'textarea') { ?>

<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 />

<textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'file') { ?>

<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 />

<a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a>

<input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'date') { ?>

<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 />

<input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'datetime') { ?>

<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 />

<input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />

</div>

<br />

<?php } ?>

<?php if ($option['type'] == 'time') { ?>

<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 />

<input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />

</div>

<br />

<?php } ?>

<?php } ?>

</div>

<?php } ?>

<div class="cart">

<div><?php echo $text_qty; ?>

<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />

<input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />

 <a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div>

<div><span>   <?php echo $text_or; ?>   </span></div>

<div><a onclick="addToWishList('<?php echo $product_id; ?>');"><?php echo $button_wishlist; ?></a><br />

<a onclick="addToCompare('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div>

<?php if ($minimum > 1) { ?>

<div class="minimum"><?php echo $text_minimum; ?></div>

<?php } ?>

</div>

<?php if ($review_status) { ?>

<div class="review">

<div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" />  <a onclick="$('a[href='#tab-review']').trigger('click');"><?php echo $reviews; ?></a>  |  <a onclick="$('a[href='#tab-review']').trigger('click');"><?php echo $text_write; ?></a></div>

<div class="share"><!-- AddThis Button BEGIN -->

<div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>

<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>

<!-- AddThis Button END -->

</div>

</div>

<?php } ?>

</div>

</div>

<div id="tabs" class="htabs"><a href="#tab-description"><?php echo $tab_description; ?></a>

<?php if ($attribute_groups) { ?>

<a href="#tab-attribute"><?php echo $tab_attribute; ?></a>

<?php } ?>

<?php if ($review_status) { ?>

<a href="#tab-review"><?php echo $tab_review; ?></a>

<?php } ?>

<?php if ($products) { ?>

<a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>

<?php } ?>

</div>

<div id="tab-description" class="tab-content"><?php echo $description; ?></div>

<?php if ($attribute_groups) { ?>

<div id="tab-attribute" class="tab-content">

<table class="attribute">

<?php foreach ($attribute_groups as $attribute_group) { ?>

<thead>

<tr>

<td colspan="2"><?php echo $attribute_group['name']; ?></td>

</tr>

</thead>

<tbody>

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>

<tr>

<td><?php echo $attribute['name']; ?></td>

<td><?php echo $attribute['text']; ?></td>

</tr>

<?php } ?>

</tbody>

<?php } ?>

</table>

</div>

<?php } ?>

<?php if ($review_status) { ?>

<div id="tab-review" class="tab-content">

<div id="review"></div>

<h2 id="review-title"><?php echo $text_write; ?></h2>

<b><?php echo $entry_name; ?></b><br />

<input type="text" name="name" value="" />

<br />

<br />

<b><?php echo $entry_review; ?></b>

<textarea name="text" cols="40" rows="8" style="width: 98%;"></textarea>

<span style="font-size: 11px;"><?php echo $text_note; ?></span><br />

<br />

<b><?php echo $entry_rating; ?></b> <span><?php echo $entry_bad; ?></span> 

<input type="radio" name="rating" value="1" />

 

<input type="radio" name="rating" value="2" />

 

<input type="radio" name="rating" value="3" />

 

<input type="radio" name="rating" value="4" />

 

<input type="radio" name="rating" value="5" />

  <span><?php echo $entry_good; ?></span><br />

<br />

<b><?php echo $entry_captcha; ?></b><br />

<input type="text" name="captcha" value="" />

<br />

<img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br />

<br />

<div class="buttons">

<div class="right"><a id="button-review" class="button"><span><?php echo $button_continue; ?></span></a></div>

</div>

</div>

<?php } ?>

<?php if ($products) { ?>

<div id="tab-related" class="tab-content">

<div class="box-product">

<?php foreach ($products as $product) { ?>

<div>

<?php if ($product['thumb']) { ?>

<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>

<?php } ?>

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>

<?php if ($product['price']) { ?>

<div class="price">

<?php if (!$product['special']) { ?>

<?php echo $product['price']; ?>

<?php } else { ?>

<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>

<?php } ?>

</div>

<?php } ?>

<?php if ($product['rating']) { ?>

<div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>

<?php } ?>

<a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>

<?php } ?>

</div>

</div>

<?php } ?>

<?php if ($tags) { ?>

<div class="tags"><b><?php echo $text_tags; ?></b>

<?php foreach ($tags as $tag) { ?>

<a href="<?php echo $tag['href']; ?>"><?php echo $tag['tag']; ?></a>,

<?php } ?>

</div>

<?php } ?>

<?php echo $content_bottom; ?></div>

<script type="text/javascript"><!--

$('.fancybox').fancybox({cyclic: true});

//--></script>

<script type="text/javascript"><!--

$('#button-cart').bind('click', function() {

$.ajax({

url: 'index.php?route=checkout/cart/update',

type: 'post',

data: $('.product-info input[type='text'], .product-info input[type='hidden'], .product-info input[type='radio']:checked, .product-info input[type='checkbox']:checked, .product-info select, .product-info textarea'),

dataType: 'json',

success: function(json) {

$('.success, .warning, .attention, information, .error').remove();

if (json['error']) {

if (json['error']['warning']) {

$('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.warning').fadeIn('slow');

}

for (i in json['error']) {

$('#option-' + i).after('<span class="error">' + json['error'] + '</span>');

}

}

if (json['success']) {

$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.success').fadeIn('slow');

$('#cart_total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');

}

}

});

});

//--></script>

<?php if ($options) { ?>

<script type="text/javascript" src="catalog/view/javascript/jquery/ajaxupload.js"></script>

<?php foreach ($options as $option) { ?>

<?php if ($option['type'] == 'file') { ?>

<script type="text/javascript"><!--

new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', {

action: 'index.php?route=product/product/upload',

name: 'file',

autoSubmit: true,

responseType: 'json',

onSubmit: function(file, extension) {

$('#button-option-<?php echo $option['product_option_id']; ?>').after('<img src="catalog/view/theme/default/image/loading.gif" class="loading" style="padding-left: 5px;" />');

},

onComplete: function(file, json) {

$('.error').remove();

if (json.success) {

alert(json.success);

$('input[name='option[<?php echo $option['product_option_id']; ?>]']').attr('value', json.file);

}

if (json.error) {

$('#option-<?php echo $option['product_option_id']; ?>').after('<span class="error">' + json.error + '</span>');

}

$('.loading').remove();

}

});

//--></script>

<?php } ?>

<?php } ?>

<?php } ?>

<script type="text/javascript"><!--

$('#review .pagination a').live('click', function() {

$('#review').slideUp('slow');

$('#review').load(this.href);

$('#review').slideDown('slow');

return false;

});

$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

$('#button-review').bind('click', function() {

$.ajax({

type: 'POST',

url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>',

dataType: 'json',

data: 'name=' + encodeURIComponent($('input[name='name']').val()) + '&text=' + encodeURIComponent($('textarea[name='text']').val()) + '&rating=' + encodeURIComponent($('input[name='rating']:checked').val() ? $('input[name='rating']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name='captcha']').val()),

beforeSend: function() {

$('.success, .warning').remove();

$('#button-review').attr('disabled', true);

$('#review-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" /> <?php echo $text_wait; ?></div>');

},

complete: function() {

$('#button-review').attr('disabled', false);

$('.attention').remove();

},

success: function(data) {

if (data.error) {

$('#review-title').after('<div class="warning">' + data.error + '</div>');

}

if (data.success) {

$('#review-title').after('<div class="success">' + data.success + '</div>');

$('input[name='name']').val('');

$('textarea[name='text']').val('');

$('input[name='rating']:checked').attr('checked', '');

$('input[name='captcha']').val('');

}

}

});

});

//--></script>

<script type="text/javascript"><!--

$('#tabs a').tabs();

//--></script>

<script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script>

<script type="text/javascript"><!--

if ($.browser.msie && $.browser.version == 6) {

$('.date, .datetime, .time').bgIframe();

}

$('.date').datepicker({dateFormat: 'yy-mm-dd'});

$('.datetime').datetimepicker({

dateFormat: 'yy-mm-dd',

timeFormat: 'h:m'

});

$('.time').timepicker({timeFormat: 'h:m'});

//--></script>

<?php echo $footer; ?>

Поподробнее пожалуйста.

Змінено користувачем afwollis
покороче, пожалуйста...
Надіслати
Поділитися на інших сайтах


У вас достаточно нетипичная задача, которую не решишь изменением одной-двух строк кода, для корректной реализации, нужно править файл шаблона и стили CSS.

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

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


да нормальная задача.

просто меня, например, вовсе не радует "возможность" листать полотно шаблона страницы товара...

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

Нормальная кто ж спорит, но вариант, поменяй одну строку, или в настройках сними флажок - не лезет. Да и вопрос не массово востребованный.

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


Подскажите пожалуйста! Скачал и залил модуль - Option Images v 2.0, но вылетает ошибка:

Error: Unknown column 'sort_order' in 'order clause'
Error No: 1054
SELECT * FROM product_image WHERE product_id = '42' ORDER BY sort_order ASC

Как можно решить данную проблему? Версия - ocStore v1.0.1

P.S Ставил на opencart 1.5.x - все нормально работает.

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


  • 3 years later...

Доброго времени суток форумчане! icon_e_smile.gif

Столкнулся с проблемой. У товара есть опция "Цвет" и N-ое количество вариантов, при просмотре товара рис.1все цвета выстраиваются в один столбик. Отсюда вопрос: "Как сделать как на рис.2 или рис.3?"

a0abc878c316.jpg

просто убери теги <tr></tr>

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


  • 2 months later...

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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