Hi All,
I have a business use case where I want to access component style system authored in editable template policy. I looked for an API and nothing similar available.
There is a property same in my content component node with cq:styleId. usiing this style id I want to access my style name authored in component style system as template policy.
Thanks in Advance.
Solved! Go to Solution.
Hi @toimrank,
We can write a query to get the style node (configured as policy) with the Id from the component node available under respective page content.
(Style node in policy will have details of style label, style class and style id - Sample screenshot for reference below)
Sample query:
path=/conf/yourproject/settings/wcm/policies
type=nt:unstructured
1_property=cq:styleId
1_property.1_value=1590089010715
1_property.2_value=1590089575644
p.limit=-1
Where
To be implemented in Sling Models or WCMUsePojo and expose the style class via getters for access in sightly.
Screenshot for reference:
Hi @toimrank,
We can write a query to get the style node (configured as policy) with the Id from the component node available under respective page content.
(Style node in policy will have details of style label, style class and style id - Sample screenshot for reference below)
Sample query:
path=/conf/yourproject/settings/wcm/policies
type=nt:unstructured
1_property=cq:styleId
1_property.1_value=1590089010715
1_property.2_value=1590089575644
p.limit=-1
Where
To be implemented in Sling Models or WCMUsePojo and expose the style class via getters for access in sightly.
Screenshot for reference:
Hi @toimrank,
I don't think there is a straight forward utility/sightly implicit objects for getting Style Id/CSS name configured via Style System.
Reason being Styles Tab available as part of Policy is part of the design configuration of a component.
In other words, Styles tab has container resource with Coral UI 3 multifield - Like any other dialog field resource that is part of Design dialog of a component.
As a whole, we can get to the policy applied for a specific content resource which is via ContentPolicyManager API as @divanshug96 suggested.
ContentPolicyManager cntPolicyMgr = rescResolver.adaptTo(ContentPolicyManager.class);
ContentPolicy cntPolicy = cntPolicyMgr.getPolicy(currentResource);
String cntPolicyPath = cntPolicy.getPath(); // This will return the policy path from /conf
However to get to the style class by this way, need further manipulation as "cq:styleGroups" is child node of policy path.
Hi toimrank
Please use the following to retrieve policy manager
ContentPolicyManager policyManager = resourceResolver.adaptTo(ContentPolicyManager.class);
ValueMap policyProperties = contentPolicy.getProperties();
Views
Likes
Replies