chex01

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

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

chex01    0

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

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

Изображение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yoda    435

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chex01    0


<?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
покороче, пожалуйста...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yoda    435

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yoda    435

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chex01    0

Нашёл модуль Vovana: Option Images v 2.0 , установил, но картинки всё ровно в один столбик(((

Предполагаю это из-за того что у меня осСтор, а не OpenCart.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
aveebeat    9

Подскажите пожалуйста! Скачал и залил модуль - 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 - все нормально работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

добавьте поле

column 'sort_order'
в таблицу

product_image

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
eeeMan    0

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

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

a0abc878c316.jpg

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

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