Highlighted

Need Clarification in data-sly-resource

Avatar

Avatar

mudaliar847906

Avatar

mudaliar847906

mudaliar847906

01-10-2019

Hi Need to understand what is meaning of below line of code

<div data-sly-resource="${@path='FirstDivHeader', resourceType='foundation/components/parsys'}">

What is Used of @path in ablove example.

Replies

Highlighted

Avatar

Avatar

hamidk92094312

Employee

Avatar

hamidk92094312

Employee

hamidk92094312
Employee

01-10-2019

That is for manipulating the path of the resource. Please see the following document:

HTL Block Statements

Highlighted

Avatar

Avatar

jbrar

Employee

Avatar

jbrar

Employee

jbrar
Employee

01-10-2019

As per my understanding, this means rendering a resource which is located at path FirstDivHeader and has a resourcetype of "foundation/components/parsys"

More details below:

data-sly-resource:

  • Includes a rendered resource.
  • Element: always shown.
  • Content of element: replaced with the content of the resource.
  • Attribute value: required; the path to include.
  • Attribute identifier: none.

Includes a rendered resource from the same server, using an absolute or relative path. An implementation should create a new request context when retrieving the output.

Note: this is comparable to a <jsp:include page="" />.

<section data-sly-resource="./path"></section>

With an expression more options can be specified:

<!--/* Following statements are equivalent: */--> 
<section data-sly-resource="./path"></section>
<section data-sly-resource="${'./path'}"></section

<!--
/* Manipulating the path: */-->

<section data-sly-resource="${'my/path' @ appendPath='appended/path'}"></section>
<section data-sly-resource="${'my/path' @ prependPath='prepended/path'}"></section

<!--
/* Manipulating selectors: */-->

<section data-sly-resource="${'my/path' @ selectors='selector1.selector2'}">
</section> <section data-sly-resource="${'my/path' @ selectors=['selector1', 'selector2']}">
</section> <section data-sly-resource="${'my/path' @ addSelectors='selector1.selector2'}">
</section> <section data-sly-resource="${'my/path' @ addSelectors=['selector1', 'selector2']}">
</section> <section data-sly-resource="${'my/path' @ removeSelectors='selector1.selector2'}"></section>
<section data-sly-resource="${'my/path' @ removeSelectors=['selector1', 'selector2']}"></section>
<section data-sly-resource="${'my/path' @ removeSelectors}"></section

<!--
/* Forcing the type of the rendered resource: */-->

<section data-sly-resource="${'./path' @ resourceType='my/resource/type'}"></section>

The scope of the data-sly-resource statement isn't passed to the template of the included resource.

Highlighted

Avatar

Avatar

Vijayalakshmi_S

MVP

Avatar

Vijayalakshmi_S

MVP

Vijayalakshmi_S
MVP

01-10-2019

HI,

The use of "path" attribute in "data-sly-resource" :

When a component with the above snippet is included in a page, we would see a parsys being displayed and when we add any components within the parsys placeholder, behind the scene in the CRXDE, we would see the components available in the node hierarchy like below.

Let's say the page path is /content/xyx/abc.html

In CRXDE,  /content/xyx/abc/jcr:content/FirstDivHeader/componentname(that you would have included in that parsys)

In brief, it is part of the path with respect to the page where this snippet/component is being used.