2012-05-04 8 views

Odpowiedz

3

Jeśli publikujesz z API można ustawić IncludeComponentLinks własność ResolveInstruction do false, lub, jak Bappi wskazał to zrobić w obsłudze zdarzenia

+1

Mógłby, ale to by znaczyło, że tylko Komponent C zostanie opublikowany. Podczas publikowania komponentu C chce, aby komponent A także został opublikowany, ale nie komponent B. Konwersja jest jedynym sposobem na osiągnięcie tego, o czym myślę. –

10

czego doświadczamy jest domyślnym zachowanie Tridion. Jest to zgodne z projektem, aby zapewnić, że po zmianie treści w komponencie publikacja spowoduje aktualizację wszystkich wystąpień tej treści na stronie internetowej.

W innych odpowiedzi sugerują, można to zmienić przy użyciu niestandardowych Resolver:

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

Przykładowy kod powyżej pokazuje, można uzyskać dostęp do kolekcji o nazwie resolvedItems. To jest lista przedmiotów, które mają zostać opublikowane, chyba że wprowadzisz w niej zmiany.

Możesz przeglądać tę listę i usuwać elementy zgodnie z własnymi wymaganiami.

Powiązane problemy