Переопределить работу сниппета и добавить свою логику

Привет. На сайте установлен miniShop2. Товары я получаю через сниппет msProduct. Но мне нужно добавить свою логику в сниппет. Например, я хочу добавить условие, что если товар добавлен в течение 10 последних дней, то появляется плашка «новинка». Напрямую добавить логику в сниппет вроде не могу, так как при обновлении все это перезапишется. Можно попробовать в самом чанке через fenom, но это как-то не кошерно, получается смешивание логики и представления. Может есть какой-то другой способ добавить свои условия в работу сниппета?

З.Ы. Была еще идея сделать сниппет обертку, который вызывает сниппет msProduct и потом с его выводом работать. Но сниппет msProduct не возвращает массив, а только HTML или строку в виде массива
Олег
04 декабря 2018, 16:12
modx.pro
534
0

Комментарии: 4

Михаил
04 декабря 2018, 16:39
0
Что то ты перемудрил. С помощью фенома выдели по дате публикации и все.
    Олег
    04 декабря 2018, 16:47
    0
    Ну а разве нет никакого другого пути по мимо фенома? Вдруг например придется реализовывать более сложную логику, чем простое условие. Или нужно будет несколько чанков использовать для сниппета, а значит придется копировать феном логику. Ну и опять же-таки смешивание логики с представлением
    Наумов Алексей
    04 декабря 2018, 16:58
    0
    Скопируй сниппет и делай то, что нужно.
    Стоит понимать, что готовые сниппеты — это общая реализация, пример, как можно работать с данными. И никто не обещал, что они умеют все и подойдет всем и для всего.
      Олег
      04 декабря 2018, 17:18
      0
      Видимо это единственный подходящий вариант. Жаль что тогда сниппеты не смогут никак обновляться(если вдруг появится для них обновление в минишопе) и в случае чего придется все ручками копировать. Хотя это скорее всего не критично. Просто было бы идеально если бы можно было как-то добавлять свою логику и не париться что будут какие-то изменения в будущем. Типа как наследование классов. Хотя может это совсем излишни

      А вот интересно, можно ли использовать в таком случае процессор минишопа product/getlist. Ведь он выдает как раз массив данных. Но меня смущает, что в сниппете msProducts не используется процессор и наверняка не просто же так
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4