Вызов Orchard ContentHandler
Я пишу модуль, чтобы некоторые функциональные возможности добавлялись в меню навигации всякий раз, когда элемент контента, к которому прикреплен мой модуль, публикуется или не публикуется. В моем обработчике, который наследуется от класса ContentHandler, я переписал "опубликованные" и "неопубликованные" методы, и функциональность работает, как и ожидалось. Однако проблема заключается в том, что методы обработчика содержимого в моем модуле вызываются даже для типов содержимого, к которым не прикреплен мой модуль (часть содержимого).
Я также попытался унаследовать от "IContentHandler" вместо "ContentHandler", но тот же результат.
Есть ли способ связать методы ContentHandler "опубликованные, опубликованные, неопубликованные и т. Д.", Чтобы они вызывались только при изменении элемента содержимого, к которому присоединена часть содержимого?
1 ответ
Хорошо, нашел ответ на это. Размещать его здесь в ознакомительных целях.
После того как вы создадите контентную часть, скажем, "abcPart", для запуска "публикации, отмены публикации" и других методов, связанных с ContentHandler, все, что вам нужно сделать, - это добавить в конструктор обработчика вашей части этот код.
public class MyHandler : ContentHandler
{
public MyHandler ()
{
OnPublishing<abcPart>((context, part) => {
/*your logic here*/
});
}
}
Таким образом, код, присутствующий в разделе "OnPublishing" конструктора, будет запускаться только тогда, когда публикуется элемент контента, к которому прикреплен "abcPart".