1

我在 API 中看到有一种方法可以获取 UpdateDate 字段。有没有办法确定谁对特定内容节点进行了最后一次更新?换句话说,最后编辑特定节点的人的用户 ID?

这是我尝试使用的一些代码:

Document[] releaseDocs = Document.GetRootDocuments();
User currentUser = User.GetCurrent();

foreach (var doc in releaseDocs)
{ 
   docPermissions = currentUser.GetPermissions(doc.Path);
   if ((docPermissions.Contains("F")) && (docPermissions.Contains("U")))
   {
      if (doc.HasPendingChanges())
      {
         if (doc.ParentId > -1)
         {
              lblPageContent += doc.Writer.Name;
         }
      }
   }
}
4

2 回答 2

1

我对此进行了更多研究,虽然 writerID 和 writerName 应该存储最后一个编辑器,但 Umbraco 中似乎存在一个错误。他们的支持建议创建一个使用编辑器用户数据更新的隐藏字段,所以这是我目前的临时工作。

于 2012-08-13T15:57:37.713 回答
0

您可以尝试使用相同的方式writerName,如下所示:writerIDUpdateDate

如果你使用 Razor,你可以使用如下:

@Model.writerName
@Model.writerID

在 XSLT 中:

<xsl:value-of select="$currentpage/@writerName" />
<xsl:value-of select="$currentpage/@writerID" />

在 C# 用户控件中:

using System;
using umbraco.NodeFactory;

namespace UmbracoTestingProj
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Node node = Node.GetCurrent();
            int writerId = node.WriterID;
            string wrtierName = node.WriterName;
        }
    }
}

我希望这会有所帮助,

如果您有任何问题,请在下方评论

于 2012-08-08T14:58:43.167 回答