Нюанс MIGX и inputTV

Опишу стандартную проблему с изображением, но это распространяется на любую TV используемую в MIGX:

в шаблоне template есть TV staff-migx, с данными:

[{"caption":"staff", "fields": [
  {"field": "img", "caption": "Изображение", "inputTV": "picture"},
  {"field": "name", "caption": "Имя"}
]
}]
Всё работает как надо, но если к шаблону привязать само TV-поле picture и добавить изображение, то при выводе на фронте staff-migx поле img — будет выводить данные из привязанного к шаблону TV-поля.

вывод staff-migx осуществляется так:

[[getImageList?
  &tvname=`staff-migx`
  &tpl=`@CODE: [[+img]]`
]]
Что я делаю не так, проверил на нескольих сайтах.

p.s.: читал о таких «нюансах MIGX» на форуме, но хотелось бы точно получить ответ как кто решает проблему или это не проблема и я что то не так делаю?
Maksim
18 января 2021, 09:40
modx.pro
510
0

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

Наумов Алексей
18 января 2021, 09:53
+1
Почему бы вместо inputTV:picture не использовать inputTVtype: image?
Тогда не придется создавать отдельное tv поле.
    Maksim
    18 января 2021, 10:34
    0
    Ну изображение я взял, как самый популярный пример. А что делать если вместо изображения будет TV поле типа MIGX (ну тоесть вложенность будет). По аналогии выше, проблема повторится.
    Артур Шевченко
    18 января 2021, 12:10
    0
    Я правильно понимаю: вы указываете в конфигурации migx для TV staff-migx, что данные для поля img нужно брать из другого TV с именем picture и это же TV привязываете к тому же шаблону к которому привязано staff-migx? Если да, то зачем вы вообще так делаете? Я достаточно часто использую migx и такого рода проблем никогда не было, потому что я не использую в конфигурации inputTV, не вижу сценариев в которых это было бы нужно. Лучше делайте как написал Алексей и проблем не будет.
      Maksim
      18 января 2021, 12:39
      0
      Да, правильно поняли. Странно то, что в админке функционирует нормально данная ссылочность (то же изображение), проблема только когда осуществляем вывод с помощью getImageList. Это и настараживает.
        Артур Шевченко
        18 января 2021, 12:48
        +1
        Попробуйте перейти на fenom и выводить в цикле
        {set $items = $_modx->resource.staff-migx | fromJSON}
        {foreach $items as $item}
        {$item['img']}
        {/foreach}
        Но повторюсь, не понимаю для чего вам нужно использовать такой вариант конфигурации. А ещё мне кажется, что всё работает как надо, потому что есть в migx поле img заполняется из picture, то логично что img==picture
          Maksim
          18 января 2021, 13:21
          0
          Спасибо, а вот fenom правильно выводит всё. Правда, у меня только так получилось вывести:
          {set $items = json_decode( [[*id]] | resource: 'staff-migx', true)}        
          {foreach $items as $item}
              {$item | print_r}
          {/foreach}
          Делаем вывод, проблема в getImageList?
            Maksim
            18 января 2021, 14:17
            0
            Прошу прощения за мешанину синтаксиса Fenom и MODX, попрвалю, заодно вашим способом fromJSON:
            {set $items = $_modx->resource['staff-migx'] | fromJSON}       
            {foreach $items as $item}
                {$item | print_r}
            {/foreach}
            Я так понял ему тире не понравились в названии TV поля staff-migx
              Артур Шевченко
              18 января 2021, 14:19
              0
              Да, я обычно не использую в названиях -, только _
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8