2012-05-04 5 views

risposta

3

Se si pubblica da API è possibile impostare IncludeComponentLinks proprietà di ResolveInstruction-false, o, come Bappi sottolineato fare questo nel gestore di eventi

+1

Potrebbe, ma ciò significherebbe solo la pubblicazione del componente C. Quando pubblica il componente C, vuole che anche il componente A venga pubblicato, ma non il componente B. Un risolutore è l'unico modo per ottenere ciò che penso. –

10

cosa si sta verificando è quello predefinito comportamento di Tridion. Questo è in base alla progettazione, per garantire che quando si modifica il contenuto di un componente, la pubblicazione aggiornerà tutte le istanze di tale contenuto sul sito Web.

Come le altre risposte suggeriscono è possibile modificare questo comportamento utilizzando un resolver personalizzato:

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 
      } 
     } 
} 

L'esempio di codice di cui sopra dimostra che si può ottenere l'accesso a una collezione chiamata resolvedItems. Questa è una lista di articoli che dovrebbero essere pubblicati, a meno che non si apportino modifiche.

È possibile scorrere questo elenco e rimuovere gli articoli in base alle proprie esigenze.

Problemi correlati