Modx 同上调用和复选框
Posted
技术标签:
【中文标题】Modx 同上调用和复选框【英文标题】:Modx ditto call and checkboxes 【发布时间】:2011-04-25 19:57:43 【问题描述】:这是我当前的同上调用,它仅在模板变量中选择了 west 时起作用(模板变量是一个复选框)。 I need to get this to work when multiple checkboxes are selected.
[[Ditto? &parents=`5` &depth=`1` &tpl=`map_person` &orderBy=`lastname ASC` &filter=`district,West`]]
【问题讨论】:
只是为了确认您的要求...地区是您的电视吗?并且包含诸如西,东,南,北之类的东西?并且过滤器仅在仅检查 West 时才有效,而不是在检查 West 和 East 时才有效? 【参考方案1】:&filter 应该使用 field,criteria,mode 所以如果它应该只对那些有 West 检查过的人有效,你应该这样写:
&filter=`West,2,1|East,1,1|South,1,1|North,1,1`
所以是这样的:选择一个文档,选择 West 和 East 不检查,South 不检查,North 不检查。
您还可以创建一个 sn-p 执行此操作并遍历 parent=5 的子代,并回显一个带有所有子代 ID 的逗号分隔列表,并将它们放在 &documents 参数中。像这样的:
[[Ditto? &documents=`[!FindExclusive? &district=`West` &parentid=`5`!]`]]
在 Snippet-code 中你可以这样写(这里只有伪代码):
$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。您可以对东、北和南使用相同的 sn-p。
【讨论】:
以上是关于Modx 同上调用和复选框的主要内容,如果未能解决你的问题,请参考以下文章