returning dynamic metadata fields from a multi-select using $_.query() tool

jason.c.hoyt's Avatar


03 Mar, 2016 07:00 PM


We are using the awesome $_.query() tool and for the most part we are able to return most values (data, metadata, etc.). However, we are having troubles returning (looping) values for a multi-select. So far we can return a single value.

Here is the XML of a typical asset type we are looping through:

<system-index-block current-time="aaaa" name="current-page" type="folder">
        <system-page current="true" id="bbbb">
                <value>first value</value>
                <value>second value</value>

The following (partial) works:

#set ( $query = $_.query() )
#set ( $results = $query.byContentType("reference").sortBy("name").maxResults(-1).execute() )
#foreach ( $r in $results )
 #set($meta = $r.metadata)
    #set($name = $
    #set($title = $r.metadata.title)
    #set($section = $meta.getDynamicField('section').value)

However, when we use:

#set($category = $meta.getDynamicField('category').value)

it only returns of the 2 values from the above asset's XML structure.

We have tried:

##set($categories = $meta.getDynamicField('category')) ##nope
    ##set($categories = $_XPathTool.selectNodes($r, "dynamic-metadata[name='category']/value")) ## nope
 ##set($categories = $meta.getDynamicField('category').value) ##nope
##set($categories = $meta.getDynamicField('category').values) ##nope
##set($categories = $meta.getDynamicField('category').textValue) ##nope
##set($categories = $meta.getDynamicField('category').textValues) ##nope
    ##foreach($cate in $categories)
       ##set($category = $cate.value)

How can we return (concatenate) the values for our multi-select dynamic metadata field?

Thanks in advance,
Jason H.

  1. 1 Posted by Ryan Griffith on 03 Mar, 2016 08:41 PM

    Ryan Griffith's Avatar

    Hi Jason,

    When you have a moment, take a look at my response to this similar discussion for additional information on how to access the values from a multi-select field.

    This particular discussion refers to structured data, but it should be the same scenario for dynamic metadata fields.

    Please let me know if you have any questions.


  2. 2 Posted by jason.c.hoyt on 06 Mar, 2016 06:48 PM

    jason.c.hoyt's Avatar

    Thanks for the direction. the following worked for us:

    #set($category = [])
    #set($categories = $meta.getDynamicField('category').values)
    #foreach($cate in $categories)
    #set($success = $category.add($cate)) ##using #set to silence the result

    ${_DisplayTool.list($category," AND "," AND ","")}

    - Jason H.

  3. 3 Posted by Ryan Griffith on 07 Mar, 2016 01:24 PM

    Ryan Griffith's Avatar

    Not a problem at all, Jason. I am glad to hear I was able to help point you in the right direction.

    I'm going to go ahead and close this discussion, please feel free to comment or reply to re-open if you have any additional questions.

    Have a great day!

  4. Ryan Griffith closed this discussion on 07 Mar, 2016 01:24 PM.

Discussions are closed to public comments.
If you need help with Cascade CMS please start a new discussion.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac


26 Aug, 2016 01:19 PM
25 Aug, 2016 03:02 PM
25 Aug, 2016 12:50 PM
24 Aug, 2016 08:43 PM
24 Aug, 2016 07:20 PM
21 Aug, 2016 01:20 PM