Permitir que los campos de un componente vinculado sean editables se ha introducido en SiteEdit 2009 SP2. El front-end de SiteEdit funciona en base al SiteEdit command language que está integrado en el HTML que obtiene del servidor de transferencia.
Digamos que usted tiene un solo componente de allí:
<div class="cp">
<!-- Start SiteEdit Component Presentation: {"ID" : "cp_1",
"ComponentID" : "tcm:12-549", "ComponentTemplateID" : "tcm:12-568-32",
"ComponentVersion" : 5, "IsQueryBased" : false } -->
<label>Title: </label>
<span>
<!-- Start SiteEdit Component Field: {"ID": "cf_1",
"XPath": "tcm:Content/custom:Content/custom:Title",
"IsMultiValued":false} -->
Tips for getting insurance when you have a pre-existing condition
</span>
</div>
Esos Start SiteEdit
comentarios en los que hay comandos que su HTML da a SiteEdit y se puede ver la forma en que marcan la Presentación de componentes y el campo de título.
Si represente los campos de un componente relacionado, es necesario tener también un correspondiente comando Presentación de componentes así:
<div class="cp">
<!-- Start SiteEdit Component Presentation: {"ID" : "cp_1",
"ComponentID": "tcm:12-54", "ComponentTemplateID": "tcm:12-56-32",
"ComponentVersion" : 5, "IsQueryBased" : false } -->
<label>Title: </label>
<span>
<!-- Start SiteEdit Component Field: {"ID": "cf_1",
"XPath": "tcm:Content/custom:Content/custom:Title",
"IsMultiValued":false} -->
Tips for getting insurance when you have a pre-existing condition
</span>
<br />
<div class="cp">
<!-- Start SiteEdit Component Presentation: {"ID" : "cp_2",
"ComponentID": "tcm:12-85", "ComponentTemplateID": "tcm:12-60-32",
"ComponentVersion" : 2, "IsQueryBased" : true } -->
<label>Byline: </label>
<span>
<!-- Start SiteEdit Component Field: {"ID": "cf_2",
"XPath": "tcm:Metadata/custom:Metadata/custom:ByLine",
"IsMultiValued":false} -->
"It's a huge problem, because ..." says one expert.
</span>
<br />
<label>Copyright: </label>
<span>
<!-- Start SiteEdit Component Field: {"ID": "cf_3",
"XPath": "tcm:Metadata/custom:Metadata/custom:Copyright",
"IsMultiValued":false} -->
Getty Images
</span>
</div>
</div>
El ahora hay dos Start SiteEdit Component Presentation
comandos, uno para el componente externo y otro para el Componente vinculado. Una cosa importante a tener en cuenta aquí es que la propiedad IsQueryBased de la Presentación de componente anidada debe establecerse en verdadero. Esto le dice al front-end de SiteEdit que no se supone que la Presentación de componente esté presente en el XML de página que recupera de Tridion.
Al front-end de SiteEdit no le importa cómo se colocan los comandos en el HTML.
Lo más habitual es que las personas llamen al RenderComponentPresentation
y RenderComponentField
, que marca las partes correspondientes. Pero, por desgracia la función RenderComponentField
sólo se puede utilizar para hacer campos de la llamada "Componente contexto", que se ve así:
Item component = _package.GetByType(ContentType.Component);
Esto significa que en un solo DWT todas las llamadas a RenderComponentField
trabajarán en el mismo contexto Componente. Por lo tanto, nunca puede llamar al RenderComponentField
en un solo DWT para representar campos de dos componentes diferentes.
tiene dos opciones para resolver este:
- llamada
RenderComponentPresentation
para el componente ligado
- Prestar al
Start SiteEdit Component Presentation
y Start SiteEdit Component Field
ordena a sí mismo en el DWT
La opción 1 es el más limpio de separación se puede obtener: dado que está renderizando campos de otro Componente, esencialmente está renderizando otra Presentación de Componente. Si se divide a cabo el diseño de los campos vinculados a una DWT separada y construir un CT alrededor de eso, puede hacerla como este en su DWT principal:
@@RenderComponentPresentation(Component.Fields.Name, "tcm:1-2-32")@@
Walter explicó mejor en su article on Tridion templating:
Dado que el alcance de esta plantilla Dreamweaver está limitado a mostrar los campos de componentes actuales, es necesario un paso adicional utilizando la función RenderComponentPresentation. Necesitamos pasar el URI TCM del componente multimedia a esta función, junto con el URI TCM de otra plantilla Dreamweaver.
A pesar de que puede acceder a más TC y la ETAP, esos ETAP será mucho más simple ya que ahora puede utilizar RenderComponentField
en ellos como de costumbre.
La opción 2 realmente solo significa que está produciendo los comentarios HTML con los comandos SiteEdit en su DWT. Dado que el command language está documentado como parte de la API (ver enlace arriba) hay pocas posibilidades de que cambie en futuras versiones de SiteEdit 2009.
Disculpe la larga historia, usted desencadenó un caso de uso complicado aquí . Espero que tenga sentido.
Muchas gracias por la información – Patan