Подтвердить что ты не робот

Несколько динамических сайтов SiteEdit на странице

У нас есть SiteEdit 2009 SP2 в SDL Tridion 2009 SP1, и он отлично работает для обычных опубликованных страниц. Он также работает нормально, если у нас есть одна динамическая презентация компонентов (DCP) на странице. Но когда у нас есть несколько DCP на странице, он берет только первый и игнорирует все остальные.

Вот мой код

<xsl:variable name="SE_CP_MarkUP">
<![CDATA[ <!-- Start SiteEdit Component Presentation: {"ID" : "cp_%ID%", "ComponentID" : "%ID%", "ComponentTemplateID" : "tcm:XX-XXXXX-32", "Version" : 0, "IsQueryBased" : true  } -->]]>

Я использую эту переменную в цикле

<xsl:value-of select="XXXX:RegexStringReplace($SE_CP_MarkUP,'%ID%',@ID)" disable-output-escaping="yes"/>

Пожалуйста, подскажите, что может быть проблемой?

Подробнее:

Сгенерированный HTML

    <div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287142", "ComponentID" : "tcm:13-287142", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 3, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287162", "ComponentID" : "tcm:13-287162", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 2, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287204", "ComponentID" : "tcm:13-287204", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 1, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287234", "ComponentID" : "tcm:13-287234", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 4, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287251", "ComponentID" : "tcm:13-287251", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 3, "IsQueryBased" : true  } -->
  HTMLConent
</div>

Настройки SiteEdit

<!-- SiteEdit Settings: { "PageID" : "tcm:13-287332-64", "PageVersion" : 2, "TargetTypeID" : "", "ComponentPresentationLocation" : 1, "BluePrinting" : { "PageContext" : "tcm:0-8-1", "ComponentContext" : "tcm:0-13-1", "PublishContext" : "tcm:0-13-1"}} -->

Я получаю над html во время выполнения. Я могу открыть только первый компонент, используя siteedit при зависании на первом CP, и ничего не произойдет, если я нахожусь на других CP.

Также на странице нет ошибки JS.

Спасибо, Викас Кумар

4b9b3361

Ответ 1

Разметка представления компонента SiteEdit всегда должна быть обернута в HTML-элемент, такой как DIV, например, таким образом SiteEdit может различать начало и конец вашего представления компонентов.

Итак, в вашем цикле вы должны вывести что-то вроде:

<div>
    <xsl:value-of select="XXXX:RegexStringReplace($SE_CP_MarkUP,'%ID%',@ID)" disable-output-escaping="yes"/>
    <!-- output the content here -->
</div>

Ответ 2

Спасибо, что посмотрел на это, я просто понял, что SiteEdit делает свою работу. Все разделители разметки SiteEdit имеют ту же абсолютную позицию, что и когда я нахожусь, div показывает вверху.

Я работаю с командой разработчиков, чтобы отсортировать ее.

Спасибо, Викас Кумар

Ответ 3

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

Я предполагаю, что вы оставили комментарий Setting из своего вопроса просто из соображений для краткости, не так ли?

Есть ли шанс, что вы можете дать нам весь HTML? Разумеется, удалите любой конфиденциальный контент, но, пожалуйста, убедитесь, что у вас все еще есть проблема после того, как вы это сделали.

Ответ 4

Вы уверены, что пользователь имеет права на все компоненты? И все они существуют

Вероятно, проще всего проверить инструменты разработчика вашего браузера. Найдите запрос GetComponentAndSchemas.

В теле этого запроса (так что часть, отправленная на сервер) вы найдете все Компоненты, которые запрашивает SiteEdit. Поэтому, если это не распространяется на все ваших Компонентов, он каким-то образом не нашел их в HTML.

Затем в ответе этого запроса вы должны найти Компоненты, которые были запрошены, плюс Схемы, на которых они основаны. Если некоторые компоненты отсутствуют, они как-то отфильтровываются на сервере. Скорее всего, потому что у пользователя нет прав, но также может быть, что они не существуют в публикации 13.

Ответ 5

Я столкнулся с той же проблемой, особенно если у вас есть теги html5 вокруг тегов span/div siteedit. Вы проверили эту статью (от Барта), это может помочь. Это помогло мне в моем случае.

http://www.sdltridionworld.com/articles/sdltridion2011/siteedit_zindex.aspx