Modx тот же вызов и флажки

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

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

person josh    schedule 25.04.2011    source источник
comment
Просто чтобы подтвердить то, о чем вы спрашиваете... район вашего телевизора? и что содержит что-то вроде Запада, Востока, Юга, Севера? И фильтр работает только тогда, когда проверен исключительно Запад, а не если проверены, например, Запад и Восток?   -  person Fishcake    schedule 26.04.2011


Ответы (1)


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

&filter=`West,2,1|East,1,1|South,1,1|North,1,1`

Итак, он говорит: выберите документ, в котором запад отмечен, а восток не отмечен, юг не отмечен, а север не отмечен.

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

[[Ditto? &documents=`[!FindExclusive? &district=`West` &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. И вы можете использовать один и тот же фрагмент для Востока, Севера и Юга.

person BennyLava    schedule 24.11.2011