【发布时间】:2012-04-12 06:25:52
【问题描述】:
是否可以获得 sitecore 中所有项目的列表,这些项目使用公共子布局或 XSLT 在演示选项卡中进行渲染,即假设有一个名为 layout1.ascx 的子布局被 5 个项目使用。是否可以获得按搜索方法列出的所有这 5 个项目的列表。
提前致谢。
问候, 迪维亚
【问题讨论】:
-
如果对您有用,请不要忘记将下面的答案标记为已接受的答案。我知道它对我有用!
标签: sitecore
是否可以获得 sitecore 中所有项目的列表,这些项目使用公共子布局或 XSLT 在演示选项卡中进行渲染,即假设有一个名为 layout1.ascx 的子布局被 5 个项目使用。是否可以获得按搜索方法列出的所有这 5 个项目的列表。
提前致谢。
问候, 迪维亚
【问题讨论】:
标签: sitecore
您可能需要分两步执行此操作(如果只有 1 个模板,则需要一步)。
您需要使用 Link 数据库。
查看这些“链接”的最简单方法是转到子布局或渲染并转到“导航”菜单,然后单击“链接”。这应该向您显示指向当前项目的所有项目以及当前项目指向的所有项目(即双向)。
这可能会给你一个模板和/或项目的列表(如果子布局直接设置在一个项目上)。
然后转到模板并查看如何执行相同操作以查看哪些项目具有对模板的引用。
这应该会显示哪些项目正在使用哪些子布局。
当然,这需要 Link 数据库已完成(应该自动完成,但您可以通过 Start > Control Panel > Databases > Rebuild Link Database 强制执行此操作)并且 Sublayouts 等绑定在 Sitecore 中..
我希望这会有所帮助。
【讨论】:
链接数据库建议很棒,但如果您的子布局被数百个项目使用,加载可能需要一点时间。
另一种选择是这种快速查询:
fast://*[@__Renderings='%{FAAD00AE-A089-4AEF-989C-73917660FF48}%' or @__Final Renderings='%{FAAD00AE-A089-4AEF-989C-73917660FF48}%']
这可以在开发人员中心的 Tools > XPath Builder 下运行(或者对于 Sitecore 8.x,XPath Builder 可以在 /sitecore/shell/default.aspx?xmlcontrol=IDE.XPath.Builder 中找到)。
Sitecore 9.x 不再支持 XPath Builder,但如果您安装了 Sitecore PowerShell Extensions,您仍然可以运行它。
可以运行以下命令:
Get-Item -Path "master:" -Query "fast://*[@__Renderings='%{FAAD00AE-A089-4AEF-989C-73917660FF48}%' or @__Final Renderings='%{FAAD00AE-A089-4AEF-989C-73917660FF48}%']"
根据需要更改上面的 guid。
【讨论】: