Jump to content
Sign in to follow this  
Chens

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

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'))
                );
            }

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

 

 

Share this post


Link to post
Share on other sites
1 час назад, Chens сказал:

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

 

 

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

Share this post


Link to post
Share on other sites

Может быть стоит копать шаблон, а не модель?

Share this post


Link to post
Share on other sites
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
 

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

 

 

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

Share this post


Link to post
Share on other sites

Это надо делать в шаблоне 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 %}

Share this post


Link to post
Share on other sites
          {% 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)

Edited by maksimist

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Большое спасибо всем за отклики, понял что не там рыл. В общем залез в /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>

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

Edited by Chens

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
13 часов назад, Blast сказал:

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


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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.