¿Cómo eliminar elementos de la publicación con Tridion Resolver?

Estoy tratando de implementar una resolución personalizada para un componente como lo describe aquí Chris: http://www.tridiondeveloper.com/the-story-of-sdl-tridion-2011-custom-resolver-and-the-allowwriteoperationsintemplates-attribute

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

usando: tridion 2009

preguntado el 31 de julio de 12 a las 13:07

¿Podríamos interesarle en comprometerse con el Propuesta específica del Área 51 Tridion. Regístrese con la misma cuenta SO si tiene un momento. -

2 Respuestas

En el momento de la publicación, el proceso de resolución determina qué elementos deben publicarse, como cuando publica un grupo de estructura, la resolución predeterminada agregará todas las páginas en el grupo de estructura a la transacción de publicación.

Los solucionadores solo se ocupan de los elementos de la transacción de publicación que son directamente publicables, y esos son páginas y presentaciones de componentes dinámicos. Por lo tanto, un solucionador no maneja los componentes multimedia vinculados, estos son publicados por el código de la plantilla llamando al AddBinary() método.

Si desea eliminar componentes multimedia de su acción de publicación, debe consultar la plantilla de componentes que los gestiona (si se agregan al paquete, la TBB de acción de finalización predeterminada normalmente los recoge y los publica). Pero tenga en cuenta que un componente multimedia debe publicarse al menos una vez; de lo contrario, nunca lo obtendrá en su servidor de presentación.

Respondido 01 ago 12, 08:08

+1 por señalar la diferencia, @Bart. Frank van Puffelen diagrama los dos enfoques (implícitamente mediante código de plantilla/AddBinary() y explícito a través de una publicación multimedia y plantillas de componentes dinámicos) en TridionMundo. - alvin reyes

Verifique el fragmento de código a continuación para eliminar, debe verificar si el Multimedia es pdf o no, pero lo ayudará a comenzar. Aquí hay un enlace de referencia muy bien explicado con un código de muestra también (el código a continuación 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 ..
                }
            }
        }

Respondido 31 Jul 12, 14:07

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

¿Cómo estás publicando el binario dentro del Componente? ¿Es a través del código DWT? Si es a través de DWT, entonces, ¿por qué desea eliminar el binario con el resolutor, ya que terminará con un enlace binario roto? Si está publicando el binario, el código anterior será suficiente para sus necesidades con la condición de verificación para ComponentType.Multimedia - carnero g

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.