3

In CrafterCMS, I have a component Team with a itemSelector field where I'm assigning some instances of another component TeamMember.

In the template of Team I'm using siteItemService.getSiteItem to get the model information of child components:

<#assign memberModel =  siteItemService.getSiteItem(memberItem.storeUrl) />

Between the fields of type TeamMember I have: Some fields of TeamMember

I'm able to get the value of skillTitle like this:

<#assign skillsTitle = memberModel.queryValue("//skillsTitle")!"" />

But I'm not able to get the value of the values in the repeating group.

I tried with:

<#assign skills = memberModel.queryValues("//skills")![] />

It returns an array of just one element, I think is an empty string

<#assign skills = memberModel.queryValues("//skills/item")![] />

It returns an array with the right number of elements, but I think all of them are empty strings

If I use:

<#assign skills = memberModel.queryValues("//skills/item/skillName")![] />

I get a correct array with all the skill names, but I need iterate over both values (skillName and skillLevel)

How can I query the model in order to get an array which elements have all the values in the repeated group?

kmarcos
  • 179
  • 6

1 Answers1

3

Once you get the SiteItem with

<#assign memberModel = siteItemService.getSiteItem(memberItem.storeUrl) />

it works just like any other contentModel variable within a FreeMarker template. So, you can iterate it with

<#list memberModel.skills.item as skill>
    ${skill.skillName} = ${skill.skillLevel}
</#list>
efaj
  • 925
  • 1
  • 12
  • 23