查找节点是否为子木兰CMS

时间:2019-11-11 14:59:05

标签: magnolia

我需要找出木兰中的一个节点是孩子还是父节点。这样,我可以以相反的顺序重新创建元素。例如,我需要找出第一个节点1是快速链接区域节点的子节点,而第二个节点1是链接列表区域节点的子节点。

--quicklinks  [mgnl:area] 
 *--1         [mgnl:component]
  *--linklist [mgnl:area]
    *--1      [mgnl:component]
     *--links [mgnl:area]
      *--0    [mgnl:component]

我可以使用哪种方法?

2 个答案:

答案 0 :(得分:1)

看看info.magnolia.jcr.util.NodeUtil

它带来了很多可用的功能,包括查找所有子节点或获取给定节点的父节点。

干杯

希望有帮助,

答案 1 :(得分:1)

如@ Ducaz035所述,

NodeUtil确实是一个很好的起点。但是您需要为此编写一个模型类。如果要严格将其保留在模板级别,请查看cmsfnMagnolia Templating Functions)和Freemarker documentation。您可以执行以下整洁的事情:

Content: ${content}<br />
Parent: ${content?parent}
Siblings (children of parent):<ul>
[#list cmsfn.children(content?parent) as child]<li>${child}</li>[/#list]
</ul>
Reversed siblings (children of parent):<ul>
[#list cmsfn.children(content?parent)?reverse as child]<li>${child}</li>[/#list]
</ul>