2012-05-09 4 views
17

Я пытаюсь создать собственный развертыватель в Tridion 2011 SP1, который может индексировать компонент в экземпляр solr после опубликования. Все работает нормально, но я столкнулся с проблемой, связанной с тем, как он индексирует поля компонентов.Доступ к полям компонента из настраиваемого развертывателя

Я могу получить доступ к полям метаданных в порядке, используя метод Component.getCustomMeta() и анализируя XML. Однако доступ к нормальным полям кажется невозможным без чтения в файле, который выводится и анализирует вывод. Это не совсем возможно, так как разметка может измениться, и, похоже, это долгий путь, делая то, что должно (надеюсь) быть простым.

У меня был трал по документам, и, похоже, нет ничего доступного, чтобы получить значения полей, так что я в затруднении здесь, и мне нужно будет разобрать результат или я что-то пропущу где-нибудь?

ответ

12

Поля содержимого не отображаются как таковые на стороне доставки, содержимое отображается как, что не удивительно, «содержание».

Если вам действительно нужны поля, вам необходимо:

  1. Производят «распознаваем» выход для компонентных презентаций
  2. разбирает компонентов презентации, как они публикуются.

Посмотрите на такие применения, как DD4T для аналогичных подходов.

Вкратце - вы не можете этого сделать, потому что Tridion не выставляет его из коробки. Единственный способ сделать это - изменить формат вывода контента через шаблон.

4

Мы выполнили альтернативное обходное решение для достижения аналогичного требования. Одной из сторон с реализацией является дополнительный рендеринг Component Presentations в XML и дублирование хранилища xml в брокере.

Вот что мы сделали:

  1. Создано Dynamic CT (XML представление содержания) GetComponentAsXML и отображается на все схемы
  2. Все Шаблоны страниц имеет C# TBB, просматривающий содержимое, нам нужно нажать на ГУМЗ
  3. C# TBB делает RenderComponentPresentation с выше Dynamic CT GetComponentAsXML, это толкает XML (engine.RenderComponentPresentation (component.Id, componentTemplateURI)
  4. Deployer теперь получает содержимое в формате XML, в (например, ascx, emebedded на странице и т. д.)

Надеемся, что эта информация поможет.

+0

Спасибо, Рам, это похоже на разумный путь. В настоящее время я просматриваю систему событий, чтобы связать обработчик событий для публикации/публикации статей и динамических CP. Кажется, все идет хорошо, но если это не сработает, я посмотрю что-то вроде того, что вы описали – ajwhitehead88

Смежные вопросы