生成Sitecore断开链接报告的SQL脚本是什么
我正在帮助我们的编辑清理断开的链接,并一直在寻找以下问题的答案:生成Sitecore断开链接报告的SQL脚本是什么,sitecore,Sitecore,我正在帮助我们的编辑清理断开的链接,并一直在寻找以下问题的答案: 断开的链接报告无法导出或排序,因此它不是很有用(我们有许多断开的链接~2000)。是否有可以运行的SQL脚本来创建相同的报告 如果编辑器修复了链接,则重新运行报告似乎不会从报告中删除该项。她每次都要重建链接数据库吗 菜单中的链接按钮很有用,但它列出了所有版本的参考者。是否存在只查找最新版本的SQL脚本 删除或存档项目并让Sitecore删除断开的链接时,是否会发布所有受影响的项目 由于未认真维护,我们正在处理一份大型报告(约200
在
Core
数据库中,您可以检查单击断开链接报告时执行的操作(定义该报告的项目位于:/sitecore/content/Documents and settings/All users/Start menu/Right/Reporting Tools/Scan for breaked Links
启动的应用程序是
/Applications/Tools/breaked Links.aspx
,因此如果我们查看*webroot*/sitecore/shell/Applications/Tools/breaked Links/breaked Links.xml
,我们可以看到用于它的代码是sitecore.shell.Applications.Tools.BrokenLinks.BrokenLinks表单
,位于sitecore.Client
asse姆布雷
使用您可以看到它正在执行什么。对于您的需求,我认为最简单的方法是创建您自己的BrokenLinksForm版本,可能只是在其上添加一个导出功能,或者修改代码,使其只使用最新版本。快速查看,我认为代码需要更改(实际上在嵌套的扫描仪类中)是:
您可以检查链接项是否为最新版本,可以使用
...
var version = link.GetSourceItem();
if (version.Versions.GetLatestVersion().Version == link.SourceItemVersion)
{
list.Add(link);
}
...
当然,您还可以添加一些排序功能:-)
它不会使用菜单中的“链接”按钮进行一对一的翻译,但它会为您提供一些指向正确方向的指针
至于你的第二个问题:我认为是的,链接数据库确实需要重建。我不知道Sitecore是否默认设置了时间表,但你可以在web.config的
节点中创建自己的代理,在X时间后执行此操作
最后一个问题:如果您删除或存档一个项目,并让Sitecore删除断开的链接,默认情况下,受影响的项目将不会发布。如果您设置了自动发布,它当然会显示出来
...
var version = link.GetSourceItem();
if (version.Versions.GetLatestVersion().Version == link.SourceItemVersion)
{
list.Add(link);
}
...