Я думал внутри файла 1afbeelding-lijst.tpl используется этот тег. Вот его и показывает без префикса.

А так:
[!multiTV? &tvName=`gall_image` — здесь tvName — это название конфига и ТВ? Или все-таки то, что получает из ТВ gall_image?

Вот в этом и вопрос. Где gall_image переменная? Внутри multitv или внутри doclister?
  • avatar tinik
  • 0
вы не правы там префикс ненужен более того там [+ +] тоже ненужны. у меня предположения что ошибка в rowTpl в конфиге мультТВ
Все проще — у вас нет префикса для ТВ

Вы выводите [+gall_image+], а нужно [+tv.gall_image+]

Или в параметрах доклистера укажите &tvPrefix=`` с пустотой внутри, тогда будет работать без префикса
  • avatar tinik
  • 0
а если вызвать мультиТВ не внутри доклистера а просто в шаблоне указав жестко docid?
Так работает и выводит всю json-строку со всеми картинками. То есть, сам ТВ работает. Сниппет нет.
  • avatar tinik
  • 0
попробуй в чанке home_event вывести просто [+tv.gall_image+] что выведет?
НУ ЧТО Я ДЕЛАЮ НЕ ТАК??? =))))


чанк home_event
У меня и так сработало:
[!DocLister?
&id=`list`
&depth=`1`
&parents=`1082`
&tvList=`price_spec`
&summary=`notags,len:100`
&tpl=`@CODE: [[multiTV? 
&tvName=`price_spec` 
&display=`1`
&docid=`[*id*]`
]]`
!]

проверьте названия tv, ну и смотря где вызываете [*id*] или [*id*]
Везде сделал [!snippet!] — не работает.
Вот так тоже не работает.

[!DocLister?
&id=`list`
&depth=`1`
&parents=`2`
&tvList=`gall_image`
&summary=`notags,len:100`
&tpl=`event`
!]


Чанк event:

<div class="col-md-4 event-item">
        <span class="overlay-img"></span>
        
        <div class="card">
                <img src="[[multiTV? 
                                          &tvName=`gall_image` 
                                          &display=`1`
                                          &docid=`[+id+]`
                                          ]]" class="card-image">
                <div class="hidden-title">
                        <div class="card-boat-title">
                                <h1>[+pagetitle+]</h1>
                                <h3><a class="book-this" href="[+url+]">[+longtitle+]</a></h3>
                        </div>
                </div>
        </div>
</div>
!]

Будьте внимательны
Сорри — созданного чанка.
Отвлекся, не то написал
Простите, это что значит «указать название сайта в теге &tpl»?
Поместите содержимое тега &tpl в чанк и в теге &tpl укажите название сайта.
Сниппеты не работают при инлайновом вызове
Сделал так:
<code>
[!DocLister?
&id=`list`
&depth=`1`
&parents=`2`
&tvList=`gall_image`
&summary=`notags,len:100`
&tpl=`@CODE
<div class="col-md-4 event-item">
        <span class="overlay-img"></span>
        
        <div class="card">
                <img src="[[multiTV? 
                                          &tvName=`gall_image` 
                                          &display=`1`
                                          &docid=`[+id+]`
                                          ]]" class="card-image">
                <div class="hidden-title">
                        <div class="card-boat-title">
                                <h1>[+pagetitle+]</h1>
                                <h3><a class="book-this" href="[+url+]">[+longtitle+]</a></h3>
                        </div>
                </div>
        </div>
</div>
`
!]
</code>

Не работает. Пробовал опять вынести в отдельный чанк — также не работает.

На другом сайте работает даже [!MultiTv!].

Как так?
кешируемые вызовы внутри сниппетов не допустимы используйте [[MultiTv]]
Где можно скачать?
Только лучше еще использовать и templates при WHERE, тогда запрос будет побыстрее работать.

$table = $modx->getFullTableName("site_content");
$table_tv = $modx->getFullTableName("site_tmplvar_contentvalues");
//Это номер твоего TV параметра "ostatok", это что-бы не делать еще один LEFT JOIN
$NUMBER_TV = X;

$sql = 'SELECT `c`.`id` FROM '.$table.' c 
LEFT JOIN '.$table.' t ON `c`.`id` = `t`.`parent`
LEFT JOIN '.$table_tv.' tv ON `t`.`id` = `tv`.`contentid` AND `tv`.`tmplvarid` = '.$NUMBER_TV.'
WHERE ( `tv`.`value` IS NOT NULL AND CAST(`tv`.`value` AS SIGNED)>0) 
AND `c`.`published`=1 AND `c`.`deleted`=0
AND `t`.`published`=1 AND `t`.`deleted`=0';

$result = $modx->db->query($sql);


Вот должен выбрать IDs подкатегорий в которых есть товары с TV больше нуля.