Макет блока с товаром в категории

Доброго времени суток, ищу возможность в категориях товара (так-же желательно в результатах поиска) изменить шаблон блока товара - добавить на него SCU рядом с ценой и еще всякое по мелочи.

Не уверен, можно ли изменить его через модуль “мои изменения”, потому что выбирать вариант шаблона для товара вроде как негде. В любом случае можно и стандартный шаблон поправить, если придётся. Не могу найти, где этот блок находится, ткните меня в нужное направление, если не трудно.

Используем тему Unitheme
%D0%91%D0%BB%D0%BE%D0%BA%20%D1%81%20%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%BC

В настройках UniTheme, вроде, есть возможность вывести код товара. По-крайней мере в старой версии так точно было.

На вкладке “Списки товаров” есть аналогичная настройка
image

Да, спасибо нашел, но отредактировать шаблон тоже хотелось бы - немножко не так выглядит как ожидаем

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

Есть такая фича: Дизайн->Шаблоны. Там справа сверху есть шестеренка, в которой прячется пункт Перейти к витрине в Режиме дизайна. После этого около блоков появятся квадраты, при наведении на которые можно увидеть, что за элемент шаблона используется в нужном блоке. Ну и соответственно сможете его найти в папке и поправить(я бы не использовал встроенный редактор - чревато).

1 лайк

Благодарю за направление)

Кстати, хочу заранее предупредить. Есть такая штука - модуль Мои изменения. И есть в движке функция, которая называется override. Так вот, по-хорошему, стоит пользоваться ими - просто копировать в соответствующую папку модуля override нужного шаблона и в нем уже производить изменения. В документации и видеороликах от разработчиков об этом информация есть. Так если что будет намного проще потом после изменений скорректировать нужное. Ну, можно и править в самом шаблоне всё, на живую… я вот так делал раньше. Теперь не знаю, как с результатами такой самодеятельности дальше жить - сложно найти модуль, шаблон или блок на сайте, куда я хотя бы чуть-чуть не влез когда-то. Проще новый сайт теперь собрать, чем обновиться. В общем, лучше не быть как я, а делать правильно, используя предусмотренные в движке механизмы.

1 лайк

Про override знаю, просто не удавалось определить что конкретно за блок нужно оверрайдить)

Есть сторонние инструменты для поиска различий в файлах. Возьмите чистое ядро и сравните со своим магазином. Разницу вынесите в override.

Можно делать не всё сразу, а постепенно избавляться от правок ядра. И вскоре у вас получится обновляемый магазин :slight_smile:

Увы, по всей видимости, не получится. Есть куча правок ядра связанных с его низкой производительностью в некоторых местах. И сейчас большинство таких мест в текущей версии у меня локально исправлено. При этом несмотря на то что эти правки известны техподдержке, почему-то я смотрел в новых версиях - исправления не внесены и я не знаю про другие подводные камни, которые могли появиться в других местах. Я был бы очень рад, если бы была проведена работа в этом направлении. Ведь некоторые “нерешаемые” вопросы в какой-то момент становятся таки решаемыми(молодцы, например очень порадовали изменения по корзинам формируемым с разных устройств). Я не устаю говорить - CS-Cart в целом - прекрасная система, но почему-то в ней есть довольно небольшое число странных решений не меняющихся годами.

Оверрайд контроллера?

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

С шаблонами всё просто, а вот с контроллерами - не очень. Например, я хочу исправить/оптимизировать пару запросов при формировании списка товаров (products.manage). В итоге, что я должен сделать сейчас?

  1. написать products.pre.php в котором (не помню как делал, кажется через Registry::set(‘runtime.mode’, ‘nomanage’) ) изменить значение mode.
  2. написать products.post.php в котором для mode = nomanage - сначала вернуть значение manage обратно, потом вставить исправленный код - только таким образом я могу обойти выполнение кода стандартного контроллера и выполнить свой код.

Как вариант, изменения в ядро можно было бы сделать в виде git патчей. И при выходе новой версии CS-Cart просто применять их. Получился бы полуавтоматический способ обновления.

А хуками внутри fn_get_products никак не получается?