Вывод изображений TV MIGX через FENOM

Друзья, изучаю FENOM и сразу сталкнулся с неприятной историей с путями к рисункам, есть TV MIGX indexgroup,
там используется рисунок, во кладках формы прописано так, использую простой TV с прописаным источником файлов от корня сайта /img/. в этой папке все остальные каталоги рисунков и рисунки.
{"field":"image","caption":"Фото","inputTV":"image"},
Если вывожу обычным способом через парсер MODx как раньше, то все хорошо.
[[getImageList? 
&tvname=`indexgroup` 
&tpl=`test`
]]
Чанк test
[[+image:phpthumbsup=`w=240&h=240&zc=1&q=100`]]
Результат от корня с папкой IMG, порядок:
/phpthumbsup/w/240/h/240/zc/1/q/100/src/img/catalog/Layer1.png


Но если вывожу через FENOM, без сниппета getImageList
{set $indexgroup = json_decode(1 | resource : 'indexgroup', true)}
{foreach $indexgroup as $item}
   {$item.image | phpthumbsup : 'w=240&h=240&zc=1'}
{/foreach}
то результат такой, без корневой папки IMG:
/phpthumbsup/w/240/h/240/zc/1/src/catalog/Layer1.png

base href прописан на странице
Почему так происходит? Как это решить?
Роман
20 января 2020, 17:01
modx.pro
1
1 179
0

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

