Is there an easy way to propagate the changes to a template in code to the pages that use that template? Without making brand new pages.
I have added components and moved them around.
Solved! Go to Solution.
Views
Replies
Total Likes
You can use a Groovy script to update existing pages that use the modified template.
You can use a Groovy script to update existing pages that use the modified template.
Curl Command, Groovy script & Managed Controlled Process.
Hi @rkody
No easy way. But rewarding way, yes.
You can also develop you own TouchUI tool, an integrate it into your project. For the beginning I imagine a simple page with a field for a path to update and a field for a template to lookup for. Of course you can refine it and make smarter by the time, but for now you might start with that.
Few considerations:
This approach using groovy might work
def resolver = getResourceResolver()
try {
String templatePath = "/content/my-site/templates/my-template"
String componentPath = "/apps/my-site/components/my-component"
Resource templateResource = resolver.getResource(templatePath)
if (templateResource != null) {
Node templateNode = templateResource.adaptTo(Node.class)
Node componentNode = templateNode.addNode("myNewComponent", "cq:Component")
componentNode.setProperty("sling:resourceType", componentPath)
componentNode.setProperty("cq:template", templatePath)
componentNode.setProperty("myCustomProperty", "value")
// Save the changes
templateNode.getSession().save()
println "Component added successfully!"
} else {
println "Template not found!"
}
} catch (RepositoryException e) {
println "An error occurred: ${e.message}"
} finally {
if (resolver != null) {
resolver.close()
}
}
@rkody Are you using an editable or static template here?
If you modify the structure or policies of an editable template, the changes are automatically propagated to all pages that inherit from that template.
You could also write a script to update the affected pages programmatically like Groovy.
If the static template references a server-side script, any changes you make in the script will automatically be reflected on all pages that use the template.
Views
Likes
Replies
Views
Like
Replies