[OCMOD] Статус Enabled/Disabled Бренды (Производители)

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

  1. Maksikus

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

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

    Ситуация:
    OpenCart 3.0.3.7
    - сделал OCMOD:
    - в админке вкл/выкл бреды (производители):
    - Catalog -> Manufacturers
    Правки в файлах:
    admin/controller/catalog/manufacturer.php
    admin/model/catalog/manufacturer.php
    admin/view/template/catalog/manufacturer_list.twig
    admin/language/en-gb/catalog/manufacturer.php
    admin/language/ru-ru/catalog/manufacturer.php

    В итоге:
    - работает всё прекрасно, вкл/выкл:
    upload_2023-5-27_8-49-11.png
    , но:
    - почему-то не работает на фронте:
    - выключенный бренд всё равно отображается
    - захожу сюда:

    upload_2023-5-27_8-51-15.png

    Подскажите, пожалуйста, где нужно поправить?
     

    Вложения:

    Последнее редактирование: 27 май 2023
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    \catalog\model\catalog\manufacturer.php

    Нет в запросе условия для статуса производителя
     
    Maksikus нравится это.
  3. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Ravilr , спасибо! Понял.
    С запросами у меня туго...
    Буду смотреть код, где есть такое условие, разбираться...
     
  4. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Не получается...
    Взял за пример как сделано здесь:
    \catalog\model\design\banner.php

    Добавил:
    m.status = '1'
    в:
    catalog/model/catalog/manufacturer.php

    Код:
      <file path="catalog/model/catalog/manufacturer.php">
        <operation>
          <search><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");]]></search>
          <add position="replace"><![CDATA[
            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m.status = '1' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
          ]]></add>
        </operation>
      </file>
     
  5. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Ravilr , подскажи, пожалуйста, как сделать условие?
     
  6. Tom

    Tom Специалист

    Сообщения:
    674
    Симпатии:
    204
    Приветствую всегда рвение изучить движок. Но вы уже какой топик завалили темами, которые до вас никого не заботили. Может все , что вы делаете с этими статусами, нет в самом опенкарт вовсе не из за забывчивости авторов, а элементарно из за их бесполезности. Или вы решили собрать какой то свой Луна Парк , с тем самым Блэк Джеком?
     
  7. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Tom , спасибо! Стараюсь.

    Я думаю, что других заботят другие темы.

    https://forum.opencart-russia.ru/th...-filtra-v-filtre-opencart-3.11346/#post-81340
    Т.е., элементарно бесполезная функция, но допиливать всё таки нужно ocmod'ом или модулем... :)

    Я учусь, разбираюсь и считаю:
    - что эта полезная функция, планирую потом:
    - сделать модуль и возможно сделать вкл/выкл товаров определённого производителя.
     
  8. Tom

    Tom Специалист

    Сообщения:
    674
    Симпатии:
    204
    Не совсем уловил мысль в ответе. Не стремлюсь доказать что либо . То что есть стремление и желание , это прекрасно. Делюсь лишь своим мнением. С опенкарт знаком уже более 10 лет и за все это время не встречался с такой необходимостью. А модификаторов столько понаделал и выложил , что иногда и не помню когда и зачем это делал. Часто люди приходят , мол спасибо за модификатор, не подошёл/не смог установить, подскажи.
    А я потом долго думаю зачем я вообще это делал ))))
     
  9. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Tom ))), да есть такое... уже наблюдаю это за собой... :)))
    P.S.: Я буду записывать, что для чего.
     
    Последнее редактирование: 28 май 2023
  10. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Для неравнодушных... :) к данной теме...
    Всё работает, за исключением:
    - отображаются товары отключённого производителя.
     

    Вложения:

  11. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Готово.
    Финал... Делал для себя...
    Выкладываю, может кому-то пригодится...

    Сценарий:
    - в панели администратора:
    - вкл/выкл производителя
    - если выкл производитель, то:
    - во фронте в списке производителя:
    - не отображается производитель, а также:
    - не отображаются товары, которые закреплены за выкл производителем, при этом:
    - статус товара не изменяется, если вкл, то вкл, если выкл, то выкл
    - не важно в какой категории находится товар, если:
    - производитель выкл, то везде товар не отображается.
    - кэш Theme и SASS в админке обновлять не надо.

    Обязательно, после установки, сделать:
    - зайти в Бренды (Производители):
    Catalog -> Manufacturers
    - и каждый Бренд сделать вкл/выкл, т.к.
    - при установке создаётся в БД столбик: status, где:
    - для каждого Бренда по умолчанию: '', а не 1 или 0.
    Если этого не сделать, то будут ошибки, включая 500.
     

    Вложения:

    Последнее редактирование: 2 июн 2023
    Ravilr нравится это.
  12. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Оставлю это здесь, чтобы не забыть:
    - не работает, в:
    - Рекомендуемых (Featured) на главной...
    - отображаются товары отключённого Бренда..
    Решение пока не нашёл...
     
  13. Tom

    Tom Специалист

    Сообщения:
    674
    Симпатии:
    204
    Решение (хотя как и писал в личке вовсе не понимаю кому нужен весь этот функционал) удалить товар руками, так как Рекомендуемые, один из модулей опенкарт который руками и заполняется.
     
    Maksikus нравится это.
  14. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Как пример, хотя бы нужен для этого:
    Нужно отключить поставщиков с которыми уже не работаем и удалить их товары с сайта.

    С данным ocmod:
    - если товары добавлены правильно:
    - с указанием Поставщика, то:
    - отключаем Поставщика, а значит:
    - товары сразу убираются с сайта.

    А затем:
    - ручками или через sql-запрос удаляем товары с бд, либо:
    - если возобновится работа с Поставщиком, то:
    - отключаем товары, либо:
    - делаем экспорт товаров, чтобы не "мешались", а потом импорт...
     
    Последнее редактирование: 12 июн 2023
    Tom нравится это.
  15. Tom

    Tom Специалист

    Сообщения:
    674
    Симпатии:
    204
    Хм. То есть вариант зайти в список товаров, отфильтровать по нужному бренду и выключить/удалить вам кажется более сложным , ну раз вы решили к этому дописать кучу функций вокруг -да около)))
     
    Maksikus нравится это.
  16. Maksikus

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

    Сообщения:
    84
    Симпатии:
    8
    Tom , я не против, если тебе удобно или другому, и кажется простым:
    - "ручками" отфильтровывать по бренду и выключить/удалить, то:
    - как говориться:
    - кто как хочет, то так и дрочит.. :)
     
    Последнее редактирование: 18 июн 2023