Решено: [OCMOD] Удаление рамки (border), когда отключён баннер.

Тема в разделе "Модули и дополнения", создана пользователем Maksikus, 5 май 2023.

  1. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8
    Коллеги, приветствую!

    Opencart Version 3.0.3.7

    Ситуация следующая:
    Заходим в:
    - Design -> Banners
    Отключаем любой баннер в Banner List, к примеру:
    - Manufacturers (который на главной странице)
    Заходим в ИМ и видим:
    - баннер не показывается - отлично, но остаётся рамка (border):
    upload_2023-5-5_19-49-11.png

    Открываю данный twig отвечающий за вывод:
    catalog/view/theme/default/template/extension/module/carousel.twig
    - и вижу, что за отключение вывода баннера отвечает этот код:
    upload_2023-5-5_20-0-34.png

    - а всё остальное, как раз и есть рамка (border), который отображается.

    Как-то так...:
    - перелопатил инет - решения не нашёл, как сделать через ocmod
    - делал разные варианты - не получается...
    - понимаю, что надо добавить в код сверху/снизу что-то, а что не знаю...

    Пока сделал так:
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <modification>
        <name>[FrontEnd] Fix Главная Низ Баннер</name>
        <code>FE_FixHomeBottomBanner</code>
        <version>1.0.0</version>
        <author>MAEmelyanov</author>
        <link>https://t.me/maemelyanov</link>
    <!--
    Описание:
    - убирает рамку баннера в Главная Низ, когда баннер отключён
    -->
        <file path="catalog/view/theme/default/template/extension/module/carousel.twig">
            <operation>
                <search>
                    <![CDATA[<div class="carousel swiper-viewport">]]>
                </search>
                <add position="before">
                    <![CDATA[{% if banner in banners %}]]>
                </add>
            </operation>
            <operation>
                <search>
                    <![CDATA[</script>]]>
                </search>
                <add position="after">
                    <![CDATA[{% endif %}]]>
                </add>
            </operation>
        </file>
    
    </modification>
    Буду рад Вашей помощи!
     

    Вложения:

  2. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Первый момент нужно

    <![CDATA[{% if banners %}]]>

    Второй момент, закрывающий тег - тут просто проверить, что корректно добавили.

    Ну и ещё проще сделать это одним вариантом, когда в

    <div class="carousel swiper-viewport">

    просто добавить класс hidden (или иной скрывающий CSS)

    <div class="carousel swiper-viewport {% if banners is empty %} hidden {% endif %}">
     
    Maksikus нравится это.
  3. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8
    devimirochnik ,
    вариант с классами я отклонил, т.к. это не вариант:
    - потому что, вывод кода "блока вывода" будет отображаться, если посмотреть в панели разработчика...
    - тут надо целиком убирать:
    - блок div вместе с js

    сейчас заюзаю:
    Код:
    <![CDATA[{% if banners %}]]>
     
    Последнее редактирование: 5 май 2023
  4. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8
    заюзал... работает! , но есть нюансы... пишу, скриню...
     
  5. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Присылайте
     
  6. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8
    Сделал 3 OCMOD по коду:
    Код:
    <![CDATA[{% if banners %}]]>
    1-ый: для баннера, который в колонке левой (не на главной)
    2-ой: для баннера, на главной верх
    3-ий: для баннера, на главной низ
    Коды прикрепил...

    Наглядно, так:
    1.
    - Design -> Banners (всё Enabled)
    upload_2023-5-5_22-32-59.png
    2.
    - Extensions -> Modificatons (всё Enabled)
    upload_2023-5-5_22-33-40.png

    Условие 1:
    - выкл (Manufacturers):
    - Design -> Banners
    upload_2023-5-5_22-42-18.png
    В ИМ
    - всё отлично:
    upload_2023-5-5_22-44-21.png

    Условие 2:
    - выкл (Manufacturers):
    - выкл (Home Page Slideshow)
    - Design -> Banners:
    upload_2023-5-5_22-46-27.png

    То, в этом случае происходит это:
    - расстояние от футера до товаров увеличивается:
    upload_2023-5-5_22-47-57.png
     

    Вложения:

  7. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Вы бы сайт прислали.
     
  8. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Иначе вот эту часть сложно как-то оценить

     
  9. Tom

    Tom Специалист

    Сообщения:
    689
    Симпатии:
    207
    Не совсем понятно к чему это все, если и с баннерами и с любыми иными модулями в опенкарт работают в Макетах(они же Схемы).
    Зашли, убрали ненужный модуль и на этом все. Ни модификаторов, ни условий, ни бордеров.
     
    Maksikus нравится это.
  10. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8
    Tom ,
    согласен, если в макетах отключить модули баннеров, то:
    - макет решает вопрос с бордерами - они убираются, но:
    - вот эту проблему не решает:
    upload_2023-5-6_12-48-0.png


    С макетами:
    - не очень удобно работать - много лишних телодвижений... :),
    - когда есть раздел баннеры, где можно намного быстрее отключить/включить,
    - поэтому и нужен модификатор, чтобы допилить проблемные места, имхо
     
    Последнее редактирование: 6 май 2023
  11. SiteMix

    SiteMix Продвинутый пользователь

    Сообщения:
    1.021
    Симпатии:
    174
    Это не связано с баннером. В стилях задана минимальная высота контента:
    Код:
    #content {
      min-height: 600px;
    }
     
    Maksikus нравится это.
  12. Maksikus

    Maksikus Пользователь

    Сообщения:
    84
    Симпатии:
    8