Umbraco, как публиковать со всеми неопубликованными подчиненными узлами с помощью Umbraco API - PullRequest
2 голосов
/ 15 марта 2012

Я обнаружил, что метод PublishWithSubs() просто может публиковать узлы первого уровня родительского узла.

doc.PublishWithSubs(new User(0));

Как можно опубликовать все неопубликованные узлы в одном родительском узле, независимо от того, насколько глубока неопубликованнаяузлы есть?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 марта 2012

В классе Document существует метод PublishWithChildrenWithResult().Согласно исходному коду, это будет рекурсивно публиковать весь контент в ветке:

   public bool PublishWithChildrenWithResult(User u)
    {
        if (PublishWithResult(u))
        {
            foreach (cms.businesslogic.web.Document dc in Children.ToList())
            {
                dc.PublishWithChildrenWithResult(u);
            }
        }
        else
        {
            return false;
        }

        return true;
    }
0 голосов
/ 15 августа 2017

Используя более новый API ContentService, вы можете сделать это следующим образом:

var cs = ApplicationContext.Current.Services.ContentService;    
cs.PublishWithChildrenWithStatus(nodeToPublish, includeUnpublished:true)

Последний параметр позволяет вам указать, хотите ли вы публиковать также неопубликованные потомки.Этот метод немного не назван, так как он публикует всех потомков, а не только детей.

...