We would like to remove an old catalog item. Before we do that, editors want to manually replace and configure a different catalog item where the old one is currently used. Is there an easy way to list all locations (e.g. sitemap’s) where a given catalog item is used?
I’ve started writing code that follows references in the reverse direction to finally end up in a sitemap item, but I figure there might be a better way that I don’t know of.
Your catalog item is copied into your configuration in the workspace when used. If your catalog item is named newslist, you can search for containeritemcomponents with that name. You can do this from the repository servlet . Use a query like:
You can do this from Java code or the Groovy updater as well of course.
Thanks for your response. I understand that a simple query can give me all occurrences of a given node. What I’m struggling with is how to translate that occurrence to something editors can use (such as sitemap) to find it in the channel manager and start editing.
My first instinct tells me: Given a hst:containeritemcomponent I could look up the tree to find a hst:containercomponent. Then I can query for a hst:containercomponentreference that references that component. Then I could go up the tree again to find a hst:component, which is ultimately referenced by a hst:sitemapitem. However, this seems verbose and error-prone, so I was hoping for a better way.
Ah I see. Unfortunately you will have to work backwards like you think. Might be a nice idea for a plugin/improvement but afaik nothing like that is on the roadmap.