2013-04-12 3 views
3

Я пытаюсь отправить сообщение каждый раз, когда определенная часть контента обновляется, создается или удаляется.Orchard CMS ContentPart Update

Когда я создан или удален, я использую обработчик содержимого: OnCreated и OnRemoving для отправки сообщения.

Но во время обновления мне нужно также предыдущее состояние ContentPart и новые данные.

Спасибо.

[Ответить]

Ответ и комментарии Piotr Szmyd привели меня к решению этой проблемы. Читай их.

ответ

2

OnVersioning/OnVersioned. Эти события срабатывают всякий раз, когда создается новая версия элемента. Затем вы можете получить доступ к старым и новым версиям данной части.

+0

Спасибо за помощь. Но в OnVersioned/Versioning существующие и строительные части сохраняли ту же информацию. Итак, что я делаю: используйте частную строку в ContentHandler, где в OnUpdating я сохраняю текущую информацию, а в OnUpdated отправляет новую и старую информацию, хранящуюся в этой строке. Поскольку обработчик создается для каждого запроса, строка используется только во время цикла OnUpdating/OnUpdated. – mberacochea

+1

Проблема, по которой вы видите как существующие, так и составные части одинаковыми, состоит в том, что эти части не являются версиями (т. Е. Базовая запись происходит из 'ContentPartRecord', а не' ContentPartVersionRecord'. Пример версий, доступных для версии, например, 'BodyPart', 'CommonPart'. Посмотрите на реализации этих частей, чтобы увидеть, как это должно быть сделано. –

+0

Но, конечно, у вас может быть свой собственный механизм для отслеживания изменений, конечно (сохранение начального состояния в' OnLoaded' и используйте его в 'OnUpdated'). Имейте в виду, что обработчик содержимого не создается экземпляром объекта (только по запросу, как вы сказали), поэтому вам может потребоваться использовать, например, словарь (с идентификатором элемента в качестве ключа) вместо простой частной строки. В противном случае вы не сможете указать, какой элемент является текущим сохраненным строковым значением, исходящим из того, когда срабатывает 'OnUpdated'. –

Смежные вопросы