Неверный вывод getImageList в toPlaceholder в чанке через getResources



  • Всем привет. Пытаюсь вытащить migx tv в чанке через getResources.

    [[!getResources?
      &tpl=`names`
      &parents=`[[*id]]`
      &includeTVs=`1`
      &processTVs=`1`
    ]]
    

    В чанке вывожу в плейсхолдер, плейсходер в условие.

    [[!getImageList?
      &docid=`[[+id]]`
      &tvname=`namesExtra`
      &tpl=`@CODE:<div class="name">[[+title]]</div>`
      &toPlaceholder=`namesExtraLine`
    ]]
    
    [[+namesExtraLine]]
    /*во всех выводах возвращает содержимое migx tv последнего ресурса*/
    
    [[+tv.names:!empty=`<div class="head">Имена</div>`]]
    /*это просто множественный список, оставил строку, чтобы понятно было что это во втором условии*/
    
    [[!+namesExtraLine:ne=``:and:if=`[[+tv.names]]`:is=``:then=`<div class="head">Имена</div>`:else=``]]
    /*условие не работает, т.к. плейсхолдер не пуст*/
    

    При этом вызов getImageList без toPlaceholder все выводит верно.
    migx tv:

    [{
      "caption":"Имена", 
      "fields":[{
        "field":"title",
        "caption":"ФИО"
      }]
    }] 
    

    Пока писал этот вопрос, сам же на него сформулировал ответ. Если кто столкнется с такой же проблемой, может найдет это решение. Все оказалось очень просто - нужно пронумеровать плейсхолдер. Разжую:

    [[!getImageList?
      &docid=`[[+id]]`
      &tvname=`namesExtra`
      &tpl=`@CODE:<div class="name">[[+title]]</div>`
      &toPlaceholder=`namesExtraLine[[+idx]]`
    ]]
    
    [[+tv.names:!empty=`<div class="head">Имена</div>`]]
    /*все еще оставляю эту строку, просто так*/
    
    [[+namesExtraLine[[+idx]]]]
    /*во всех выводах возвращает содержимое migx tv текущего ресурса*/
    
    [[!+namesExtraLine[[+idx]]:ne=``:and:if=`[[+tv.names]]`:is=``:then=`<div class="head">Имена</div>`:else=``]]
    /*условие работает, если нет имен в migx tv и в списке ничего не выбрано*/
    


Последние темы

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.