Попытка переместить элемент сайта в папку в дереве содержимого - PullRequest
3 голосов
/ 05 декабря 2011

Я создал структуру в дереве контента Sitecore следующим образом: Корневой элемент Home, основанный на шаблоне.Затем у меня есть ряд папок под элементом Home, названный по датам.

Я создаю шаблон команды, чтобы при добавлении нового элемента в элемент Home он автоматически перемещался под представленной папкой.к текущей дате.

Однако метод класса Item 'MoveTo принимает в качестве параметра только Item.Поэтому я понятия не имею, как сказать ему, чтобы переместить элемент в папку, так как папка не может быть представлена ​​как элемент?

Я провел некоторое копание и видел, что когда я помещаюэлемент непосредственно под папкой, он показывает другой ParentID, чем если бы я поместил его непосредственно под элементом «Домой», подразумевая, что папка действительно является элементом.Однако, когда я пытаюсь получить Предмет, представленный в Папке, я получаю ноль.

например Sitecore.Context.Database.Items["/sitecore/content/Home/30Nov2011"];

1 Ответ

5 голосов
/ 05 декабря 2011

Все в Sitecore - это элемент (даже папки), вы можете разрешить папку как элемент на основе path или GUID, используя объект Database.

var currentDb = Sitecore.Data.Database.GetDatabase("master");
var folderItem = currentDb.GetItem("/sitecore/content/Home/30Nov2011");
Sitecore.Context.Item.MoveTo(folderItem);

Edit: Поскольку вы работаете в среде редактора контента, вам необходимо явно указать ему, какую базу данных использовать (в данном случае базу данных master), поскольку область действия Context не будет содержать базу данных, на которую вы надеетесь.работать с.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...