Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Checkbox Modx资源列表作为用户的复选框_Checkbox_Modx Revolution - Fatal编程技术网

Checkbox Modx资源列表作为用户的复选框

Checkbox Modx资源列表作为用户的复选框,checkbox,modx-revolution,Checkbox,Modx Revolution,请帮助,我一直在使用Modx Revo tv输入类型选项 我想要实现的是有一个复选框类型的tv,它将特定父级的资源显示为复选框项。因此,当用户检查一两个项目时,它们将作为逗号分隔的值输出 然后,我将把我的电视放在模板上的getresources调用中,它将从选中的资源中输出一些信息 那么如何将资源列表转换为复选框选项呢 关于这方面的文档非常模糊。完成这项工作需要一些工作,但并不十分困难 首先,创建一个新的模板变量。您可以随意命名它,例如列出子项。然后转到“输入选项”选项卡,将“输入类型”设置为“

请帮助,我一直在使用Modx Revo tv输入类型选项

我想要实现的是有一个复选框类型的tv,它将特定父级的资源显示为复选框项。因此,当用户检查一两个项目时,它们将作为逗号分隔的值输出

然后,我将把我的电视放在模板上的getresources调用中,它将从选中的资源中输出一些信息

那么如何将资源列表转换为复选框选项呢


关于这方面的文档非常模糊。

完成这项工作需要一些工作,但并不十分困难

首先,创建一个新的模板变量。您可以随意命名它,例如
列出子项
。然后转到“输入选项”选项卡,将“输入类型”设置为“复选框”,并在“输入选项值”下输入以下内容:

@eval return $modx->runSnippet('list_children');
<?php
$c = $modx->newQuery('modResource');
$c->where(array(
    'parent' => 2, // Id to fetch children from
    'published' => 1, // Remove this line if you also want to include unpublished resources
    'deleted' => 0 // Remove this line if you also want resources that are marked for deletion
));
$c->sortby('menuindex', 'ASC');
$collection = $modx->getCollection('modResource', $c);
$output = array();

foreach ($collection as $v) {
    $output[] = $v->get('pagetitle') . '==' . $v->get('id');
}

return implode('||', $output);
转到“输出选项”选项卡,并在“输出类型”下拉列表中选择“分隔符”。在分隔符文本框中,写一个逗号
。将模板变量应用于所选模板并保存

新建,创建一个新的代码段。将其命名为
list\u children
,或将eval表达式更改为调用的任何内容

在此代码段中,填写以下内容:

@eval return $modx->runSnippet('list_children');
<?php
$c = $modx->newQuery('modResource');
$c->where(array(
    'parent' => 2, // Id to fetch children from
    'published' => 1, // Remove this line if you also want to include unpublished resources
    'deleted' => 0 // Remove this line if you also want resources that are marked for deletion
));
$c->sortby('menuindex', 'ASC');
$collection = $modx->getCollection('modResource', $c);
$output = array();

foreach ($collection as $v) {
    $output[] = $v->get('pagetitle') . '==' . $v->get('id');
}

return implode('||', $output);

我找到了另一种方法

  • “使用输入类型制作电视”复选框
  • 将@SELECT pagetitle,id从modx_站点_内容中放入,其中父项=123 !收件人:。注意modx_site_内容,它需要反映MySQL db前缀,在本例中为modx,将123更改为各自的父id
  • 将电视输出类型更改为分隔符,将coma(,)更改为分隔符
  • 将TV访问设置为相应的模板
  • 现在,您可以选择父资源的任意或多个子资源,将其ID输出为TV输出。比如说,我们的父母123有33、34和35个孩子。在使用具有电视访问权限的模板的资源的模板变量部分中,您将找到一个带有子标题的复选框列表。选择一个或多个,例如33和35将在块中使用的电视中输出“33,35”。 我在Modx论坛上找到了解决方案。不幸地丢失了链接