Как я могу изменить схему существующего компонента tridion - PullRequest
1 голос
/ 13 октября 2010

У меня есть несколько компонентов в tridion, которые настроены для конкретной схемы. Я хотел бы иметь возможность изменить схему для этих элементов на более новую схему. Новая схема сохраняет все существующие свойства, которые были у старой, поэтому потери данных не будет. В этой ситуации невозможно просто изменить существующую схему.

Кто-нибудь знает, возможно ли это сделать?

Ответы [ 5 ]

2 голосов
/ 22 августа 2011

Вы можете изменить схему компонента, просто назначив новое значение свойству Schema компонента и сохранив его. Конечно, сохранение компонента потребует, чтобы компонент проверял соответствие новой схеме.

Тривиальный случай для этого - когда вы просто скопировали схему, и поэтому обе схемы идентичны. На практике, как правило, у вас есть причина для изменения схемы, и в этом случае вы, вероятно, захотите использовать GetXml () и UpdateXml () в компоненте и сделать XSLT-преобразование XML в нечто, совместимое с новой схемой. В этом случае вы можете просто обновить ссылку на схему в вашем XSLT.

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

1 голос
/ 30 декабря 2010

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

1 голос
/ 26 февраля 2011

Tridion Content Porter позволяет вам экспортировать контент и схемы из одной CMS в другую.Он также может использоваться для перемещения элементов между публикациями.Это один из вариантов «дублирования» схемы и ее содержимого для повторного использования (а также для резервного копирования любой работы перед изменением действующих данных!).

Будьте осторожны, чтобы не изменить пространство имен или любые поля XML,Хотелось бы сохранить (хотя описания и имя схемы в порядке).Чтобы быть уверенным, особенно с живыми данными, на всякий случай выполните чистый экспорт, прежде чем использовать любой из этих ответов.

0 голосов
/ 01 марта 2011

Я смог сделать это, написав несколько запросов для замены имен схем и ссылок непосредственно в базе данных tridion.Он работал нормально, но я бы порекомендовал это, только если начальная схема ТОЧНО похожа на конечную схему.Иначе это сломает компоненты.

0 голосов
/ 30 декабря 2010

Невозможно изменить схему компонента Tridion через интерфейс Content Manager. Однако это может быть достигнуто с помощью «Пользовательской страницы», поскольку API позволяет изменять схему компонента с помощью кода.

Взято из документации SDL Tridion 2009 (Руководство по внедрению шаблонов (TOM.NET) 2009):

  • Класс: Tridion.ContentManager.ContentManagement.Component
  • Свойство: public Schema Schema {get; задавать; }
  • Описание: получение или установка схемы для содержимого и метаданных компонента.

На форумах разработчиков Tridion (TOPIC_ID = 2899) есть элемент (включая пример кода) об этом. Однако, поскольку это закрытый форум, я не уверен в законности воспроизведения кода здесь.

...