Octobercms - 在主题设置上渲染转发器组的字段
Octobercms - render fields from repeater groups on theme settings
我尝试在我的主题设置 yaml 文件中使用转发器组。所以我将上面的代码添加到我的 theme/config/fields.yaml:
fields:
cont:
tab: Content
name: cont
label: Content
type: text
content:
tab: Content
label: Content
prompt: Add content block
span: full
type: repeater
groups:
textarea:
name: Textarea
description: Basic text field
icon: icon-file-text-o
fields:
text_area:
label: Text Content
type: textarea
size: large
quote:
name: Quote
description: Quote item
icon: icon-quote-right
fields:
quote_position:
span: auto
label: Quote Position
type: radio
options:
left: Left
center: Center
right: Right
quote_content:
span: auto
label: Details
type: textarea
主题设置后端一切正常,我可以在我的字段中插入数据。
现在我尝试在我的 cms 页面上呈现这些字段,但无论我尝试什么,我都没有成功。我试试:
{% for fields in this.theme.content%}
{{ fields.textarea }}
{% endfor %}
还有
{% for fields in this.theme.contents %}
{% if fields.groups == "textarea" %}
{{fields.groups.textarea}}
{% endif %}
{% endfor %}
但是我无法渲染字段。
嗯,似乎有些混乱,还有一些错误的变量名:)
让我们解决这个问题。
End result would be like this :
{% for field in this.theme.content %}
{% if field._group == "textarea" %}
<h1>{{field.text_area}}</h1>
{% endif %}
{% if field._group == "quote" %}
<h1>{{field.quote_position}}</h1>
<h1>{{field.quote_content}}</h1>
{% endif %}
{% endfor %}
what are the mistakes [ If you are in hurry skip this :) ] (its here for your improvement it does not server any other purpose :) )
您正在使用 content
,因此您需要确保在这里使用正确的变量名称 您可以使用 this.theme.content
而不是 this.theme .>>内容<<
下一个是field._group
不是fields.groups
最后fields
它的
fields:
text_area:
....
所以你需要使用它们 field.text_area
而不是 field.textarea
和 field.quote_content
等等...
如果您发现任何困难,请发表评论。
我尝试在我的主题设置 yaml 文件中使用转发器组。所以我将上面的代码添加到我的 theme/config/fields.yaml:
fields:
cont:
tab: Content
name: cont
label: Content
type: text
content:
tab: Content
label: Content
prompt: Add content block
span: full
type: repeater
groups:
textarea:
name: Textarea
description: Basic text field
icon: icon-file-text-o
fields:
text_area:
label: Text Content
type: textarea
size: large
quote:
name: Quote
description: Quote item
icon: icon-quote-right
fields:
quote_position:
span: auto
label: Quote Position
type: radio
options:
left: Left
center: Center
right: Right
quote_content:
span: auto
label: Details
type: textarea
主题设置后端一切正常,我可以在我的字段中插入数据。
现在我尝试在我的 cms 页面上呈现这些字段,但无论我尝试什么,我都没有成功。我试试:
{% for fields in this.theme.content%}
{{ fields.textarea }}
{% endfor %}
还有
{% for fields in this.theme.contents %}
{% if fields.groups == "textarea" %}
{{fields.groups.textarea}}
{% endif %}
{% endfor %}
但是我无法渲染字段。
嗯,似乎有些混乱,还有一些错误的变量名:)
让我们解决这个问题。
End result would be like this :
{% for field in this.theme.content %}
{% if field._group == "textarea" %}
<h1>{{field.text_area}}</h1>
{% endif %}
{% if field._group == "quote" %}
<h1>{{field.quote_position}}</h1>
<h1>{{field.quote_content}}</h1>
{% endif %}
{% endfor %}
what are the mistakes [ If you are in hurry skip this :) ] (its here for your improvement it does not server any other purpose :) )
您正在使用 content
,因此您需要确保在这里使用正确的变量名称 您可以使用 this.theme.content
而不是 this.theme .>>内容<<
下一个是field._group
不是fields.groups
最后fields
它的
fields:
text_area:
....
所以你需要使用它们 field.text_area
而不是 field.textarea
和 field.quote_content
等等...
如果您发现任何困难,请发表评论。