gpt4 book ai didi

java - Magnolia 模板脚本中的渲染组件索引

转载 作者:行者123 更新时间:2023-12-02 11:04:38 27 4
gpt4 key购买 nike

我正在使用 Magnolia 5.6 Enterprise Pro CMS,并且我有一个包含一个可用组件的类型列表区域:

areas:
steps:
renderType: freemarker
availableComponents:
step:
id: obi-module:components/step

这样我就可以将 N 个相同类型的组件添加到 steps 区域。

问题:现在我想在step组件的模板脚本中显示组件索引,但我不知道如何实现。

在外部组件的模板脚本中,我可以执行以下操作:

[#assign stepList=cmsfn.children(content.steps) ]

...

<p>Number of steps: ${stepList?size!'#'}</p>

...

[#list stepList as component]
[@cms.component content=component contextAttributes={'index':component?counter} /]
[/#list]

step 组件的模板脚本中,我可以使用 index 变量:

${(ctx.index)!'#'}

这显示了所需的从 1 开始的索引号,但现在在 Magnolia 中我无法再编辑组件,因为我没有获得步骤组件的典型绿色 Magnolia 编辑器栏。 p>

当我这样放置模板脚本时:

[#assign stepList=cmsfn.children(content.steps) ]

...

<p>Number of steps: ${stepList?size!'#'}</p>

...

[@cms.area name="steps" /]

我可以编辑组件,但我不知道如何获取(列表)索引。

有人知道如何实现这个目标吗?

最佳答案

我的坏处 - 我正在从(外部)步骤组件的脚本迭代步骤组件,但我必须在区域脚本内执行此操作。所以我将步骤组件定义更改为:

areas:
steps:
renderType: freemarker
templateScript: /my-module/components/steps-area.ftl
availableComponents:
step:
id: my-module:components/step

区域模板脚本(steps-area.ftl)看起来像这样:

[#list components as component]
[@cms.component content=component contextAttributes={'index':component?counter} /]
[/#list]

关于java - Magnolia 模板脚本中的渲染组件索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com