2012-07-31 15 views
6

que estoy tratando de hacer aplicar una resolución personalizada para un componente como se describe aquí por Chris: http://www.tridiondeveloper.com/the-story-of-sdl-tridion-2011-custom-resolver-and-the-allowwriteoperationsintemplates-attribute¿Cómo eliminar elementos de la publicación usando un Tridion Resolver?

Quiero eliminar algunos de los binarios (en su mayoría de pdf) utilizados en los componentes y evitar que se editorial. Puedo obtener la lista de artículos usados ​​usando el método item.GetListUsedItems. ¿Cómo los elimino?

usando: Tridion 2009

+0

Podríamos interesarle que se comprometa con la [propuesta específica de Area 51 Tridion] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Regístrese con la misma cuenta SO si tiene un momento. –

Respuesta

9

En el momento de publicación del proceso de resolución determina que debería publicarse artículos, como cuando se publica un Grupo de Estructura, el valor predeterminado de resolución agregará todas las páginas en el Grupo de Estructura de la Transacción Publicar.

Los Resolvers solo se ocupan de los elementos de la Transacción de publicación que son directamente publicables, y esos son Páginas y Presentaciones dinámicas de componentes. Por lo tanto, un Resolver no maneja los componentes multimedia vinculados, los publica el código de la plantilla llamando al método AddBinary().

Si desea eliminar componentes multimedia de su acción de publicación, debe buscar en la plantilla de componente que los maneja (si se agregan al paquete, la acción de finalización predeterminada TBB normalmente los recoge y los publica). Pero tenga en cuenta que un Componente Multimedia debe publicarse al menos una vez más, nunca lo tendrá en su servidor de presentación.

+1

+1 para señalar la diferencia, @Bart. Frank van Puffelen diagramas de los dos enfoques (_implicit_ a través de código de plantilla/'AddBinary()' y _explicit_ a través de una publicación multimedia y plantillas de componentes dinámicos) en [TridionWorld] (http://www.sdltridionworld.com/community/2011_extensions/binaryeventtracker. aspx). –

3

Comprobar el siguiente fragmento de código para eliminar, es necesario comprobar si la multimedia es pdf o no, pero se te va. Aquí está el enlace de referencia muy bien explicado con el código de muestra también (el siguiente código es del mismo artículo).

http://www.tridiondeveloper.com/a-custom-resolver-in-practice

 Component component = (Component)item; 
     if (component.ComponentType == ComponentType.Multimedia) 
     { 
      foreach (ResolvedItem resolvedItem in originalResolveItemList) 
      { 
       if (resolvedItem.Item.Id != item.Id) 
       { 
        resolvedItems.Remove(resolvedItem); // to remove .. 
       } 
      } 
     } 
+0

Creo que la lista de elementos resueltos tiene componentes. Estoy tratando de eliminar el elemento binario dentro del componente – user1373140

+0

¿Cómo está publicando el binario dentro del Componente? ¿Es a través del código DWT? Si es a través de DWT, entonces ¿por qué quieres eliminar el binario utilizando el resolver ya que terminarás con un enlace binario roto? Si está publicando el código binario, el código anterior será suficiente con las condiciones de verificación de 'ComponentType.Multimedia' –

Cuestiones relacionadas