Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

How to access multifield values of a design dialog in sightly

Avatar

Level 2

I have multifield (granite/ui/components/coral/foundation/form/multifield) in a design dialog.  And the values are being saved in the design template (/etc/designs/<myapp>/jcr:content/<mytemplate>/<mymultifield>/item[n]).

How can I access these values in my sightly template.

I was trying something like this ${currentStyle.<mymultifield>.listChildren}, but its not working

Please help.  Thanks in advance.

I am on version 6.3

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi ybharath264

  In your model , you can inject currentStyle as below. Once you get this

1579190_pastedImage_0.png

After injecting the same , you can use it as below (just a sample) . You can use the Style ("The Adobe AEM Quickstart and Web Application.") methods

@PostConstruct
protected void init() {

   try {

   pageList = new ArrayList<SimplePage>();
  long absParent = currentStyle.get("absParent", 2L);

........

......

........

}

catch (Exception e) {

   LOG.error("Exception:", e);
   }

}

Hope this helps. Happy coding

Thanks

Veena

View solution in original post

4 Replies

Avatar

Community Advisor

Hi,

To access multifield values, you have to go with java or JS Use API, similar to dialog multifield value and return as list and then use in HTL.

Avatar

Correct answer by
Community Advisor

Hi ybharath264

  In your model , you can inject currentStyle as below. Once you get this

1579190_pastedImage_0.png

After injecting the same , you can use it as below (just a sample) . You can use the Style ("The Adobe AEM Quickstart and Web Application.") methods

@PostConstruct
protected void init() {

   try {

   pageList = new ArrayList<SimplePage>();
  long absParent = currentStyle.get("absParent", 2L);

........

......

........

}

catch (Exception e) {

   LOG.error("Exception:", e);
   }

}

Hope this helps. Happy coding

Thanks

Veena

Avatar

Level 3

You can access directly from HTL

SCREENSHOT (with the name of the design multifield property I am trying to access) :

1759558_pastedImage_0.png

CODE:

<div class="container">

  <sly

          data-sly-test="${currentStyle}"

       data-sly-use.xtcontainerstyleResource="${currentStyle.path}">

    <div data-sly-test="${xtcontainerstyleResource}" class="${currentStyle.containerCSSClasses}">

      <sly data-sly-test="${xtcontainerstyleResource.hasChildren}"

           data-sly-list="${xtcontainerstyleResource.listChildren}">

        <sly data-sly-test="${item.name == 'divElements'}"

             data-sly-list="${item.listChildren}">

          <div class="${item.cssClass}">

            <sly data-sly-resource="${ item.name @ resourceType='wcm/foundation/components/responsivegrid' }"></sly>

          </div>

        </sly>

      </sly>

    </div>

  </sly>

  <sly data-sly-test="${!currentStyle}">

    <sly data-sly-resource="${ item.name @ resourceType='wcm/foundation/components/responsivegrid' }"></sly>

</div>

Avatar

Level 2
ybharath64: Did you happen to resolve this problem ? If yes, can you please help with snippet of code for understanding.