Umbraco 6:如何将新创建的节点放在首位

时间:2014-02-26 05:35:22

标签: umbraco umbraco6

在Umbraco 6中,当你创建一个新节点时,它被放在底部 如果您希望它位于顶部,您必须手动对其进行排序。

默认情况下,如何让新节点显示在顶部?

2 个答案:

答案 0 :(得分:1)

您可以创建一个事件处理程序,在创建新节点时更改节点的排序顺序。有关实现自己的处理程序的详细信息,请参阅Application startup events & event registration

粗略的未经考验的例子,我相信你可以做得更优雅,但应该指出你正确的方向:

public class YourApplicationEventHandlerClassName : ApplicationEventHandler
{
    protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
    {
      ContentService.Created += ContentServiceCreated;
    }

    private void ContentServiceCreated(IContentService sender, NewEventArgs<IContent> e)
    {
      var cs = ApplicationContext.Current.Services.ContentService;
      var content = e.Entity;
      var parentNode = content.Parent();

      content.SortOrder = parentNode.Children().OrderBy(n => n.SortOrder).First().SortOrder - 1;
      cs.Save(content);
    }
}

答案 1 :(得分:1)

ContentService.Created事件对我不起作用。进行了一些战斗,但在v7的{​​{1}}中,我使用了Umbraco事件,对脏属性进行了一些双重检查,以确保您不会在节省无限的情况下循环:

ContentService.Saved