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

以下のようにwriterNamewriterID同じように使用してみてください。UpdateDate

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 に答える