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

Если я посмотрю на идентификаторы компонента и полей, которые вы предоставили:

  1. Составная часть: tcm:32-204859 поле: cf_tcm:32-204267_title
  2. Составная часть: tcm:32-204268 поле: cf_tcm:32-204268_title
  3. Составная часть: tcm:32-204860 поле: cf_tcm:32-204269_title

Идентификатор в JSON используется только SiteEdit для обеспечения некоторой бессмысленной уникальности. Но в этом случае идентификатор поля, кажется, указывает, из какого компонента приходит поле.

Если вы затем внимательно посмотрите на данные, вы увидите, что для Компонента 2 поле указывает на тот же Компонент. Для Компонентов 1 и 3 поля фактически указывают на другой Компонент. Опять же, ID Свойства команд поля сами по себе не используются. Но связь между тем, что работает, и тем, что не кажется, довольно хорошо совпадает со знанием того, что SiteEdit загружает схему компонента, указанную в Component Presentation команда и не может найти поле в XPath, указанном в Component Field команда.

Я подозреваю, что в #1 и #3 вы поместили какой-то обычный компонент на страницу, но отображаете заголовок мультимедийного компонента, связанного с этим компонентом. В #2 вы, скорее всего, визуализируете заголовок MMC, который явно указан на странице.

Другие вопросы по тегам