Umbraco 4.7 - 在站点根级别创建的节点将保存到umbracoNode表,其中level = 2

时间:2011-12-05 23:39:50

标签: c# umbraco

以下是我的内容树的简化版本。

- Content
    - Articles
        - Article 1
    - About Us

假设我添加了2个节点,一个作为文章的子节点,另一个作为根级别。我的树现在看起来像这样。

- Content
    - Articles
        - Article 1
        - Article 2
    - About Us
    - Terms

Article 2Terms都保存到umbracoNode表中,“level”设置为2.这不是Terms的正确级别。它的等级应为1。

这导致发布失败,特别是在umbraco.cms.presentation.editContent.Publish:

if (_document.Level == 1 
    || new cms.businesslogic.web.Document(_document.Parent.Id).Published)
{
    // Code that publishes the node
}

发生的事情是,由于等级不等于1,它会评估条件的第二部分。使用当前节点的父标识(-1)实例化Document后,它将检查具有该标识的cmsContentVersion条目。但是,它是根节点,并且根目录的cmsContentVersion中没有任何内容,所以它就是kaboom。

可能有或没有兴趣的一些事情:

  • 我们正在从v3.6升级 - > V4.7
  • 右键单击节点并发布作品
  • 右键单击和发布后文档的链接只是#,这也是错误的。我不确定这是否相关。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

修复实际上最终非常简单,希望这可以让别人头疼。

我只需要将level更新为0以获取根音(在更新之前它是1)。

UPDATE umbracoNode 
SET [level] = 0 
WHERE id = -1

我认为这是版本3的一些工件,由于某种原因,在升级之前没有解决。