Modx аналогичный вызов и флажки

#modx #ditto

#modx #то же самое

Вопрос:

Это мой текущий аналогичный вызов, и он работает, когда в переменных шаблона выбран только west (переменная шаблона — это флажок). Мне нужно заставить это работать, когда установлено несколько флажков.

 [[Ditto? amp;parents=`5` amp;depth=`1` amp;tpl=`map_person` amp;orderBy=`lastname ASC` amp;filter=`district,West`]]
  

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

1. Просто чтобы подтвердить то, что вы спрашиваете… в каком районе находится ваш телевизор? и это содержит что-то вроде Запада, востока, Юга, Севера? И фильтр работает только тогда, когда установлен флажок исключительно West, а не, например, если установлены флажки West и East?

Ответ №1:

Фильтр amp; должен использовать поле, критерии, режим, поэтому, если он должен работать только с теми, у кого установлен флажок West, вам следует написать это:

 amp;filter=`West,2,1|East,1,1|South,1,1|North,1,1`
  

Итак, в нем говорится: выберите документ, в котором отмечен «Запад», а «Восток» не отмечен, «Юг» не отмечен, а «Север» не отмечен.

Вы также могли бы создать фрагмент, который выполняет это и проходит через дочерние элементы parent = 5 и выдает разделенный запятыми список со всеми идентификаторами дочерних элементов и помещает их в параметр amp;documents. Что-то вроде этого:

 [[Ditto? amp;documents=`[!FindExclusive? amp;district=`West` amp;parentid=`5`!]`]]
  

Во фрагменте кода вы могли бы написать что-то вроде этого (здесь приведен только псевдокод):

 $children = get all children from $parentid;
$documents = new Array();
foreach $children['id']{
    Get the checkboxes from this child
    Check if only the $district checkbox is checked
    if it is true then fill inn the id in $documents-array
}
echo implode(',',$documents);
  

Это сгенерирует разделенный запятыми список документов, в которых отмечен только West. И вы могли бы использовать тот же фрагмент для Востока, севера и юга.