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

Удаление thumbs если у товара только одна картинка


Chens

Recommended Posts

В общем делается магазин текстильной продукции. Есть товары с несколькими фото (например https://d1.drobot.net.ua/mahroviye_polotenca/kakoyeto-polotence ) , а есть когда только одно фото (и их реально большинство будет, вот как пример - https://d1.drobot.net.ua/mahroviye_polotenca?product_id=52 ).

Под картинкой товара выводятся "тумбы" для переключения между разными фото одного товара.

Задача: Если у товара только одно фото - не создавать (или пускай создает но не отображать) "тумбы" вообще, ибо выглядит ппц лишним.

 

2-й день сижу ломаю голову...находил участок кода в catalog/controller/product/product.php
 

$this->load->model('tool/image');

            if ($product_info['image']) {
                $data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height'));
            } else {
                $data['popup'] = '';
            }

            if ($product_info['image']) {
                $data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_thumb_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_thumb_height'));
            } else {
                $data['thumb'] = '';
            }
 
            $data['images'] = array();

            $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);

            foreach ($results as $result) {
                $data['images'][] = array(
                    'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')),
                    'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_height'))
                );
            }

...но в виду нехватки знаний в РНР не могу внести нужные правки =/

 

 

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


1 час назад, Chens сказал:

...но в виду нехватки знаний в РНР не могу внести нужные правки =/

 

 

не там смотрите, ищите в шаблоне. И в дефолтном, насколько я помню, это условие уже есть.

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

1 час назад, Chens сказал:

В общем делается магазин текстильной продукции. Есть товары с несколькими фото (например https://d1.drobot.net.ua/mahroviye_polotenca/kakoyeto-polotence ) , а есть когда только одно фото (и их реально большинство будет, вот как пример - https://d1.drobot.net.ua/mahroviye_polotenca?product_id=52 ).

Под картинкой товара выводятся "тумбы" для переключения между разными фото одного товара.

Задача: Если у товара только одно фото - не создавать (или пускай создает но не отображать) "тумбы" вообще, ибо выглядит ппц лишним.

 

2-й день сижу ломаю голову...находил участок кода в catalog/controller/product/product.php
 

...но в виду нехватки знаний в РНР не могу внести нужные правки =/

 

 

тут скорее всего дело в шаблоне. Основное изображение всегда попадает в строку превьюшек. Но так как он у вас нестандартный либо кидайте код, либо обратитесь к разработчику

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

Это надо делать в шаблоне product.tpl (или twig).

Но, насколько я помню, стандартный шаблон опенкарта главную картинку в "тумбы" не выводит, а выводит только дополнительные.

Если же у вас какой-то кастомный шаблон, то ищите в нём код вывода картинок типа:

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

и загоняйте его в условие <?php if ($images) ?> вывод картинок {?php } ?>

Если опенкарт 3.0, то аналогично, но на языке шаблонизатора типа {% if images is not empty %} вывод картинок {% endif %}

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


          {% if thumb or images %}
          <ul class="thumbnails">
            {% if thumb %}
            <li><a class="thumbnail" href="{{ popup }}" title="{{ heading_title }}"><img src="{{ thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li>
            {% endif %}
            {% if images %}
            {% for image in images %}
            <li class="image-additional"><a class="thumbnail" href="{{ image.popup }}" title="{{ heading_title }}"> <img src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li>
            {% endfor %}
            {% endif %}
          </ul>
          {% endif %}

 

Это дефолт 3-ки 

 

          <?php if ($thumb || $images) { ?>
          <ul class="thumbnails">
            <?php if ($thumb) { ?>
            <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>
            <?php if ($images) { ?>
            <?php foreach ($images as $image) { ?>
            <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>
            <?php } ?>
          </ul>
          <?php } ?>

Это дефолт 2.3

 

Исходя из этого можно поправить свой шаблон /catalog/view/theme/ваша_тема/template/product/product.twig(tpl)

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

Вообще, если у ТС главная картинка выводится два раза (как основной рисунок и как привьюшка), то надо просто в шаблоне убрать вывод основной картинки как привьюшки.

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


Большое спасибо всем за отклики, понял что не там рыл. В общем залез в /catalog/view/theme/моя_тема/template/product/product.twig  и там был такой вот кусочек кода:
 

<div class="content-product-left  {{ class_left_gallery }}" >
                {% if images %}
                    <div class="so-loadeding" ></div>
                    {#==== Gallery -  Thumbnails ==== #}
                    {% if productGallery=='left' %}
                         {% include theme_directory~'/template/product/gallery/gallery-left.twig' %}

                    {% elseif productGallery=='bottom' %}
                        {% include theme_directory~'/template/product/gallery/gallery-bottom.twig' %}

                    {% elseif productGallery=='grid' %}
                        {% include theme_directory~'/template/product/gallery/gallery-grid.twig' %}

                    {% elseif productGallery=='list' %}
                        {% include theme_directory~'/template/product/gallery/gallery-list.twig' %}

                    {% elseif productGallery=='slider' %}
                        {% include theme_directory~'/template/product/gallery/gallery-slider.twig' %}
                    {% endif %}
                {% endif %}
            </div>

То есть по сути, в зависимости от того с какой стороны и как я выбираю вывод "тумб" - отрабатывается тот или иной шаблон. У меня вариант снизу, потому я полез в /template/product/gallery/gallery-bottom.twig , а тут все с одной стороны вроде как понятно, а с другой - как именно правку нужную внести - не очевидно для меня

<div class="large-image  {{class_honizol}}">
    <img itemprop="image" class="product-image-zoom lazyload" data-sizes="auto" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{popup}}" data-zoom-image="{{popup}}" title="{{ heading_title }}" alt="{{ heading_title }}" />
</div>

<div id="thumb-slider" class="full_slider  contentslider" data-rtl="{{direction}}" data-autoplay="no"  data-pagination="no" data-delay="4" data-speed="0.6" data-margin="10"  data-items_column0="5" data-items_column1="3" data-items_column2="5" data-items_column3="3" data-items_column4="3" data-arrows="yes" data-lazyload="yes" data-loop="no" data-hoverpause="yes">
    {% for key,image in images %}
        <div class="image-additional">
        <a data-index="{{key}}" class="img thumbnail " data-image="{{image.popup}}" title="{{ heading_title }}">
            <img class="lazyload" data-sizes="auto" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" />
        </a>
        </div>
    {% endfor %}
    </ul>
</div>

Помогите плз, ибо все мои вариации танцов с бубном приводят или к отсутствию каких-либо изменений - или к пропаже не только "тумбы" но и основной картинки о_О

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


13 часов назад, Blast сказал:

@Chens такое примерно должно сработать


{% if images|length > 1 %}
	<div id="thumb-slider"...>
{% endif %}

 

Урааа, огромнейшее спасибо, зашло как влитое =)

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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