aem - 如果该组件存在于该页面中,则仅选择 AEM 中模板的特定页面
问题描述
我在 AEM 中有一个模板,我必须在其中选择组件存在于页面中的模板的所有页面。
当前查询:
SELECT * FROM [cq:PageContent] AS page
WHERE ISDESCENDANTNODE(page, '/content')
AND [cq:template]="/conf/we-retail/settings/wcm/templates/experience-page"
这将返回所有页面,但我必须返回选择性页面。例如,当前模板中存在2个文本组件,其中一个文本组件在页面P1上被解锁和修改。现在该组件已在页面 p1 上创建。
我必须在结果中返回那个 P1 页面
解决方案
您可以通过加入来实现这一点:
SELECT page.*
FROM [nt:unstructured] AS component
INNER JOIN [cq:PageContent] AS page
ON ISDESCENDANTNODE(component, page)
WHERE component.[sling:resourceType] = 'your/text/node/resource/type/here'
AND ISDESCENDANTNODE(page, '/content')
AND page.[cq:template]="/conf/we-retail/settings/wcm/templates/experience-page"
但是,除非您拥有所有正确的索引,否则这可能是一个缓慢的查询。此外,它将返回包含此组件多个实例的页面的重复条目(我尝试使用SELECT DISTINCT
,但没有帮助)。
推荐阅读
- reactjs - 第一次调用函数后,应用程序中的状态不会改变。需要两次尝试才能改变
- amazon-ec2 - 在 AWS EC2 上加载 torch.hub.load('pytorch/fairseq', 'roberta.large.mnli') 时出错
- jquery - SwiperJS Slider 加载后变平
- java - 您如何在 JAR(背景音乐)中播放长音频剪辑?
- android - Android底部导航视图左右有WHITE SPACE
- c++ - 在 VAO 中使用多个 VBO
- javascript - 尝试使用 puppeteer 抓取网站并取回空对象
- javascript - event.target 的脚本修订
- django - Django:我在哪里可以找到过去 1 年的用户登录、注销活动
- r - 在 R 中强制设置条形图的大小