在 octobercms 静态页面插件上呈现一组内部带有中继器的字段

On octobercms static pages plugin render a group of fields with a repeater inside

在 "content/static-pages/index.htm" 我可以看到可以在页面上呈现的已保存字段:

然后在局部我可以使用 {{ data.section_color }} 渲染一个字段。

现在我想在 "meta/groups.yaml" 中创建一个转发器字段,如下所示:

carousel2:
  name: Carousel2
  description: Carousel2
  icon: icon-file-image-o
  fields:
    section_carousel2:
       type: repeater
       prompt: Add new subitem
       form:
          fields:
            section_carouselimage2:
              label: Image2
              type: mediafinder
              mode: image
            section_carouseltitle2:
              label: Title2
              type: text
            section_carouselsubtitle2:
              label: Subtitle2
              type: textarea
              size: small

我可以在我的后端看到这个字段,我可以用它保存数据。在 "content/static-pages/index.htm" 现在我有:

[viewBag]
title = "Home"
url = "/"
layout = "static"
is_hidden = 0
navigation_hidden = 0
sections[0][section_carousel2][1][section_carouselimage2] = "/carousel/bg-1.jpg"
sections[0][section_carousel2][1][section_carouseltitle2] = "Carousel2 Title"
sections[0][section_carousel2][1][section_carouselsubtitle2] = "Carousel2 Subitle"
sections[0][section_carousel2][2][section_carouselimage2] = "/carousel/bg-2.jpg"
sections[0][section_carousel2][2][section_carouseltitle2] = "Carousel2 Title2"
sections[0][section_carousel2][2][section_carouselsubtitle2] = "Carousel2 Subtitle2"
sections[0][_group] = "carousel2"
==

问题是我找不到呈现此字段的方法。如何在中继器组内渲染中继器字段?我如何呈现 "section_title2" 字段?

嗯,以免假设您正在添加 carousel2

好的,我们在 meta/groups.yaml 中添加了它的标记,所以基本上我们正在制作 carousel2 组。

现在解决方案,我们如何显示它 information/data。

first we need to create partial in cms blocks/carousel2 so carousel2 will be placed in blocks folder where other partials are (simple / react / etc ...).

好的,现在我们需要在里面添加这个内容

<section>
  <!-- render inner section -->
    {% for slide in data.section_carousel2 %}
        <!-- this block will repeat / based on added slides( so probably slider markup will be here) -->
        <p>{{ slide.section_carouselimage2 }}</p>
        <p>{{ slide.section_carouseltitle2 }}</p>
        <p>{{ slide.section_carouselsubtitle2 }}</p>        
    {% endfor %}
</section>

好的,现在您可以访问 for 循环中的所有字段。我们使用了循环,因为你的组是转发器。

稍微了解一下


data : = this variable is passed to each partial. its data regarding your group, in our case its carousel2

现在数据有2件事 第一 : 组名 , second 我们的 真实数据 我们保存在 page.

要获取保存的数据,我们可以使用 data.section_carousel2 现在因为我们知道它的转发器类型,所以要获取我们需要添加 for 循环的数据。

现在在 for 循环中我们使用了 slide 变量,它将在每次迭代中获取转发器内所有字段的所有数据。

so now within this loop you have your fields slide.section_carouselimage2 as we declared in meta/groups.yaml file.

如果有任何不清楚或无法正常工作,请发表评论。