Как выводить почти одинаковые блоки контента на разных страницах?

Приветствую.
Сразу пример.

На сайте есть продукты
  • продукт 1
  • продукт 2
  • продукт 3
  • продукт 4
  • продукт 5
  • продукт 6
  • продукт n
Есть произовдители:
  • произовдитель 1
  • произовдитель 2
  • произовдитель n
У производителя должно быть каким-то способом создано описание и добавлено в продукт, но как это лучше сделать — вопрос для меня.

Можно сделать чанки с описанием для производителей и добавлять имена чанков в дополнительное поле ресурса, но мне этот вариант не кажется оптимальным, так как придется искть чанк и вписывать его имя. Возможно, можно было бы сделать отдельную папку с ресурсами, в которых было бы описание произовдителей и потом в ресурсе просто выбирать из существующих произовдителей и информация автоматом подтягивалась бы из ресурса произовдителя по аналогии с чанком. Возможно, этот вариант так же не очень. В общем, ищу оптималный вариант реализаци. Посоветуйте с высоты вашего опыта решение: где хранить информацию о производителя, как выбирать, выводить.
weranda
07 октября 2020, 16:14
modx.pro
1
593
0

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

Роман
07 октября 2020, 16:23
0
В настройкам minishop2 есть производители, там есть описание.
[[+vendor.description]]
на странице товара.
    weranda
    07 октября 2020, 16:28
    0
    Забыл добавить в вопросе информацию о том, что все делается через ресурсы, без minishop2.
    Наумов Алексей
    07 октября 2020, 16:45
    +1
    Да оба варианта, что вы описали, приемлемы и одинаковы плюс минус.
    Выбирайте, что нравится и что удобнее в других задачах.
    Если у вас и так есть странички производителей, то, конечно, описание нужно к ним добавить.
      weranda
      07 октября 2020, 17:52
      0
      Сделал папку с брендами. В контент добавил описание и вывел все это дело вот так:
      {'pdoResources' | snippet : [
                  'parents' => '1',
                  'depth' => '0',
                  'includeContent' => '1',
                  'tpl' => '@INLINE {{+content}}',
                  'where' => '{"pagetitle":"[[*brand]]"}',
              ]}
      Но только не пойму почему в условии
      where
      я могу использовать только такую запись
      [[*brand]]
      , а вот такую
      {$_modx->resource.brand}
      — нет.
        Тодор
        07 октября 2020, 18:13
        0
        {'pdoResources' | snippet : [
                    'parents' => '1',
                    'depth' => '0',
                    'includeContent' => '1',
                    'tpl' => '@INLINE {{+content}}',
                    'where' => '{"pagetitle":"' ~ $_modx->resource.brand ~ '"}',
                ]}
          weranda
          07 октября 2020, 18:34
          0
          Но где же об этом написано, где объяснено? :)
            Николай Савин
            07 октября 2020, 20:03
            +2
            Если уж корректируете код и используете феном — старайтесь корректировать его до конца
            В чанках нужно использовать родной синтаксис фенома и вызывать плейсхолдеры через $
            'tpl' => '@INLINE {$content}',
            where должен использовать массив данных. для фенома это [ ]
            так и запись проще получается без конкатенации и можно использовать многострочный ввод
            'where' => [
            "pagetitle" => $_modx->resource.brand
            ]
            Итого получаем

            {'pdoResources' | snippet : [
                'parents' => '1',
                'depth' => '0',
                'includeContent' => '1',
                'tpl' => '@INLINE {$content}',
                'where' => [
                     "pagetitle" => $_modx->resource.brand
                 ]
            ]}
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7