Андрей
20 января 2020, 17:29
0
Просто item.image выведет название файла, без пути?
{foreach $indexgroup as $item}
   {$item.image}
{/foreach}
Нужно дописывать путь к источнику файлов. И вот это — phpthumbsup стоит поменять на что нибудь более современное =)
    Роман
    20 января 2020, 17:34
    0
    Если просто {$item.image} выводит тоже неполный путь: catalog/Layer1.png
    На что например поменять? Это самый быстрый снипет из существующих аналогов и нет ошибок в консоли как у других, phpthumbOn или Of
      Андрей
      20 января 2020, 17:51
      0
      На что например поменять? Это самый быстрый снипет из существующих аналогов и нет ошибок в консоли как у других, phpthumbOn или Of
      Далеко не самый быстрый — Thumb War, и ужасные пути к картинкам получаются.

      Давно использую — pThumb.

      Надо попробовать как то так:
      {foreach $indexgroup as $item}
         <img src="img/{$item.image | phpthumbsup : 'w=240&h=240&zc=1'}"> // возможно ещё слеш в начале надо
      {/foreach}
        Роман
        20 января 2020, 17:58
        0
        Спасибо, так сразу попробовал img/{$item.image… :) не получается. img не попадает в снипет так.
        В общем почему то при вызове снипета как модификатор через FENOM без снипетов getImagelist и других, в снипет phpthumbsup не попадает корень сайта, или просто он его не учитывает. Попробую настройки самого снипета поковырять.

        Пока сделал так для каждой вставки рисунка.
        {'phpthumbsup' | snippet : [
                                    'input' => /img/'~$item.image,
                                    'options' => '&w=240&h=240&zc=1&f=png',
                                    ]
                                }
          Андрей
          20 января 2020, 18:24
          0
          Под рукой нет сейчас сайта попробовать, а если вот так сделать:
          {'/img/'~$item.image | phpthumbsup : 'w=240&h=240&zc=1'}
          Попадёт img в путь или нет?
            Роман
            20 января 2020, 18:28
            0
            Спасибо но нет, тоже пробовал, результат /img/phpthumbsup/w/240/h/240/zc/1/src/catalog/Layer1.png
            После src нет папки img.
            А должно быть так /phpthumbsup/w/240/h/240/zc/1/f/png/src/img/catalog/Layer1.png
              Андрей
              20 января 2020, 18:38
              0
              Вот тут есть совет заносить сначала путь в переменную — https://modx.pro/help/8962#comment-107263, по идее должно сработать.

              С другой стороны раз вызов через сниппет работает, то и пусть работает, по факту то же самое получаем =)
                Роман
                20 января 2020, 18:43
                0
                да читал этот пост, так же как я сделал человек с указанием пути через опцию INPUT, думаю можно снипет getimagelist использовать но с синтаксисом Fenom, думаю тоже будет работать без проблем с путями, сейчас попробую.
                  Андрей
                  20 января 2020, 18:47
                  0
                  Fenom и getImageList (MIGX) могут дружить — ещё есть параметр JsonPlaceholder, но никогда им не пользовался, не знаю будет ли работать правильно.
                    Роман
                    20 января 2020, 18:55
                    0
                    Вообще не понимаю,
                    Вызываю
                    {'!getImageList' | snippet : [
                    'tvname' => 'indexgroup',
                    'tpl' => 'test'
                    ]}
                    чанк test
                    [[+image]] так выводит
                    {$image} так нет :(
                      Андрей
                      20 января 2020, 18:59
                      1
                      0
                      В чанке getImageList феном не будет работать, только стандартный парсер.
                      Роман
                      20 января 2020, 19:02
                      0
                      понятно, спасибо.
                      Сделал так же по примеру

                      {'!getImageList' | snippet : [
                      'tvname' => 'indexgroup',
                      'toJsonPlaceholder' => 'row',
                      ]}
                      {var $banner = json_decode('row' | placeholder, true)}
                      {var $banner = $banner[0]}
                      {$banner['image'] | phpthumbsup : 'w=240&h=240&zc=1'}
                      Работает, и путь в порядке, НО КАК СДЕЛАТЬ ЦИКЛ? Только одна итерация выводится.
                      Роман
                      20 января 2020, 19:17
                      0
                      Разобрался, вот так в цикле
                      {'!getImageList' | snippet : [
                      'tvname' => 'indexgroup',
                      'toJsonPlaceholder' => 'row'
                      ]}
                      {var $banner = json_decode('row' | placeholder, true)}
                      {foreach $banner as $cat}
                      	{$cat['image'] | phpthumbsup : 'w=240&h=240&zc=1'}
                      {/foreach}
                      С путями порядок, но все таки используется сниппет Getimagelist.
                      Думаю все варианты перебрали.
                      Эх жаль, что с путями беда для phpthumbOn или phpthumbsUp если без сниппета просто Foreach пройти.
          Евгений Webinmd
          20 января 2020, 21:29
          2
          +3
          <img src="{('img/'~$item.image) | phpthumbsup : 'w=240&h=240&zc=1'}">
            Роман
            20 января 2020, 23:08
            0
            ООООО!!! Супер, благодарю! Так работает, и пути правильно! Круглые скобки, даже не видел таких примеров в Fenom :)
              Дмитрий
              21 января 2020, 16:40
              0
              Круглые скобки там, по большому счёту, излишни, просто визуально ограничивают строку с конкатенацией. Без них так же будет работать.
                Роман
                21 января 2020, 19:50
                0
                К сожалению нет, без скобок пути не правильные, корневой каталог исчезает.
    Ури
    16 мая 2020, 00:49
    0
    Столкнулся с аналогичной проблемой. Если правильно понял, то тут пишут, что в конфигурации MIGX поля (во Вкладки формы) нужно правильно указать источник файлов. Пример:

    [{"caption":"Image", "fields": 
      [
       {"field":"image","caption":"Изображение","inputTVtype":"image","sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"4\"}]"}
      ]
    }]
    Но что-то у меня с этим не срослось. Если sourceid меняю на нужный, то все равно пути правильные не отображаются. А что значит MIGX_id я что-то пока не понимаю. Видимо, и тут что-то нужно изменить. Если кто знает, подскажите, пожалуйста, что означает MIGX_id в этом коде. Про контекст и айди источника файлов, вроде понятно.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      18