Как прочитать URL-адрес страницы Tridion из публикации с использованием основных служб?

#tridion #tridion-core-services

#tridion #tridion-core-services

Вопрос:

У меня есть список URL-адресов страниц Tridion на листе Excel, который должен быть не опубликован при нажатии кнопки, для которой я разрабатываю пользовательскую страницу. Как мне прочитать URL из публикации.? Например, URL-адрес выглядит как «https://www.example.com/us/en/abc/cde/index.html » (us/ en — страна / язык; abc- папка в структурной группе, cde- подпапка в abc, index.html это страница) Теперь index.html должно быть неопубликовано.

Ответ №1:

Если я вас правильно понял, у вас есть URL-адрес страницы, и вы хотите найти соответствующую страницу в Tridion. Сначала плохие новости: основная служба (CM API) не поддерживает «поиск по URL». Быстрый и грязный подход заключался бы в использовании CD API для извлечения страницы. Это вернет вам страницу назад, которая имеет свойство ID. Затем вы можете использовать основную службу для отмены публикации страницы.

Вы также можете сделать это с помощью чисто базового подхода к обслуживанию, но это немного сложнее и медленнее. Это выглядит так:

  • Начните с каталога верхнего уровня (в вашем примере «us»).
  • Перечислите все структурные группы внутри корня, используя такой фильтр:

    var filter = new OrganizationalItemItemsFilterData() { Типы элементов = новый тип элемента[] { Тип элемента.Страница }, IncludePathColumn = true };

  • Используйте Linq, чтобы найти каталог с каталогом верхнего уровня, который вам нужен
  • Перейдите к следующему каталогу и повторите с найденной дочерней структурной группой

Комментарии:

1. Спасибо Quirijin, но, я полагаю, на прохождение пути действительно потребуется много времени, а у меня почти 3000 URL-адресов страниц в таблице Excel.

2. Вот почему я впервые предложил использовать CD API. Это было бы намного быстрее.