sitecore获取受保护项目列表

时间:2014-01-20 01:57:09

标签: sitecore

有没有人知道如何在sitecore中获取受保护(以及之后不受保护的)所有项目的列表?

我已经搜索过了,但我没有找到任何相关结果。

提前致谢

这就是我到目前为止......

var homeItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath);
foreach (Item item in homeItem.Children)
{
   if (item.Locking.IsLocked())
    {
      //to do
    }
}

不幸的是,如果项目受到保护,则item.Locking.IsLocked不会返回。

2 个答案:

答案 0 :(得分:4)

按下保护或取消保护项目时,会调用此命令:

item:togglereadonly

这是保护或取消保护项目的方法的一部分:

public override void Execute(CommandContext context)
{
    if (context.Items.Length != 1)
        return;
    Item obj = context.Items[0];
    obj.Editing.BeginEdit();
    obj.Appearance.ReadOnly = !obj.Appearance.ReadOnly;
    obj.Editing.EndEdit();
    Log.Audit((object) this, "Toggle read only: {0}, value: {1}", AuditFormatter.FormatItem(obj), MainUtil.BoolToString(obj.Appearance.ReadOnly));
}

答案 1 :(得分:2)

找到解决方案

var homeItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath);
foreach (Item item in homeItem.Children)
{
    if (item.Appearance.ReadOnly)
    {
       //stuff here
    }
}

干杯

相关问题