Como pular a exibição de um item de conteúdo no Orchard CMS?
Eu tenho uma parte de conteúdo que fornece uma opção de início e fim de data e hora. Esses 2 campos são usados para definir um período de tempo no qual o item de conteúdo deve ser exibido.
Agora, tenho dificuldades para implementar uma abordagem de ignorar, enquanto os itens de conteúdo não devem ser exibidos / ignorados quando o período de tempo não ultrapassa o tempo atual.
Digitar o código-fonte e tentar encontrar um ponto de entrada para minha abordagem resultou no seguinte manipulador de conteúdo
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
}
}
}
Isso funciona, mas existem vários efeitos colaterais
Eu tive que alterar o código fonte deBuildDisplayContext
Enquanto oShape
normalmente é somente leituraO formato da lista pode exibir um pager errado quando ele contém itens de conteúdo com a minha parte do conteúdo, porque oCount()
ligarContainerPartDriver.Display()
é executado antesBuildDisplay()
chamar o URL de um item de conteúdo ignorado resulta em uma exceção porqueView(null)
é abigiosoEntão, qual seria a abordagem correta aqui ou existe algum módulo que faça o trabalho? Não consegui encontrar um.