在Umbraco 6中,当你创建一个新节点时,它被放在底部 如果您希望它位于顶部,您必须手动对其进行排序。
默认情况下,如何让新节点显示在顶部?
答案 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