一个资源MODx Revo的多个父母

时间:2017-08-22 17:45:31

标签: modx modx-revolution

我使用pdoTools,我需要为许多父母分配一个资源,但实际上它应该属于一个父类别。我已经做了什么:

创建了一个新电视" listParents",并在输入选项中@eval return $modx->runSnippet('listParents');

创建代码段" listParents"

<?php
$criteria = $modx->newQuery('modResource');
$criteria->where(array(
    'published' => 1,
    'deleted' => 0,
    'isfolder' => 1,
    'template' => 6,
    array('AND:id:!=' => 6)
));
$criteria->sortby('menuindex', 'ASC');
$collection = $modx->getCollection('modResource', $criteria);
$output = array();

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

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

现在我可以看到资源中的所有类别:http://prntscr.com/gbq34i并且除了父类别http://prntscr.com/gbq9y3之外,还可以标记它应该输出的类别。

如果我想去一​​个已检查的类别,我应该看到这个资源。但是如何通过pdoTools输出呢?

1 个答案:

答案 0 :(得分:0)

我需要添加小支票:

if($isHideInMenu == '1' AND $modx->resource->get("id") != '1') {
  $params['tvFilters'] = 'listParents==%' . $modx->resource->get("id") . '%';
}

关键是这一行:$params['tvFilters'] = 'listParents==%' . $modx->resource->get("id") . '%';

它会找到当前页面id的所有行,它们存储在listParents中。