如何在 MODX Revo 中隐藏资源子项的块?

How to hide a block from children of a resource in MODX Revo?

我在边栏中有一个小部件,我想在所有页面上显示该小部件,但 ID 为 418 的容器的子项除外(同时该小部件应该对 418 可见)。 在 IF 包中未找到任何类似内容。

第一个有点原始的解决方案可能是通过稍微修改当前模板(删除小部件)创建一个新模板,然后为不应显示小部件的页面设置新创建的模板。

我想到的第二种方法是获取 somehow 资源的 parent id,然后在您的 "proxy" 块中使用它(而不是直接调用小部件的块)当前模板如下:

[[!If?
&subject=`[[!getParentId]]`
&operator=`EQ`
&operand=`418`
&then=``
&else=`[[$yourWidget]]`
]]

应该有一些额外的功能来获取 parent 的 ID,或者您可以随时根据此编写自己的小 "getParentId" 代码段:

return $modx->getParentIds( $modx->resource->id );