0

Wie Sie auf diesem oktobercms Thema sehen https://github.com/liip/oc-blocks-theme der Ersteller Meta/groups.yaml Datei verwendet, um weitere Feldtypen auf Static-Seiten-Plugin hinzuzufügen. Jede Gruppendefinition verfügt über eine entsprechende Teildatei in Partials/blocks/{group_name}. Die Formulardaten werden als 'Daten' übergeben.On octobercms statische Seiten Plugin rendern eine Gruppe von Feldern mit einem Repeater innerhalb

On "content/statisch-Seiten/index.htm" Ich kann die gespeicherten Felder sehen, die auf Seite gerendert werden können:

<!-- render blocks --> 
{% for section in sections %} 
    <!-- must reside in partials/blocks/{name_of_group} --> 
    {% partial 'blocks/' ~ section._group data=section %} 
{% endfor %} 

, wie Sie auf "Layout/default.htm" sehen. Dann kann ich bei Partials {{data.section_color}} verwenden, um ein Feld zu rendern.

Jetzt möchte ich einen Repeater Feld erzeugen innen „meta/groups.yaml“ wie folgt aus:

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 

ich das Feld auf meinem Backend sehen können, und ich kann Daten mit speichern. On „content/statisch-Seiten/index.htm“ Jetzt habe ich:

[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" 
== 

Das Problem ist, dass ich nicht einen Weg zu machen, um dieses Feld zu finden. Wie kann ich Repeaterfeld innerhalb der Repeatergruppe darstellen? Wie kann ich zum Beispiel das Feld "section_title2" rendern?

Antwort

1

Hmm, damit nicht davon ausgehen, dass Sie carousel2

ok fügen wir hinzugefügt, es ist Markup im meta/groups.yaml also im Grunde sind wir carousel2 Gruppe zu machen.

so jetzt Lösung, wie wir seine Informationen/Daten zeigen.

zuerst müssen wir in cms Blöcke/carousel2 Teil schaffen, so wird carousel2 in Blöcken Ordner platziert werden, wo andere partials sind (einfache/reagieren/etc ...).

ok jetzt müssen wir diesen Inhalt hinzufügen Inneren

<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> 

ok jetzt Sie alle Felder für Schleife innerhalb zugreifen können. Wir haben Loop verwendet, weil deine Gruppe Repeater ist.

lassen Sie uns ein wenig verstehen.


Daten: = Diese Variable wird jedes Teilgeben. seine Daten Ihre Gruppe in Bezug auf, in unserem Fall seines carousel2

jetzt Daten haben 2 Dingeerste: Gruppennamen, zweite unsere reale Daten, die wir gerettet auf Seite.

um diese gespeicherten Daten zu erhalten können wir data.section_carousel2 jetzt verwenden, da wir seine Art von Repeater kennen, um diese Daten zu bekommen, die wir für die Schleife hinzufügen müssen.

jetzt in for-Schleife wir slide Variable verwendet, die alle Daten für alle Felder in Repeater für jede Iteration erhalten wird.

so jetzt innerhalb dieser Schleife haben Sie Ihre Felder slide.section_carouselimage2 wie wir in meta/groups.yaml-Datei deklariert.

Wenn etwas nicht klar ist oder wenn es nicht funktioniert bitte Kommentar.

+0

Εxcellent Erklärung. Ich habe die "Daten" verpasst. innen für Schleife. Jetzt funktioniert es. Vielen Dank. – Haris

+0

Am meisten Willkommen, @Haris :) –

Verwandte Themen