Вызов Orchard ContentHandler

Я пишу модуль, чтобы некоторые функциональные возможности добавлялись в меню навигации всякий раз, когда элемент контента, к которому прикреплен мой модуль, публикуется или не публикуется. В моем обработчике, который наследуется от класса ContentHandler, я переписал "опубликованные" и "неопубликованные" методы, и функциональность работает, как и ожидалось. Однако проблема заключается в том, что методы обработчика содержимого в моем модуле вызываются даже для типов содержимого, к которым не прикреплен мой модуль (часть содержимого).

Я также попытался унаследовать от "IContentHandler" вместо "ContentHandler", но тот же результат.

Есть ли способ связать методы ContentHandler "опубликованные, опубликованные, неопубликованные и т. Д.", Чтобы они вызывались только при изменении элемента содержимого, к которому присоединена часть содержимого?

1 ответ

Хорошо, нашел ответ на это. Размещать его здесь в ознакомительных целях.

После того как вы создадите контентную часть, скажем, "abcPart", для запуска "публикации, отмены публикации" и других методов, связанных с ContentHandler, все, что вам нужно сделать, - это добавить в конструктор обработчика вашей части этот код.

public class MyHandler : ContentHandler
{
    public MyHandler ()
    {
        OnPublishing<abcPart>((context, part) => {
            /*your logic here*/
        });
    }
}

Таким образом, код, присутствующий в разделе "OnPublishing" конструктора, будет запускаться только тогда, когда публикуется элемент контента, к которому прикреплен "abcPart".

Другие вопросы по тегам