SDL Tridion SiteEdit 2009 SP2 Ошибка XPath при редактировании некоторых компонентов
Я получаю следующую ошибку при попытке редактировать некоторые из моих презентаций компонентов с помощью SiteEdit.
Sys.FormatException: не удалось получить информацию о типе из XML-схемы компонента. Поле: cf_tcm:32-204267_title XPath: Контент / пользовательский: Контент / пользовательский:title[1]
Это странно, потому что некоторые Компоненты с одним и тем же шаблоном работают нормально (у них нет набора изображений, но те, у которых установлен набор изображений, не работают).
Вот код для моего CT:
<div class="column v-2 siteedit">
<!-- TemplateBeginIf cond = "Component.thumbnail" -->
<!-- TemplateBeginIf cond = "Component.image" -->
<a href="@@Component.Fields.image@@" class="fb ajax">
<!-- TemplateEndIf -->
<img src="@@Component.Fields.thumbnail@@" class="align-left"
alt="@@thumbnail0.Metadata.alt@@" height="69" width="99"/>
<!-- TemplateBeginIf cond = "Component.image" -->
</a>
<!-- TemplateEndIf -->
<!-- TemplateEndIf -->
<h2>
<tcdl:ComponentField name="title">@@Component.Fields.title@@</tcdl:ComponentField>
</h2>
<p>@@Component.Fields.summary@@</p>
</div>
(Я удалил другие редактируемые поля, просто чтобы убедиться, что это не проблема с конкретным полем)
Есть идеи?
Обновить
Как и просили, вот мой (анонимный) HTML, 1-й и 3-й компоненты имеют проблему, средний - нормально:
<div class="general-content columns-three">
<div class="column v-2 siteedit" style="height: 209px; ">
<!-- Start SiteEdit Component Presentation: {
"ID" : "97829119-68f0-4e41-9862-b042d480cb71",
"ComponentID" : "tcm:32-204859",
"ComponentTemplateID" : "tcm:32-204536-32",
"Version" : "2",
"IsQueryBased" : false
} -->
<a href="http://REDACTED:84/_images/REDACTED.png?__Proxy=0" class="fb ajax" target="_self">
<img src="/_images/REDACTED.gif" class="align-left" alt="REDACTED" height="69" width="99">
</a>
<h2>
<span style="">
<!-- Start SiteEdit Component Field: {
"ID" : "cf_tcm:32-204267_title",
"XPath" : "tcm:Content/custom:Content/custom:title[1]",
"IsMultiValued" : false
} -->REDACTED
</span>
</h2>
<p>REDACTED</p>
</div>
<div class="column v-2 siteedit" style="height: 209px; ">
<!-- Start SiteEdit Component Presentation: {
"ID" : "2933b5e0-2006-440d-bc03-2224650bdd7d",
"ComponentID" : "tcm:32-204268",
"ComponentTemplateID" : "tcm:32-204536-32",
"Version" : "5",
"IsQueryBased" : false
} -->
<h2> <span style="">
<!-- Start SiteEdit Component Field: {
"ID" : "cf_tcm:32-204268_title",
"XPath" : "tcm:Content/custom:Content/custom:title[1]",
"IsMultiValued" : false} -->REDACTED</span>
</h2>
<p>REDACTED</p>
</div>
<div class="column v-2 siteedit" style="height: 209px; ">
<!-- Start SiteEdit Component Presentation: {
"ID" : "fac3c467-7c71-4be9-b319-8a35524ee172",
"ComponentID" : "tcm:32-204860",
"ComponentTemplateID" : "tcm:32-204536-32",
"Version" : "2",
"IsQueryBased" : false
} -->
<a href="http://REDACTED:84/_images/REDACTED.png?__Proxy=0" class="fb ajax" target="_self">
<img src="/_images/REDACTED.gif" class="align-left" alt="REDACTED" height="69" width="99">
</a>
<h2> <span style="">
<!-- Start SiteEdit Component Field: {
"ID" : "cf_tcm:32-204269_title",
"XPath" : "tcm:Content/custom:Content/custom:title[1]",
"IsMultiValued" : false
} -->REDACTED</span>
</h2>
<p>REDACTED</p>
</div>
</div>
1 ответ
Я объяснил, когда здесь появляется это сообщение об ошибке: "Не удалось получить информацию о типе из XML-схемы компонента" при загрузке страницы в SiteEdit 2009
Ваш вариант использования может отличаться от этого вопроса, продукт всегда показывает это по одной и той же причине: он не может найти поле (которое идентифицируется в <!-- Start SiteEdit Component Field
команда) в текущем Компоненте (который идентифицирован во вложении <!-- Start SiteEdit Component Presentation
команда).
Учитывая ваше сообщение об ошибке:
cf_tcm: 32-204267_title XPath: Контент / пользовательский: Контент / пользовательский:title[1]
Вроде как Компонент tcm:32-204267
не имеет поля с именем title
,
В этих случаях всегда проще, если вы посмотрите на HTML, который SiteEdit завершает обработку, и то, что возвращает ваш сервер подготовки / предварительного просмотра. Найти title
поле и включающее его представление компонента и убедитесь, что действительно, что представление компонента имеет поле с именем title
,
Если вы хотите получить более прямой ответ на вопрос "что я делаю неправильно?", Добавьте соответствующие команды HTML-with-SiteEdit-к своему вопросу, и я обновлю свой ответ, чтобы соответствовать.
Обновление на основе предоставленного HTML
Если я посмотрю на идентификаторы компонента и полей, которые вы предоставили:
- Составная часть:
tcm:32-204859
поле:cf_tcm:32-204267_title
- Составная часть:
tcm:32-204268
поле:cf_tcm:32-204268_title
- Составная часть:
tcm:32-204860
поле:cf_tcm:32-204269_title
Идентификатор в JSON используется только SiteEdit для обеспечения некоторой бессмысленной уникальности. Но в этом случае идентификатор поля, кажется, указывает, из какого компонента приходит поле.
Если вы затем внимательно посмотрите на данные, вы увидите, что для Компонента 2 поле указывает на тот же Компонент. Для Компонентов 1 и 3 поля фактически указывают на другой Компонент. Опять же, ID
Свойства команд поля сами по себе не используются. Но связь между тем, что работает, и тем, что не кажется, довольно хорошо совпадает со знанием того, что SiteEdit загружает схему компонента, указанную в Component Presentation
команда и не может найти поле в XPath, указанном в Component Field
команда.
Я подозреваю, что в #1 и #3 вы поместили какой-то обычный компонент на страницу, но отображаете заголовок мультимедийного компонента, связанного с этим компонентом. В #2 вы, скорее всего, визуализируете заголовок MMC, который явно указан на странице.