3

尝试使用 SiteEdit 编辑我的一些组件演示文稿时收到以下错误。

Sys.FormatException:无法从组件 xml 架构中获取类型信息。字段:cf_tcm:32-204267_title XPath: Content/custom:Content/custom: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,第一个和第三个组件有问题,中间一个很好:

<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>
4

1 回答 1

4

我解释了当该错误消息出现在这里时:“无法从组件 xml 架构中获取类型信息”在 SiteEdit 2009 中加载页面时

<!-- Start SiteEdit Component Field您的用例可能与该问题不同,产品总是出于相同的原因显示这一点:它在当前组件(在封闭命令中标识)中找不到字段(在命令中标识<!-- Start SiteEdit Component Presentation)。

鉴于您的错误信息:

cf_tcm:32-204267_title XPath: Content/custom:Content/custom:title[1]

似乎 Componenttcm:32-204267没有名为title.

在这些情况下,如果您查看 SiteEdit 最终处理的 HTML,那么您的登台/预览服务器返回的内容总是最简单的。找到该title字段及其封闭的 Component Presentation 并验证该 Component Presentation 确实有一个名为 的字段title

如果您想更直接地回答“我做错了什么?”,请将相关的 HTML-with-the-SiteEdit-commands 添加到您的问题中,我会更新我的答案以匹配。


根据提供的 HTML 更新

如果我查看您提供的组件和字段的 ID:

  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 中的 ID 仅由 SiteEdit 使用,以确保一些无意义的唯一性。但在这种情况下,字段 ID 似乎表明该字段来自哪个组件。

如果您随后仔细查看数据,您会发现对于组件 2,该字段指向同一个组件。对于组件 1 和 3,字段实际上指向另一个组件。同样,ID字段命令的属性本身并未使用。但是,有效与无效之间的关系似乎与 SiteEdit 加载包含Component Presentation命令中指示的组件架构并且无法在Component Field命令中指示的 XPath 中找到字段的知识非常吻合。

我怀疑在#1 和#3 中您在页面上放置了一些常规组件,但正在呈现链接该组件的多媒体组件的标题。在#2 中,您很可能会呈现显式放置在页面上的 MMC 的标题。

于 2012-06-07T15:18:32.390 回答