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 同上调用和复选框的主要内容,如果未能解决你的问题,请参考以下文章

循环通过 MODx 中的同上调用

ModX 同上:订购电视?

modx 1.05 - 如何删除同上通话中的新行

MODX (Evo) 同上和带有多个 DIV 的轮播,其中需要加载子资源 ID

如何实现 SEF 分页(同上)- MODx?

ModX Evolution:同上 + phx 代码