生成Sitecore断开链接报告的SQL脚本是什么

生成Sitecore断开链接报告的SQL脚本是什么,sitecore,Sitecore,我正在帮助我们的编辑清理断开的链接,并一直在寻找以下问题的答案: 断开的链接报告无法导出或排序,因此它不是很有用(我们有许多断开的链接~2000)。是否有可以运行的SQL脚本来创建相同的报告 如果编辑器修复了链接,则重新运行报告似乎不会从报告中删除该项。她每次都要重建链接数据库吗 菜单中的链接按钮很有用,但它列出了所有版本的参考者。是否存在只查找最新版本的SQL脚本 删除或存档项目并让Sitecore删除断开的链接时,是否会发布所有受影响的项目 由于未认真维护,我们正在处理一份大型报告(约200

我正在帮助我们的编辑清理断开的链接,并一直在寻找以下问题的答案:

  • 断开的链接报告无法导出或排序,因此它不是很有用(我们有许多断开的链接~2000)。是否有可以运行的SQL脚本来创建相同的报告

  • 如果编辑器修复了链接,则重新运行报告似乎不会从报告中删除该项。她每次都要重建链接数据库吗

  • 菜单中的链接按钮很有用,但它列出了所有版本的参考者。是否存在只查找最新版本的SQL脚本

  • 删除或存档项目并让Sitecore删除断开的链接时,是否会发布所有受影响的项目

  • 由于未认真维护,我们正在处理一份大型报告(约2000项)。目标是将数量减少到100~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);
    }
    ...