Umbraco - обновить родительский узел в дереве контента из обработчика действий - PullRequest
1 голос
/ 21 января 2012

Я видел похожие посты по этому поводу на форуме umbraco, но ни один из прочитанных мною вопросов не решил мою проблему.

У меня есть обработчик действий, который вызывается при публикации узла. В заключение я хотел бы, чтобы обработчик действий обновлял дерево контента, начиная с родительского узла.

Предположим следующую структуру:

  • Z
    • Za
    • Zi
    • Zu

Предположим, я публикую узел "Zi". Я бы хотел, чтобы папка «Z» обновилась (и оставила «Zi» выделенным в редакторе).

Возможно ли это?

Самое близкое, что мне удалось получить, это использовать

umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Parent.Path, true);

Это обновило дерево, но также свернуло все узлы. Я бы хотел, чтобы узел "Z" был расширен в примере, который я привел выше.

1 Ответ

4 голосов
/ 23 января 2012

Чтобы сохранить подпапки ( Za , Zi , Zu ) открытыми и выделить Zi , вы должны пройти путьзи, а не путь Z .Это обновит и выделит Zi , но также обновит поддерево для Z .

So-

umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Path, true);

Если Z не обновляется достаточно , тогда вы можете сначала вызвать SyncTree для Z , затем для Zi .

umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Path, true);
umbraco.BasePages.BasePage.Current.ClientTools.SyncTree(doc.Parent.Path, true);

В конечном итоге эти вызовы заканчиваются как javascript на странице.В Umbraco 4.7.0 (я не пробовал ничего более нового) вызов -

UmbClientMgr.mainTree().syncTree('-1,1000,10001', true);SyncTree("-1,1000,1001", true);

- заканчивается как -

UmbClientMgr.mainTree().syncTree('-1,1000,1001', true);

- в javascript страницы, когда страницаhtml возвращается.

Таким образом, вывод этого javascript напрямую вместо использования UmbClientMgr позволит вам вставить несколько строк.

На практике вызов пути родительского узла закроет поддерево родительского узла и обновитродительский узел.Последующий вызов дочернего узла раскроет родительское поддерево, чтобы показать и выделить дочерний узел.

...