Wie überspringe ich die Anzeige eines Inhaltselements in Orchard CMS?

Ich habe einen Inhaltsteil, der eine Start- und eine Endzeitmarke enthält. Diese beiden Felder definieren einen Zeitraum, in dem das Inhaltselement angezeigt werden soll.

Ich habe jetzt Schwierigkeiten, einen Überspringansatz zu implementieren, während Inhaltselemente nicht angezeigt / übersprungen werden sollten, wenn der Zeitraum nicht die aktuelle Zeit abdeckt.

Die Bearbeitung des Quellcodes und der Versuch, einen Einstiegspunkt für meinen Ansatz zu finden, ergab den folgenden Content-Handler

public class SkipContentHandler : Orchard.ContentManagement.Handlers.ContentHandler
{
  protected override void BuildDisplayShape(Orchard.ContentManagement.Handlers.BuildDisplayContext aContext)
  {
    if (...) // my condition to process only content shapes which need to be skipped
    {
      aContext.Shape = null; // return null shape to skip it
    }
  }
}

Dies funktioniert, aber es gibt mehrere Nebenwirkungen

Ich musste den Quellcode von @ ändeBuildDisplayContext als dieShape ist normalerweise schreibgeschütztList Shape zeigt möglicherweise einen falschen Pager an, wenn es Inhaltselemente mit meinem Inhaltsteil enthält, da dasCount() anrufenContainerPartDriver.Display() wird ausgeführt, bevorBuildDisplay()as Aufrufen der URL eines Inhaltselements, das übersprungen wird, führt zu einer Ausnahme, daView(null) ist abigious

Also, was wäre hier der richtige Ansatz oder gibt es ein Modul, das die Arbeit erledigt? Ich konnte keinen finden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage