2012-05-04 47 views

Respuesta

3

Si va a publicar a partir de la API puede establecer IncludeComponentLinks propiedad de ResolveInstruction-false, o, como Bappi señaló hacer esto en el controlador de eventos

+1

Podría, pero eso significaría que solo se publicaría el Componente C. Al publicar el Componente C, él quiere que el Componente A también se publique, pero no el Componente B. Un solucionador es la única manera de lograr eso, creo. –

10

Lo que estás experimentando es el predeterminado comportamiento de Tridion. Esto es por diseño, para garantizar que al cambiar el contenido de un componente, publicarlo actualizará todas las instancias de ese contenido en el sitio web.

Como las otras respuestas sugieren que puede cambiar este comportamiento usando una resolución personalizada:

using Tridion.ContentManager; 
using Tridion.ContentManager.CommunicationManagement; 
using Tridion.ContentManager.ContentManagement; 
using Tridion.ContentManager.Publishing; 
using Tridion.ContentManager.Publishing.Resolving; 

public class UpdateResolvedItems : IResolver 
{ 
     public void Resolve(
      IdentifiableObject item, 
      ResolveInstruction instruction, 
      PublishContext context, 
      Tridion.Collections.ISet<ResolvedItem> resolvedItems) 
     { 
      foreach (ResolvedItem resolvedItem in resolvedItems) 
      { 
      // Check resolved items, and remove accordingly 
      } 
     } 
} 

El ejemplo de código anterior demuestra que puede obtener acceso a una colección llamada resolvedItems. Esta es una lista de elementos que se publicarán, a menos que realice un cambio en ella.

Puede recorrer esta lista y eliminar elementos de acuerdo con sus requisitos.

Cuestiones relacionadas