Rustem

[РЕШЕНО] Как сделать разные стили цены для видов list и grid в category.tpl

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

Rustem    31

Здравствуйте. Не могу понять принцип работы скрипта, который выводит товары в виды grid и list. В php вообще ничего не смыслю.

Итак, есть вид grid, в котором меня все устраивает:

Изображение

Но если переключиться на list, то товар с акцией получается перекошенным:

Изображение

Необходимо:

1. Сделать чтобы после старой цены был перенос на новую строку (br) новой цены. Когда пытаюсь менять div price в category.tpl, отображение цены меняется и в виде grid.

2. Поменять стиль для картинки с акцией так, чтобы она была на изображении товара, по аналогии с видом grid. (Но тут я думаю принцип тот же, что и в пункте 1, мне главное понять логику.)

3. Поменять стиль для рейтинга, чтобы он залезал на картинку по аналогии с видом grid. (Если пойму логику - сам сделаю)

Помогите пожалуйста разобраться, файл category.tpl прикрепляю.

category.zip

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


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

Здравствуйте. Не могу понять принцип работы скрипта, который выводит товары в виды grid и list. В php вообще ничего не смыслю.

Итак, есть вид grid, в котором меня все устраивает:

Изображение

Но если переключиться на list, то товар с акцией получается перекошенным:

Изображение

Необходимо:

1. Сделать чтобы после старой цены был перенос на новую строку (br) новой цены. Когда пытаюсь менять div price в category.tpl, отображение цены меняется и в виде grid.

2. Поменять стиль для картинки с акцией так, чтобы она была на изображении товара, по аналогии с видом grid. (Но тут я думаю принцип тот же, что и в пункте 1, мне главное понять логику.)

3. Поменять стиль для рейтинга, чтобы он залезал на картинку по аналогии с видом grid. (Если пойму логику - сам сделаю)

Помогите пожалуйста разобраться, файл category.tpl прикрепляю.

Тут нужно верстку смотреть, ссылку на сайт!

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


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

Вроде list и grid в таблице стилей.

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


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

Вроде list и grid в таблице стилей.

Спасибо, некоторые элементы подвинул, осталась проблема с ценой:

Изображение

В category.tpl такая картина:

Наверху идет код:

	  <?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 } ?>
		<?php if ($product['tax']) { ?>
		<br />
		<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
		<?php } ?>
	  </div>
	  <?php } ?>

Ниже скрипт, который выводит div price в список:

if (price != null) {
				html += '<div class="price" style="margin-bottom:10px;">' + price + '</div>';
			}

Если менять верхний код и добавлять вместо nbsp тег br вот в этом месте:

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

То происходит перенос второй цены на новую строчку и в виде grid, а мне нужно чтобы в гриде цены оставались в одной строке, а в списке они переносились.

Вопрос: Как это реализовать? В php не шарю и все мои чаяния оказались бесполезными, надеюсь на вашу помощь, друзья.

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


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

Здесь не php, а javascript :) Тут надо писать функцию, которая бы вставляла тег переноса или правила классы.

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


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

Как?)

А ссылка есть на сайт?

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


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

Выше ссылка есть http://maoshop.ru

Что бы перенести цену на вторую строку нужно зайти в файл

catalogviewthemedefaulttemplateproductcategory.tpl

найти строки и вставить <br> выделил жирным где.

<div class="price">

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

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

<?php } else { ?>

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

а если поменять местами <span class="price-new"><?php echo $product['special']; ?></span><br><span class="price-old"><?php echo $product['price']; ?></span> то сразу будет новая цена, а ниже старая перечеркнутая

Я бы еще кнопку купить с ценой куда-то подвинул, может даже влево, а то справа ее не замечаешь. Люди просмтривают по такому принципу слева направо сверху вниз.

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


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

Так в том то и дело, что когда я так делаю, вторая цена переносится на новую строчку в обоих видах.

А мне нужно, чтобы в виде Grid цены были в одну строку, а в виде List в две.

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


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

Все оказалось чертовски просто.

Добавляем в css:

.product-grid .price br{
display:none;
}
И все! :)

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


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

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

тс как ты организовал на сайте старую цену?

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От ark745
      Здравствуйте уважаемые форумчане!
      Прошу вашей помощи.
      Делаю себе интернет магазин на opencart 2.3.0.2. Возникла необходимость переместить описание категорий под товары, чтобы пользователь сначала видел товары. На просторах интернета нашел советы как это сделать, нужно поковыряться в коде файла category.tpl. В общем что-то неполучалось, переносил блоки и правил код, все бестолку. И тут увидел на одном из форумов по опенкарту, что нужно подчистить логи и модификаторы, тогда изменения вступят в силу. Что я успешно сделал. И у меня обвалился сайт, выдает 500 ошибку.
      Залез в логи ошибок хостинга, увидел, что есть синтаксические ошибки в header.tpl и category.tpl. Разобрался с header.tpl сайт заработал, но меню и категории не работают. Ошибка 500.
      Залез в лог ошибка:
      PHP Parse error: syntax error, unexpected end of file in remgidromaster.com.ua/public_html/catalog/view/theme/fastor/template/product/category.tpl on line 262\n', referer: http://remgidromaster.com.ua/ Уже второй день мучаю файл category.tpl не могу понять, что за ошибка. В PHP не разбираюсь. Помогите разобраться что не так.
      Пробывал в различных валидаторах, вставлять по блокам, ошибка появляется, когда начиная с конца кода доходишь до этого блока.
          <!-- Product -->
            <div>
                <div class="row">
                    <div class="image col-sm-3">
                        <?php if($product['special'] && $theme_options->get( 'display_text_sale' ) != '0') { ?>
                            <?php $text_sale = 'Sale';
                            if($theme_options->get( 'sale_text', $config->get( 'config_language_id' ) ) != '') {
                                $text_sale = $theme_options->get( 'sale_text', $config->get( 'config_language_id' ) );
                            } ?>
                            <?php if($theme_options->get( 'type_sale' ) == '1') { ?>
                            <?php $product_detail = $theme_options->getDataProduct( $product['product_id'] );
                            $roznica_ceny = $product_detail['price']-$product_detail['special'];
                            $procent = ($roznica_ceny*100)/$product_detail['price']; ?>
                            <div class="sale">-<?php echo round($procent); ?>%</div>
                            <?php } else { ?>
                            <div class="sale"><?php echo $text_sale; ?></div>
                            <?php } ?>
                        <?php if($theme_options->get( 'display_text_new' ) != '0' && $theme_options->isLatestProduct( $product['product_id'] )) { ?>                     
       
      category.tpl
    • От Orlanov
      Здравствуйте, помогите разобраться с куском javascript кода в файле ../../template/product/category.tpl
      Предназначен он для замены стилей (насколько я понял) когда выбираем вид отображения(сетка/витрина) каталога с товарами.
      Вот сам код:
      function display(view) { if (view == 'list') { $('.product-grid').attr('class', 'product-list'); $('.product-list > div').each(function(index, element) { html = '<div class="right">'; html += ' <div class="cart">' + $(element).find('.cart').html() + '</div>'; html += ' <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += ' <div class="compare">' + $(element).find('.compare').html() + '</div>'; html += '</div>'; html += '<div class="left">'; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } html += ' <div class="name">' + $(element).find('.name').html() + '</div>'; html += ' <div class="description">' + $(element).find('.description').html() + '</div>'; var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '</div>'; $(element).html(html); }); $('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>'); $.cookie('display', 'list'); } else { $('.product-list').attr('class', 'product-grid'); $('.product-grid > div').each(function(index, element) { html = ''; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += '<div class="name">' + $(element).find('.name').html() + '</div>'; html += '<div class="description">' + $(element).find('.description').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '<div class="cart">' + $(element).find('.cart').html() + '</div>'; html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += '<div class="compare">' + $(element).find('.compare').html() + '</div>'; $(element).html(html); }); $('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>'); $.cookie('display', 'grid'); } } view = $.cookie('display'); if (view) { display(view); } else { display('list'); } //--></script> Если возможно прокаментируйте в коде основные моменты.
  • Последние посетители   0 пользователей онлайн

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